Get-WmiObject
取得 Windows Management Instrumentation (WMI) 類別的執行個體,或可用類別的相關資訊。
Syntax
Get-WmiObject
[-Class] <String>
[[-Property] <String[]>]
[-Filter <String>]
[-Amended]
[-DirectRead]
[-AsJob]
[-Impersonation <ImpersonationLevel>]
[-Authentication <AuthenticationLevel>]
[-Locale <String>]
[-EnableAllPrivileges]
[-Authority <String>]
[-Credential <PSCredential>]
[-ThrottleLimit <Int32>]
[-ComputerName <String[]>]
[-Namespace <String>]
[<CommonParameters>]
Get-WmiObject
[[-Class] <String>]
[-Recurse]
[-Amended]
[-List]
[-AsJob]
[-Impersonation <ImpersonationLevel>]
[-Authentication <AuthenticationLevel>]
[-Locale <String>]
[-EnableAllPrivileges]
[-Authority <String>]
[-Credential <PSCredential>]
[-ThrottleLimit <Int32>]
[-ComputerName <String[]>]
[-Namespace <String>]
[<CommonParameters>]
Get-WmiObject
[-Amended]
[-DirectRead]
-Query <String>
[-AsJob]
[-Impersonation <ImpersonationLevel>]
[-Authentication <AuthenticationLevel>]
[-Locale <String>]
[-EnableAllPrivileges]
[-Authority <String>]
[-Credential <PSCredential>]
[-ThrottleLimit <Int32>]
[-ComputerName <String[]>]
[-Namespace <String>]
[<CommonParameters>]
Get-WmiObject
[-Amended]
[-AsJob]
[-Impersonation <ImpersonationLevel>]
[-Authentication <AuthenticationLevel>]
[-Locale <String>]
[-EnableAllPrivileges]
[-Authority <String>]
[-Credential <PSCredential>]
[-ThrottleLimit <Int32>]
[-ComputerName <String[]>]
[-Namespace <String>]
[<CommonParameters>]
Get-WmiObject
[-Amended]
[-AsJob]
[-Impersonation <ImpersonationLevel>]
[-Authentication <AuthenticationLevel>]
[-Locale <String>]
[-EnableAllPrivileges]
[-Authority <String>]
[-Credential <PSCredential>]
[-ThrottleLimit <Int32>]
[-ComputerName <String[]>]
[-Namespace <String>]
[<CommonParameters>]
Description
從 PowerShell 3.0 開始,此 Cmdlet 已被 取代 Get-CimInstance 。
Cmdlet Get-WmiObject 會取得 WMI 類別的實例或可用 WMI 類別的相關資訊。 若要指定遠端電腦,請使用 ComputerName 參數。 若指定 List 參數,此 Cmdlet 會取得在指定命名空間內可用的 WMI 類別相關資訊。 若指定 Query 參數,此 Cmdlet 會執行 WMI 查詢語言 (WQL) 陳述式。
Cmdlet Get-WmiObject 不會使用Windows PowerShell遠端執行遠端作業。
即使您的電腦不符合Windows PowerShell遠端處理的需求,或未在 Windows PowerShell 中設定遠端處理,您也可以使用 Cmdlet 的 Get-WmiObjectComputerName參數。
從 Windows PowerShell 3.0 開始,傳回之 物件的 Get-WmiObject__Server屬性具有PSComputerName別名。 這樣比較容易在輸出和報告中包含來源電腦名稱。
範例
範例 1:取得本機電腦上的進程
此範例會取得本機電腦上的進程。
Get-WmiObject -Class Win32_Process
範例 2:取得遠端電腦上的服務
這個範例會取得遠端電腦上的服務。 ComputerName參數會指定遠端電腦的 IP 位址。 根據預設,目前的使用者帳戶必須是遠端電腦上的 Administrators 群組成員。
Get-WmiObject -Class Win32_Service -ComputerName 10.1.4.62
範例 3:取得本機電腦根或預設命名空間中的 WMI 類別
這個範例會取得本機電腦根或預設命名空間中的 WMI 類別。
Get-WmiObject -Namespace "root/default" -List
範例 4:在多部電腦上取得具名服務
這個範例會取得 ComputerName 參數值所指定電腦上的 WinRM 服務。
Get-WmiObject -Query "select * from win32_service where name='WinRM'" -ComputerName Server01, Server02 |
Format-List -Property PSComputerName, Name, ExitCode, Name, ProcessID, StartMode, State, Status
PSComputerName : SERVER01
Name : WinRM
ExitCode : 0
Name : WinRM
ProcessID : 844
StartMode : Auto
State : Running
Status : OK
PSComputerName : SERVER02
Name : WinRM
ExitCode : 0
Name : WinRM
ProcessID : 932
StartMode : Auto
State : Running
Status : OK
管線運算子 (|) 將輸出傳送至 Format-List Cmdlet,此 Cmdlet 會將 PSComputerName 屬性新增至預設輸出。 PSComputerName是所傳回物件的 Get-WmiObject__Server屬性別名。 此別名是在 PowerShell 3.0 中引進。
範例 5:停止遠端電腦上的服務
此範例會停止遠端電腦上的 WinRM 服務。 Get-WmiObject 會取得 Server01 上 WinRM 服務物件的實例。 然後,它會在該物件上叫用Win32_Service WMI 類別的StopService方法。
(Get-WmiObject -Class Win32_Service -Filter "name='WinRM'" -ComputerName Server01).StopService()
這相當於使用 Stop-Service Cmdlet。
範例 6:取得本機電腦上的 BIOS
此範例會從本機電腦取得 BIOS 資訊。 Cmdlet 的 Format-ListProperty參數是用來在清單中顯示傳回物件的所有屬性。 根據預設,只會顯示組態檔中 Types.ps1xml 定義的屬性子集。
Get-WmiObject -Class Win32_Bios | Format-List -Property *
Status : OK
Name : Phoenix ROM BIOS PLUS Version 1.10 A05
Caption : Phoenix ROM BIOS PLUS Version 1.10 A05
SMBIOSPresent : True
__GENUS : 2
__CLASS : Win32_BIOS
__SUPERCLASS : CIM_BIOSElement
__DYNASTY : CIM_ManagedSystemElement
__RELPATH : Win32_BIOS.Name="Phoenix ROM BIOS PLUS Version 1.10
__PROPERTY_COUNT : 27
__DERIVATION : {CIM_BIOSElement, CIM_SoftwareElement, CIM_LogicalElement,
__SERVER : Server01
__NAMESPACE : root\cimv2
__PATH : \\SERVER01\root\cimv2:Win32_BIOS.Name="Phoenix ROM BIOS
BiosCharacteristics : {7, 9, 10, 11...}
BIOSVersion : {DELL - 15, Phoenix ROM BIOS PLUS Version 1.10 A05}
BuildNumber :
CodeSet :
CurrentLanguage : en|US|iso8859-1
Description : Phoenix ROM BIOS PLUS Version 1.10 A05
IdentificationCode :
InstallableLanguages : 1
InstallDate :
LanguageEdition :
ListOfLanguages : {en|US|iso8859-1}
Manufacturer : Dell Inc.
OtherTargetOS :
PrimaryBIOS : True
ReleaseDate : 20101103000000.000000+000
SerialNumber : 8VDM9P1
SMBIOSBIOSVersion : A05
SMBIOSMajorVersion : 2
SMBIOSMinorVersion : 6
SoftwareElementID : Phoenix ROM BIOS PLUS Version 1.10 A05
SoftwareElementState : 3
TargetOperatingSystem : 0
Version : DELL - 15
Scope : System.Management.ManagementScope
Path : \\SERVER01\root\cimv2:Win32_BIOS.Name="Phoenix ROM BIOS
Options : System.Management.ObjectGetOptions
ClassPath : \\JUNE-PC\root\cimv2:Win32_BIOS
Properties : {BiosCharacteristics, BIOSVersion, BuildNumber, Caption...}
SystemProperties : {__GENUS, __CLASS, __SUPERCLASS, __DYNASTY...}
Qualifiers : {dynamic, Locale, provider, UUID}
Site :
Container :
範例 7:取得遠端電腦上的服務
此範例使用 Cmdlet 的 Get-WmiObjectCredential參數來取得遠端電腦上的服務。 Credential 參數的值是使用者帳戶的名稱。 使用者會被提示輸入密碼。
Get-WmiObject Win32_Service -Credential FABRIKAM\administrator -ComputerName Fabrikam
注意
以本機電腦為目標時,無法使用認證。
參數
取得或設定一個值,該值會指示從 WMI 傳回的物件是否該包含修改過的資訊。 一般而言,修改的資訊是可當地語系化的資訊,例如附加至 WMI 物件的物件和屬性描述。
| Type: | SwitchParameter |
| Position: | Named |
| Default value: | None |
| Accept pipeline input: | False |
| Accept wildcard characters: | False |
以背景工作方式執行命令。 使用此參數執行需要很長時間才能完成的命令。
使用 AsJob 參數時,此命令會傳回代表背景工作的物件,然後顯示命令提示字元。 工作完成後,您可以繼續在工作階段中工作。 如果在 Get-WmiObject 遠端電腦上使用 ,則會在本機電腦上建立作業,而且遠端電腦的結果會自動傳回至本機電腦。 若要管理作業,請使用包含名詞的 Job Cmdlet。 若要取得作業結果,請使用 Receive-Job Cmdlet。
注意
若要將這個參數與遠端電腦搭配使用,則本機電腦和遠端電腦必須針對遠端執行功能做設定。 此外,您必須在 Windows Vista 和更新版本的 Windows 中使用 [以系統管理員身分執行] 選項來啟動Windows PowerShell。 如需詳細資訊,請參閱about_Remote_Requirements。
如需Windows PowerShell背景工作的詳細資訊,請參閱about_Jobs和about_Remote_Jobs。
| Type: | SwitchParameter |
| Position: | Named |
| Default value: | None |
| Accept pipeline input: | False |
| Accept wildcard characters: | False |
指定要與 WMI 連線搭配使用的驗證等級。 有效值為:
-1: 未變更0: 預設值1: 無 (未執行中的驗證。)2:只有在用戶端與 application.) 建立關聯性時,才會執行 連線 (驗證3: 只有在 應用程式收到 request 時,才會在每個呼叫的開頭執行呼叫 (驗證。)4: 封包 (驗證會在從 client.) 接收的所有資料上執行5: PacketIntegrity (用戶端與應用程式之間傳輸的所有資料都會經過驗證和驗證。)6: PacketPrivacy (會使用其他驗證層級的屬性,而且所有資料都會加密。)
| Type: | AuthenticationLevel |
| Accepted values: | Default, None, Connect, Call, Packet, PacketIntegrity, PacketPrivacy, Unchanged |
| Position: | Named |
| Default value: | None |
| Accept pipeline input: | False |
| Accept wildcard characters: | False |
指定用來驗證 WMI 連線的授權單位。 您可以指定標準 NTLM 或 Kerberos 驗證。 若要使用 NTLM,請將授權單位設定設為 ntlmdomain:<DomainName> ,其中 <DomainName> 會識別有效的 NTLM 功能變數名稱。 若要使用 Kerberos,請指定 kerberos:<DomainName>\<ServerName> 。 當您連線到本機電腦時,不能包含授權單位設定。
| Type: | String |
| Position: | Named |
| Default value: | None |
| Accept pipeline input: | False |
| Accept wildcard characters: | False |
指定 WMI 類別的名稱。 使用此參數時,Cmdlet 會抓取 WMI 類別的執行個體。
| Type: | String |
| Aliases: | ClassName |
| Position: | 1 |
| Default value: | None |
| Accept pipeline input: | False |
| Accept wildcard characters: | False |
指定管理操作的目標電腦。 輸入完整功能變數名稱 (FQDN) 、NetBIOS 名稱或 IP 位址。 當遠端電腦與本機電腦位於不同網域,則必須使用完整網域名稱。
預設是本機電腦。 若要指定本機電腦,例如在電腦名稱稱清單中,請使用 localhost 、本機電腦名稱稱或點 () . 。
此參數不必依賴使用 WS-Management 的 Windows PowerShell 遠端功能。 即使您的電腦未設定為執行遠端命令WS-Management,您也可以使用 的 Get-WmiObjectComputerName參數。
| Type: | String[] |
| Aliases: | Cn |
| Position: | Named |
| Default value: | None |
| Accept pipeline input: | False |
| Accept wildcard characters: | False |
指定具有執行此動作權限的使用者帳戶。 預設為目前使用者。 輸入使用者名稱,例如 User01 、 Domain01\User01 或 User@Contoso.com 。 或者,輸入 PSCredential 物件,例如 Cmdlet 所 Get-Credential 傳回的物件。 當您輸入使用者名稱時,會提示您輸入密碼。 以本機電腦為目標時,無法使用認證。
| Type: | PSCredential |
| Position: | Named |
| Default value: | None |
| Accept pipeline input: | False |
| Accept wildcard characters: | False |
指定是否不論其基底類別或衍生類別,都針對指定類別要求直接存取 WMI 提供者。
| Type: | SwitchParameter |
| Position: | Named |
| Default value: | None |
| Accept pipeline input: | False |
| Accept wildcard characters: | False |
在命令進行 WMI 呼叫之前,先啟用目前使用者的所有權限。
| Type: | SwitchParameter |
| Position: | Named |
| Default value: | None |
| Accept pipeline input: | False |
| Accept wildcard characters: | False |
指定 Where 子句做為篩選。 使用 WMI 查詢語言 (WQL) 的語法。
重要
不要在參數值中包含 Where 關鍵字。 例如,下列命令只會傳回 DeviceID 為 的 c: 邏輯磁片,以及名稱為 'WinRM' 的服務,而不使用 Where 關鍵字。
Get-WmiObject Win32_LogicalDisk -filter "DeviceID = 'c:' "
Get-WmiObject win32_service -filter "name='WinRM'"
| Type: | String |
| Position: | Named |
| Default value: | None |
| Accept pipeline input: | False |
| Accept wildcard characters: | False |
指定要使用的模擬等級。
此參數可接受的值為:
0: 預設值。 讀取預設模擬層級的本機登錄。 預設值通常會設定為 [模擬]。1: 匿名。 隱藏呼叫端的認證。2: 識別。 允許物件查詢呼叫端的認證。3: 模擬。 允許物件使用呼叫端的認證。4: 委派。 允許物件許可其他物件使用呼叫端的認證。
| Type: | ImpersonationLevel |
| Accepted values: | Default, Anonymous, Identify, Impersonate, Delegate |
| Position: | Named |
| Default value: | None |
| Accept pipeline input: | False |
| Accept wildcard characters: | False |
取得 WMI 存放庫命名空間 (由 Namespace 參數指定) 中 WMI 類別的名稱。
如果您指定 List 參數,但未指定 Namespace 參數, Get-WmiObject 則預設會使用 Root\Cimv2 命名空間。 此 Cmdlet 不會使用登錄機碼中的 HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\WBEM\Scripting預設命名空間登錄專案來判斷預設命名空間。
| Type: | SwitchParameter |
| Position: | Named |
| Default value: | None |
| Accept pipeline input: | False |
| Accept wildcard characters: | False |
指定 WMI 物件的慣用地區設定。 以 MS_<LCID> 格式輸入值。
| Type: | String |
| Position: | Named |
| Default value: | None |
| Accept pipeline input: | False |
| Accept wildcard characters: | False |
搭配 Class 參數使用時,Namespace 參數會指定 WMI 存放庫命名空間 (指定的 WMI 類別所在)。 搭配 List 參數使用時,它會指定收集 WMI 類別資訊的命名空間。
| Type: | String |
| Aliases: | NS |
| Position: | Named |
| Default value: | None |
| Accept pipeline input: | False |
| Accept wildcard characters: | False |
指定這個 Cmdlet 從中取得資訊的 WMI 類別屬性。 輸入屬性名稱。
| Type: | String[] |
| Position: | 1 |
| Default value: | None |
| Accept pipeline input: | False |
| Accept wildcard characters: | False |
執行指定的 WMI 查詢語言 (WQL) 陳述式。 這個參數不支援事件查詢。
| Type: | String |
| Position: | Named |
| Default value: | None |
| Accept pipeline input: | False |
| Accept wildcard characters: | False |
在目前的命名空間及所有其他命名空間,搜尋 Class 參數所指定的類別名稱。
| Type: | SwitchParameter |
| Position: | Named |
| Default value: | None |
| Accept pipeline input: | False |
| Accept wildcard characters: | False |
指定 WMI 作業能同時執行的數目上限。 只有在命令中使用 AsJob 參數時,這個參數才有效。
| Type: | Int32 |
| Position: | Named |
| Default value: | None |
| Accept pipeline input: | False |
| Accept wildcard characters: | False |
輸入
None
您無法使用管線將輸入傳送至 Get-WmiObject 。
輸出
PSObject or System.Management.Automation.RemotingJob
使用 AsJob 參數時,此 Cmdlet 會傳回工作物件。 否則,傳 Get-WmiObject 回的物件取決於 Class 參數的值。
備註
若要在遠端電腦存取 WMI 資訊,執行 Cmdlet 的帳戶必須是遠端電腦上本機 Administrators 群組的成員。 或者,可以變更遠端存放庫的 WMI 命名空間上的預設存取控制,來授與其他帳戶存取權限。
預設只會顯示 WMI 類別的某些屬性。 組態檔中 Types.ps1xml 會指定每個 WMI 類別所顯示的屬性集。 若要取得 WMI 物件的所有屬性,請使用 Get-Member 或 Format-List Cmdlet。
相關連結
意見反應
提交並檢視相關的意見反應