PowerShell 2.0之使用WMI管理Windows(二)PowerShell操作WMI.docVIP

PowerShell 2.0之使用WMI管理Windows(二)PowerShell操作WMI.doc

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
PowerShell 2.0之使用WMI管理Windows(二)PowerShell操作WMI

PowerShell 2.0之使用WMI管理Windows(二)PowerShell操作WMI 时间:2011-01-22来源:博客园作者:佚名字体:[ 大 中 小 ]浏览次数: 1 在PowerShell发布之前,标准的操作方法是使用 编程脚本API调用一系列COM对象。调用COM客户端代码可以在各种语言中都能使用,只是典型的WMI客户端脚本代码使用VBScript编写,因为这样简单易行。代码会获取CIM对象的实例,并通过WQL查询和获取信息。结果是用标准的 foreach循环获得的集合。下例为使用VBS获取winword.exe进程id的winword_pid.vbs脚本,代码如下: strComputer = . classNamespace = winmgmts:\ strComputer rootcimv2 Set objWMIService = GetObject(classNamespace) query = SELECT * from Win32_Process WHERE Name = winword.exe Set results = objWMIService.ExecQuery(query) For Each process in results Wscript.Echo ProcessId: process.ProcessId Next 使用Windows Script Host控制台应用宿主cscript.exe执行脚本的结果如图1所示。 查看原图(大图) 图1 执行结果 1 WMI查询工具Get-WmiObject 在 PowerShell中针对WMI查找的命令是Get-WmiObject cmdlet,用于将查询发送到CIM对象。通过WMI返回结果会是.NET为CIM对象封装的PowerShell集合,其中包含零到多个 System.Management.ManagementObject对象。 与前面冗长的VBS代码不同的是Get- WmiObject选择有意义的默认值,不需要指定特定的主机名,默认为当前计算机。同样也不需要命名空间,默认为rootcimv2命名空间。通常情况下这个命名空间保存大多数需要管理的对象,如文件、进程、服务、网络设置及设备配置。下面使用Get-WmiObject重写前面用VBS获取 word的pid的脚本,命名为“winword_pid.ps1”,代码如下 : $query = SELECT * from Win32_Process WHERE Name=winword.exe Get-WmiObject -Query $query | select ProcessId 执行结果如图2所示。 查看原图(大图) 图2 执行结果 其中用-query参数传递一个完整的WQL查询,WQL语言的SELECT语句能够指定所需的属性,可以用这种方法获取对象属性的子集。在网络上传输大量数据时,可以通过这种方法限制无用数据。在实例中由于运行在本机并使用了通配符*获取所有属性的清单,因此不需要考虑优化网络流量。在这里可以使用简化的别名gwmi获取WMI信息,图3所示使用该命令获取winword.exe进程实例。 查看原图(大图) 图3 使用gwmi别名查询当前系统中的word进程PID 可以使用Get-WmiObject查询在远程主机运行的对象,为此需要提供-computer参数,执行如图4所示的命令。 访问其他主机涉及安全问题,cmdlet默认使用Windows域凭据认证,在这里通过-Credentials参数传递特定的凭据。也可以通过Get- Credential cmdlet获取真实的PSCredential对象,为Get-WmiObject提供凭据。在脚本执行过程中会弹出对话框要求输入用户名和密码,如图 5所示。 查看原图(大图) 图4 执行结果 图5 要求输入用户名和密码

文档评论(0)

xcs88858 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

版权声明书
用户编号:8130065136000003

1亿VIP精品文档

相关文档