带有和没有-list的Get-WmiObject:不同的对象?

时间:2013-02-03 20:22:37

标签: windows-7 powershell-v2.0

我正在使用PowerShell 2.0并尝试从Win32_ShadowCopy中获取可能的方法。

现在,当我使用Get-WmiObject -list Win32_ShadowCopy | Get-Member时,我得到了:

   TypeName: System.Management.ManagementClass#ROOT\cimv2\Win32_ShadowCopy

Name                MemberType    Definition
----                ----------    ----------
Name                AliasProperty Name = __Class
Create              Method        System.Management.ManagementBaseObject Cre...
...

但如果我使用Get-WmiObject Win32_ShadowCopy | Get-Member我得到:

   TypeName: System.Management.ManagementObject#root\cimv2\Win32_ShadowCopy

Name                MemberType   Definition
----                ----------   ----------
Revert              Method       System.Management.ManagementBaseObject Reve...
Caption             Property     System.String Caption {get;set;}
...

现在我不明白。为什么我会得到2个看似不同的课程?我期望两个命令都有相同的结果。我可以在文档中找到-list的内容,但不能找到没有-list开关的默认行为。有人在意澄清吗?

2 个答案:

答案 0 :(得分:2)

这是关于列表的get-help。

-List []     指定是否检索和显示WMI类的名称     在命名空间段中指定的WMI存储库命名空间中     仪表。 HKEY_LOCAL_MACHINE中的默认命名空间注册表项     此cmdl不使用SOFTWARE \ Microsoft \ WBEM \ Scripting注册表项     et确定默认命名空间。如果指定列表参数     但不是Namespace参数,root \ CIMV2名称空间使用     默认值。

Required?                    false
Position?                    named
Default value
Accept pipeline input?       false
Accept wildcard characters?  false

为您的脚本

Get-WmiObject -list Win32_ShadowCopy

等于:

Get-WmiObject -list -class Win32_ShadowCopy

表示您列出名为Win32_ShadowCopy的类。

Get-WmiObject Win32_ShadowCopy

等于:

Get-WmiObject -Class Win32_ShadowCopy

返回指定类的对象。

答案 1 :(得分:1)

默认情况下,Get-WmiObject将返回给定类的实例。 另一方面,Get-WmiObject -List将返回类本身。当使用通配符时,Latter主要是有用的(例如,列出默认情况下的所有类 - 根\ cimv2命名空间,名称为Disk,你可以Get-WmiObject -Class *Disk* -List)。