Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/mercurial/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Windows 7 获取带和不带的WmiObject-列表:不同的对象?_Windows 7_Powershell 2.0 - Fatal编程技术网

Windows 7 获取带和不带的WmiObject-列表:不同的对象?

Windows 7 获取带和不带的WmiObject-列表:不同的对象?,windows-7,powershell-2.0,Windows 7,Powershell 2.0,我正在使用PowerShell 2.0并尝试从Win32_ShadowCopy获取可能的方法 现在,当我使用Get wmioobject-list Win32_ShadowCopy | Get Member时,我得到: TypeName: System.Management.ManagementClass#ROOT\cimv2\Win32_ShadowCopy Name MemberType Definition ----

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

现在,当我使用
Get wmioobject-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;}
...

现在我不明白了。为什么我要上两门看起来不同的课?我希望这两个命令的结果相同。我可以在文档中找到
-list
的功能,但无法找到没有
-list
开关的默认行为。任何想要澄清的人?

默认情况下获取WmiObject将返回给定类的实例。
另一方面,getwmiobject-List将返回类本身。后者主要在使用通配符时有用(例如,要列出默认-root\cimv2命名空间中的所有类,并且磁盘名为,您可以执行
Get WmiObject-Class*Disk*-list
)。

这是来自Get help about list

-列表[] 指定是否检索和显示WMI类的名称 在命名空间段落中指定的WMI存储库命名空间中 米HKEY_LOCAL_计算机中的默认命名空间注册表项\ 此cmdl未使用SOFTWARE\Microsoft\WBEM\Scripting注册表项 et来确定默认名称空间。如果指定列表参数 r但不是名称空间参数,根\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
Get-WmiObject -Class Win32_ShadowCopy
这意味着您正在列出名为Win32_ShadowCopy的类

Get-WmiObject Win32_ShadowCopy
等于:

Get-WmiObject -list -class Win32_ShadowCopy
Get-WmiObject -Class Win32_ShadowCopy

它返回指定类的对象。

似乎是有道理的,但是为什么一个类的实例可以对该类本身使用不同的方法呢?检查TypeName:它是不同的。为什么?我会将它与
$obj=新对象类相比较$obj.SomeMember
[Class]:OtherMember
-类有一些(静态)方法/属性,这些方法/属性与该类的对象的方法/属性不同。好的,我算出了。每个WMI类或对象都具有以下形式的唯一路径:
\\\:.=”
,其中
是唯一标识实例的属性。WMI允许您通过对象上的
\uu path
属性查看使用Get-WMIOObject返回的任何对象的“实例路径”。