PowerShell 2.0之使用WMI管理Windows(二)PowerShell操作WMI
2010年12月27日
在PowerShell发布之前,标准的操作方法是使用编程脚本API调用一系列COM对象。调用COM客户端代码可以在各种语言中都能使用,只是典型的WMI客户端脚本代码使用VBScript编写,因为这样简单易行。代码会获取CIM对象的实例,并通过WQL查询和获取信息。结果是用标准的foreach循环获得的集合。下例为使用VBS获取winword.exe进程id的winword_pid.vbs脚本,代码如下:
strComputer = "."
classNamespace = "winmgmts:\\" & strComputer & "\root\cimv2"
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选择有意义的默认值,不需要指定特定的主机名,默认为当前计算机。同样也不需要命名空间,默认为root\cimv2命名空间。通常情况下这个命名空间保存大多数需要管理的对象,如文件、进程、服务、网络设置及设备配置。下面使用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 要求输入用户名和密码
作者: 付海军
出处:http://blog.csdn.net/fuhj02
版权:本文版权归作者和csdn共有
转载:欢迎转载,为了保存作者的创作热情,请按要求【转载】,谢谢
要求:未经作者同意,必须保留此段声明;必须在文章中给出原文连接;否则必究法律责任
个人网站: http://txj.shell.tor.hu/
发表评论
-
批量修改多个文件内容的脚本
2012-01-20 02:17 748批量修改多个文件内容的脚本 2010年07月30日 如果 ... -
IIS 服务器没有及时响应启动或控制请求 未启动 启动 world wide web publishing服务 127 找不到指定程序
2012-01-20 02:17 583IIS 服务器没有及时响应启动或控制请求 未启动 启动 wor ... -
vbs脚本:DeleteFolder
2012-01-20 02:17 596vbs脚本:DeleteFolder 2010年08月08日 ... -
QTP使用技巧(1)
2012-01-20 02:17 635QTP使用技巧(1) 2011年06 ... -
论文《浅谈中国古代建筑艺术》
2012-01-19 10:07 927论文《浅谈中国古代建 ... -
中国古代建筑
2012-01-19 10:07 569中国古代建筑 2010年06月11日 中国古代建筑是中华 ... -
中国法制史1
2012-01-19 10:07 495中国法制史1 2011年06月24日 中国法制史一、夏商 ... -
【转】中国古代尚黄习俗成因新探
2012-01-19 10:07 640【转】中国古代尚黄习俗成因新探 2010年06月12日 ... -
中国古代礼节
2012-01-19 10:07 681中国古代礼节 2011年09 ... -
关于Android的一些设计
2012-01-17 02:48 494关于Android的一些设计 2012年01月13日 ... -
Windows Phone开发环境安装完成
2012-01-17 02:48 684Windows Phone开发环境安装完成 2011年12月 ... -
c++在Windows下枚举所有进程
2012-01-17 02:48 1234c++在Windows下枚举所有进 ... -
Windows 32位汇编
2012-01-17 02:48 819Windows 32位汇编 2011年05月07日 第2 ... -
开发者眼中Windows Phone 7的进步与退步
2012-01-17 02:48 664开发者眼中Windows Phone 7 ... -
越南旅游攻略??转载
2012-01-15 22:25 691越南旅游攻略??转载 201 ... -
谷歌找客户的方法
2012-01-15 22:24 496谷歌找客户的方法 2011年12月16日 Wind怎么利 ... -
2010年第八届中国机械(越南)展览会
2012-01-15 22:24 6082010年第八届中国机械(越南)展览会 2009年11月05 ... -
2011年第十届中国机械(越南)展览会
2012-01-15 22:24 5082011年第十届中国机械(越南)展览会 2010年11月22 ...
相关推荐
* 129 个命令行工具(称为“cmdlet”),用于执行常见系统治理任务,如治理服务、进程、事件日志、证书、注册表以及使用 Windows Management Instrumentation (WMI)。 * 采用标准命名约定和通用参数的命令行工具,...
WMI in Windows PowerShell 4.0
PowerShell是微软公司于2006年第四季度正式发布的. 它的出现标志着, 微软公司向服务器领域迈出了重要的一步, 拉近了与Unix, Linux等操作系统的距离.... 可以预期, 使用PowerShell管理Windows服务器指日可待.
在Windows 7中内置了PowerShell2.0, Windows 8中内置了PowerShell3.0。如果本机没有添加,可在网上下载安装包进行安装,或者下载WebPI,通过WebPI安装PowerShell。; 为防止恶意脚本的执行,PowerShell有一个执行策略...
WMI 是 Windows 操作系统管理数据和操作的基础设施,系统管理员可以使用 VB Script、PowerShell 及 Windows API(C++、C#等)管理本地或远程计算机。使用 WMI 框 架应用程序可以直接访问 EC RAM、 I/O 端口、Memory ...
PowerShell是微软公司于2006年第四季度正式发布的. 它的出现标志着, 微软公司向服务器领域迈出了重要的一步, 拉近了与Unix, Linux等操作系统的距离.... 可以预期, 使用PowerShell管理Windows服务器指日可待.
Power Shell and WMI.
windows powershell团队开发人员lee holmes在本书中提供了上百个测试过的脚本,让你可以使用这个新的工具。本书提供了150个解决方案,并结合一个简洁的基于windows powershell 脚本语言和环境的任务进行介绍。当你...
title: "PowerShell 通过 WMI 获取系统信息"本文告诉大家如何通过 WMI 使用 Win32_OperatingSystem 获取设备厂商通
本书全面地介绍了Windows Server 2008命令行、PowerShell和脚本的使用,包括文件和文件夹的管理、磁盘管理、系统管理、活动目录管理、网络管理、网络服务管理、系统诊断、故障恢复、系统安全、批处理和配置文件,...
《精通Windows Server 2008命令行与PowerShell》的内容简介回到顶部↑ 本书全面地介绍了windows server 2008命令行、powershell和脚本的使用,包括文件和文件夹的管理、磁盘管理、系统管理、活动目录管理、网络管理...
WMI是一个强大的技术:只需要简单的指定一个WMI类名就能返回它类的所有实例: 代码如下: PS> Get-WmiObject -Class Win32_BIOS SMBIOSBIOSVersion : 76CN27WW Manufacturer : LENOVO Name : 76CN27WW Serial...
Windows PowerShell in Action was written by Bruce Payette, one of the founding members of the Windows PowerShell team, co-designer of the PowerShell language and the principal author of the PowerShell...
《精通Windows Server 2008命令行与PowerShell》的内容简介回到顶部↑ 本书全面地介绍了windows server 2008命令行、powershell和脚本的使用,包括文件和文件夹的管理、磁盘管理、系统管理、活动目录管理、网络管理...
基于 Windows Server 2016 和 Windows 10 的 Powershell 与 WMI 集成课程,通过这一个课程的介绍,我们将了解到 WMI 架构和组件,了解 Powershell 调用 WMI 的命令和使用方法,掌握 Powershell 调用 WMI 获取系统的...
SessionGopher:SessionGopher是一个PowerShell工具,使用WMI提取保存的会话信息以供WinSCP,PuTTY,SuperPuTTY,FileZilla和Microsoft远程桌面等远程访问工具使用。 它可以远程或本地运行
WMI是Windows管理规范的缩写,其中包含很多系统的软硬件信息。而Windows用户信息也可以通过WMI对象来获取。PowerShell提供了对WMI的访问功能,十分方便且强大——这就是Get-WmiObject这个cmdlet。 获取所有的Windows...
How do you use Windows PowerShell to navigate the filesystem, manage files and folders, or retrieve a web page? This introduction to the PowerShell language and scripting environment provides more ...
《精通Windows Server 2008命令行与PowerShell》的内容简介回到顶部↑ 本书全面地介绍了windows server 2008命令行、powershell和脚本的使用,包括文件和文件夹的管理、磁盘管理、系统管理、活动目录管理、网络管理...
《精通Windows Server 2008命令行与PowerShell》的内容简介回到顶部↑ 本书全面地介绍了windows server 2008命令行、powershell和脚本的使用,包括文件和文件夹的管理、磁盘管理、系统管理、活动目录管理、网络管理...