我正在使用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
开关的默认行为。有人在意澄清吗?
答案 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
)。