在PowerShell中使用WMI时,我发现了一些我不理解的东西:
# Syntax 1
gwmi -Class Win32_Share | gm -MemberType Method
Output: Delete, GetAccessMask, SetShareInfo
# Syntax 2
$a = New-Object "System.Management.ManagementClass" "Win32_Share" :
$a | gm -MemberType Method
Output: Create.....那么:为什么我不能使用语法"1“获得"Create”方法呢?
发布于 2016-09-27 21:35:54
因为它们返回两种不同类型的对象。
(gwmi -Class Win32_Share).GetType()返回System.Array实例,而
(New-Object "System.Management.ManagementClass" "Win32_Share").GetType()返回System.Management.ManagementObject实例
注意,在一个已经实例化的对象上调用Create是没有意义的,或者换句话说:为什么你认为你需要它?
编辑
你的评论实际上让我重新思考(最终),你的难题是你应该使用-query而不是-class。我还没有弄清楚这两种调用方法之间的实际区别是什么,但我假设这是相同的类/实例区别。
Get-WmiObject -query "SELECT * FROM meta_class WHERE __class = 'Win32_Share'"https://stackoverflow.com/questions/39725800
复制相似问题