Get-WmiObject 
	获取 Windows Management Instrumentation (WMI) 类的实例或有关可用类的信息。
语法
query (默认值)
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>]
	list
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>]
	WQLQuery
Get-WmiObject
    -Query <String>
    [-Amended]
    [-DirectRead]
    [-AsJob]
    [-Impersonation <ImpersonationLevel>]
    [-Authentication <AuthenticationLevel>]
    [-Locale <String>]
    [-EnableAllPrivileges]
    [-Authority <String>]
    [-Credential <PSCredential>]
    [-ThrottleLimit <Int32>]
    [-ComputerName <String[]>]
    [-Namespace <String>]
    [<CommonParameters>]
	class
Get-WmiObject
    [-Amended]
    [-AsJob]
    [-Impersonation <ImpersonationLevel>]
    [-Authentication <AuthenticationLevel>]
    [-Locale <String>]
    [-EnableAllPrivileges]
    [-Authority <String>]
    [-Credential <PSCredential>]
    [-ThrottleLimit <Int32>]
    [-ComputerName <String[]>]
    [-Namespace <String>]
    [<CommonParameters>]
	path
Get-WmiObject
    [-Amended]
    [-AsJob]
    [-Impersonation <ImpersonationLevel>]
    [-Authentication <AuthenticationLevel>]
    [-Locale <String>]
    [-EnableAllPrivileges]
    [-Authority <String>]
    [-Credential <PSCredential>]
    [-ThrottleLimit <Int32>]
    [-ComputerName <String[]>]
    [-Namespace <String>]
    [<CommonParameters>]
	说明
从 PowerShell 3.0 开始,此 cmdlet 已被 Get-CimInstance取代。
              Get-WmiObject cmdlet 获取 WMI 类的实例或有关可用 WMI 类的信息。 若要指定远程计算机,请使用 ComputerName 参数。 如果指定了 List 参数,则 cmdlet 将获取有关指定命名空间中可用的 WMI 类的信息。 如果指定了 Query 参数,则 cmdlet 将运行 WMI 查询语言 (WQL) 语句。
              Get-WmiObject cmdlet 不使用 Windows PowerShell 远程处理来执行远程作。
即使计算机不符合 Windows PowerShell 远程处理的要求或未配置为在 Windows PowerShell 中远程处理,也可以使用  cmdlet 的 Get-WmiObject 参数。
从 Windows PowerShell 3.0 开始, 返回对象的 Get-WmiObject 属性具有 PSComputerName 别名。 这样,在输出和报表中可以更轻松地包含源计算机名称。
示例
示例 1:获取本地计算机上的进程
此示例获取本地计算机上的进程。
Get-WmiObject -Class Win32_Process
	示例 2:获取远程计算机上的服务
此示例获取远程计算机上的服务。 ComputerName 参数指定远程计算机的 IP 地址。 默认情况下,当前用户帐户必须是远程计算机上的 管理员 组的成员。
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 属性的别名。 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-List 参数用于显示列表中返回的对象的所有属性。 默认情况下,仅显示 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-WmiObject 参数获取远程计算机上的服务。 
              Credential 参数的值是用户帐户名。 系统会提示用户输入密码。
Get-WmiObject Win32_Service -Credential FABRIKAM\administrator -ComputerName Fabrikam
注意
当面向本地计算机时,不能使用凭据。
参数
-Amended
获取或设置一个值,该值指示从 WMI 返回的对象是否应包含修订的信息。 通常,修改后的信息是附加到 WMI 对象的可本地化信息,例如对象和属性说明。
参数属性
| 类型: | SwitchParameter | 
| 默认值: | None | 
| 支持通配符: | False | 
| 不显示: | False | 
参数集
(All)
| Position: | Named | 
| 必需: | False | 
| 来自管道的值: | False | 
| 来自管道的值(按属性名称): | False | 
| 来自剩余参数的值: | False | 
-AsJob 
		将命令作为后台作业运行。 使用此参数可以运行需要很长时间才能完成的命令。
使用 AsJob 参数时,该命令返回表示后台作业的对象,然后显示命令提示符。 作业完成后,可以继续在会话中工作。 如果 Get-WmiObject 与 ComputerName 参数一起使用,则会在本地计算机上创建作业,远程计算机的结果将自动返回到本地计算机。 若要管理作业,请使用包含 Job 名词的 cmdlet。 若要获取作业结果,请使用 Receive-Job cmdlet。
有关 Windows PowerShell 后台作业的详细信息,请参阅 about_Jobs 和 about_Remote_Jobs。
参数属性
| 类型: | SwitchParameter | 
| 默认值: | None | 
| 支持通配符: | False | 
| 不显示: | False | 
参数集
(All)
| Position: | Named | 
| 必需: | False | 
| 来自管道的值: | False | 
| 来自管道的值(按属性名称): | False | 
| 来自剩余参数的值: | False | 
-Authentication
指定要与 WMI 连接一起使用的身份验证级别。 有效值为:
- 
              
-1:未更改 - 
              
0:默认 - 
              
1:无(未执行身份验证)。 - 
              
2:Connect(仅当客户端与应用程序建立关系时才执行身份验证)。 - 
              
3:呼叫(仅当应用程序收到请求时,才在每个调用开始时执行身份验证)。 - 
              
4:数据包(对从客户端接收的所有数据执行身份验证)。 - 
              
5:PacketIntegrity(对客户端和应用程序之间传输的所有数据进行身份验证和验证)。 - 
              
6:PacketPrivacy(使用了其他身份验证级别的属性,并且所有数据均已加密)。 
参数属性
| 类型: | AuthenticationLevel | 
| 默认值: | None | 
| 接受的值: | Default, None, Connect, Call, Packet, PacketIntegrity, PacketPrivacy, Unchanged | 
| 支持通配符: | False | 
| 不显示: | False | 
参数集
(All)
| Position: | Named | 
| 必需: | False | 
| 来自管道的值: | False | 
| 来自管道的值(按属性名称): | False | 
| 来自剩余参数的值: | False | 
-Authority
指定用于对 WMI 连接进行身份验证的颁发机构。 可以指定标准 NTLM 或 Kerberos 身份验证。 若要使用 NTLM,请将颁发机构设置设置为 ntlmdomain:<DomainName>,其中 <DomainName> 标识有效的 NTLM 域名。 若要使用 Kerberos,请指定 kerberos:<DomainName>\<ServerName>。 连接到本地计算机时,不能包含颁发机构设置。
参数属性
| 类型: | String | 
| 默认值: | None | 
| 支持通配符: | False | 
| 不显示: | False | 
参数集
(All)
| Position: | Named | 
| 必需: | False | 
| 来自管道的值: | False | 
| 来自管道的值(按属性名称): | False | 
| 来自剩余参数的值: | False | 
-Class
指定 WMI 类的名称。 使用此参数时,cmdlet 将检索 WMI 类的实例。
参数属性
| 类型: | String | 
| 默认值: | None | 
| 支持通配符: | False | 
| 不显示: | False | 
| 别名: | ClassName | 
参数集
query
| Position: | 1 | 
| 必需: | True | 
| 来自管道的值: | False | 
| 来自管道的值(按属性名称): | False | 
| 来自剩余参数的值: | False | 
list
| Position: | 1 | 
| 必需: | False | 
| 来自管道的值: | False | 
| 来自管道的值(按属性名称): | False | 
| 来自剩余参数的值: | False | 
-ComputerName 
		指定管理作的目标计算机。 输入完全限定的域名(FQDN)、NetBIOS 名称或 IP 地址。 当远程计算机位于与本地计算机不同的域中时,需要完全限定的域名。
默认值为本地计算机。 若要指定本地计算机,例如在计算机名称列表中,请使用 localhost、本地计算机名称或点(.)。
指定远程计算机时,当前帐户或使用 Credential 参数指定的帐户必须具有访问信息的适当权限。
此参数不依赖于使用 WS-Management 的 Windows PowerShell 远程处理。 即使计算机未配置为 WS-Management 运行远程命令,也可以使用 Get-WmiObject 参数。
参数属性
| 类型: | String[]  | 
| 默认值: | None | 
| 支持通配符: | False | 
| 不显示: | False | 
| 别名: | Cn | 
参数集
(All)
| Position: | Named | 
| 必需: | False | 
| 来自管道的值: | False | 
| 来自管道的值(按属性名称): | False | 
| 来自剩余参数的值: | False | 
-Credential
指定有权执行此作的用户帐户。 默认值为当前用户。 键入用户名,例如 User01、Domain01\User01或 User@Contoso.com。 或者,输入 PSCredential 对象,例如 Get-Credential cmdlet 返回的对象。 键入用户名时,系统会提示输入密码。 当面向本地计算机时,不能使用凭据。
参数属性
| 类型: | PSCredential | 
| 默认值: | None | 
| 支持通配符: | False | 
| 不显示: | False | 
参数集
(All)
| Position: | Named | 
| 必需: | False | 
| 来自管道的值: | False | 
| 来自管道的值(按属性名称): | False | 
| 来自剩余参数的值: | False | 
-DirectRead 
		指定是针对指定类请求对 WMI 提供程序的直接访问,而不考虑其基类或其派生类。
参数属性
| 类型: | SwitchParameter | 
| 默认值: | None | 
| 支持通配符: | False | 
| 不显示: | False | 
参数集
query
| Position: | Named | 
| 必需: | False | 
| 来自管道的值: | False | 
| 来自管道的值(按属性名称): | False | 
| 来自剩余参数的值: | False | 
WQLQuery
| Position: | Named | 
| 必需: | False | 
| 来自管道的值: | False | 
| 来自管道的值(按属性名称): | False | 
| 来自剩余参数的值: | False | 
-EnableAllPrivileges  
		在命令进行 WMI 调用之前,启用当前用户的所有特权。
参数属性
| 类型: | SwitchParameter | 
| 默认值: | None | 
| 支持通配符: | False | 
| 不显示: | False | 
参数集
(All)
| Position: | Named | 
| 必需: | False | 
| 来自管道的值: | False | 
| 来自管道的值(按属性名称): | False | 
| 来自剩余参数的值: | False | 
-Filter
指定要用作筛选器的 Where 子句。 使用 WMI 查询语言(WQL)的语法。
重要
不要在参数的值中包含 Where 关键字。 例如,以下命令仅返回 DeviceID 为“C:\”的逻辑磁盘,以及名称为“WinRM”的服务,而不使用 Where 关键字。
Get-WmiObject Win32_LogicalDisk -Filter "DeviceID = 'C:' "
Get-WmiObject Win32_Service -Filter "name='WinRM'"
参数属性
| 类型: | String | 
| 默认值: | None | 
| 支持通配符: | False | 
| 不显示: | False | 
参数集
query
| Position: | Named | 
| 必需: | False | 
| 来自管道的值: | False | 
| 来自管道的值(按属性名称): | False | 
| 来自剩余参数的值: | False | 
-Impersonation
指定要使用的模拟级别。
此参数的可接受值为:
- 
              
0:默认。 读取默认模拟级别的本地注册表。 默认值通常设置为 模拟。 - 
              
1:匿名。 隐藏调用方凭据。 - 
              
2:标识。 允许对象查询调用方凭据。 - 
              
3:模拟。 允许对象使用调用方凭据。 - 
              
4:委托。 允许对象允许其他对象使用调用方凭据。 
参数属性
| 类型: | ImpersonationLevel | 
| 默认值: | None | 
| 接受的值: | Default, Anonymous, Identify, Impersonate, Delegate | 
| 支持通配符: | False | 
| 不显示: | False | 
参数集
(All)
| Position: | Named | 
| 必需: | False | 
| 来自管道的值: | False | 
| 来自管道的值(按属性名称): | False | 
| 来自剩余参数的值: | False | 
-List
获取由 Namespace 参数指定的 WMI 存储库命名空间中的 WMI 类的名称。
如果指定 List 参数,但未指定 Namespace 参数,则默认情况下 Get-WmiObject 使用 root/CIMV2 命名空间。 此 cmdlet 不使用  注册表项中的 HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\WBEM\Scripting 注册表项来确定默认命名空间。
参数属性
| 类型: | SwitchParameter | 
| 默认值: | None | 
| 支持通配符: | False | 
| 不显示: | False | 
参数集
list
| Position: | Named | 
| 必需: | False | 
| 来自管道的值: | False | 
| 来自管道的值(按属性名称): | False | 
| 来自剩余参数的值: | False | 
-Locale
指定 WMI 对象的首选区域设置。 以 MS_<LCID> 格式输入值。
参数属性
| 类型: | String | 
| 默认值: | None | 
| 支持通配符: | False | 
| 不显示: | False | 
参数集
(All)
| Position: | Named | 
| 必需: | False | 
| 来自管道的值: | False | 
| 来自管道的值(按属性名称): | False | 
| 来自剩余参数的值: | False | 
-Namespace
与 类 参数一起使用时,Namespace 参数指定指定指定 WMI 类所在的 WMI 存储库命名空间。 与 List 参数一起使用时,它指定要从中收集 WMI 类信息的命名空间。
参数属性
| 类型: | String | 
| 默认值: | None | 
| 支持通配符: | False | 
| 不显示: | False | 
| 别名: | NS | 
参数集
(All)
| Position: | Named | 
| 必需: | False | 
| 来自管道的值: | False | 
| 来自管道的值(按属性名称): | False | 
| 来自剩余参数的值: | False | 
-Property
指定此 cmdlet 从中获取信息的 WMI 类属性。 输入属性名称。
参数属性
| 类型: | String[]  | 
| 默认值: | None | 
| 支持通配符: | False | 
| 不显示: | False | 
参数集
query
| Position: | 1 | 
| 必需: | False | 
| 来自管道的值: | False | 
| 来自管道的值(按属性名称): | False | 
| 来自剩余参数的值: | False | 
-Query
运行指定的 WMI 查询语言 (WQL) 语句。 此参数不支持事件查询。
参数属性
| 类型: | String | 
| 默认值: | None | 
| 支持通配符: | False | 
| 不显示: | False | 
参数集
WQLQuery
| Position: | Named | 
| 必需: | True | 
| 来自管道的值: | False | 
| 来自管道的值(按属性名称): | False | 
| 来自剩余参数的值: | False | 
-Recurse
在当前命名空间和所有其他命名空间中搜索由 类 参数指定的类名。
参数属性
| 类型: | SwitchParameter | 
| 默认值: | None | 
| 支持通配符: | False | 
| 不显示: | False | 
参数集
list
| Position: | Named | 
| 必需: | False | 
| 来自管道的值: | False | 
| 来自管道的值(按属性名称): | False | 
| 来自剩余参数的值: | False | 
-ThrottleLimit 
		指定可同时执行的 WMI作的最大数目。 仅当命令中使用 AsJob 参数时,此参数才有效。
参数属性
| 类型: | Int32 | 
| 默认值: | None | 
| 支持通配符: | False | 
| 不显示: | False | 
参数集
(All)
| Position: | Named | 
| 必需: | False | 
| 来自管道的值: | False | 
| 来自管道的值(按属性名称): | False | 
| 来自剩余参数的值: | False | 
CommonParameters
此 cmdlet 支持通用参数:-Debug、-ErrorAction、-ErrorVariable、-InformationAction、-InformationVariable、-OutBuffer、-OutVariable、-PipelineVariable、-ProgressAction、-Verbose、-WarningAction 和 -WarningVariable。 有关详细信息,请参阅 about_CommonParameters。
输入
None
不能通过管道将输入传递给 Get-WmiObject。
输出
PSObject or System.Management.Automation.RemotingJob
使用 AsJob 参数时,cmdlet 将返回作业对象。 否则,Get-WmiObject 返回的对象取决于 Class 参数的值。
备注
Windows PowerShell 包含以下 Get-WmiObject别名:
gwmi
若要访问远程计算机上的 WMI 信息,该 cmdlet 必须在远程计算机上的本地管理员组成员的帐户下运行。 或者,可以更改远程存储库 WMI 命名空间上的默认访问控制,以授予对其他帐户的访问权限。
默认情况下,仅显示每个 WMI 类的一些属性。 
              Types.ps1xml 配置文件中指定了为每个 WMI 类显示的属性集。 若要获取 WMI 对象的所有属性,请使用 Get-Member 或 Format-List cmdlet。