首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Powershell、WMI方法

Powershell、WMI方法
EN

Stack Overflow用户
提问于 2016-09-27 21:21:57
回答 1查看 236关注 0票数 1

在PowerShell中使用WMI时,我发现了一些我不理解的东西:

代码语言:javascript
复制
# 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”方法呢?

EN

回答 1

Stack Overflow用户

发布于 2016-09-27 21:35:54

因为它们返回两种不同类型的对象。

代码语言:javascript
复制
(gwmi -Class Win32_Share).GetType()

返回System.Array实例,而

代码语言:javascript
复制
(New-Object "System.Management.ManagementClass" "Win32_Share").GetType()

返回System.Management.ManagementObject实例

注意,在一个已经实例化的对象上调用Create是没有意义的,或者换句话说:为什么你认为你需要它?

编辑

你的评论实际上让我重新思考(最终),你的难题是你应该使用-query而不是-class。我还没有弄清楚这两种调用方法之间的实际区别是什么,但我假设这是相同的类/实例区别。

代码语言:javascript
复制
Get-WmiObject -query "SELECT * FROM meta_class WHERE __class = 'Win32_Share'"
票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/39725800

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档