详细说明WindowsPowerShell脚本的运用

Windows XP是美国微软公司研发的基于X86、X64架构的PC和平板电脑使用的操作系统,于2001年8月24日发布RTM版本,并于2001年10月25日开始零售 。其名字中“XP”的意思来自英文中的“体验(Experience)” 。该系统是继Windows 2000及Windows ME之后的下一代Windows操作系统,也是微软首个面向消费者且使用Windows NT5.1架构的操作系统 。Windows PowerShell 是一种命令行外壳程序和脚本环境,使命令行用户和脚本编写者可以利用 .NET Framework 的强大功能 。它引入了许多非常有用的新概念,从而进一步扩展了您在 Windows 命令提示符和 Windows Script Host 环境中获得的知识和创建的脚本 。本教程就为大家讲解WMI中的WindowsPowerShell脚本使用.
WMI由三种基础元素组成:
1.Provider -- 批准访问管理对象并提供有效的WMI API
【详细说明WindowsPowerShell脚本的运用】2.Classes -- 对象有属性和方法的WMI陈述
3.Namespace -- 类的逻辑分组
那么PowerShell是如何做到让WMI的访问更加容易的呢?
首先,让我们来了解一下PowerShell为WMI提供的工具 。总体来说有5个PowerShell 命令集,这让WMI的使用简单容易 。这里我将把它们都列出来,但是我接下来只会着重讲其中一个(Get-WMIObject):
1.Get-WmiObject—— 基于命名空间和提供的类别返回对象
2.Invoke-WmiMethod——调用WMI程序(通常用于执行静态程序)
3.Register-WmiEvent——用于订阅WMI事件
4.Remove-WmiObject -- 删除一个现有的WMI类的实例(要清楚,它实际并没有删除类本身,而是在内存中这个类的实例)
5.Set-WmiInstance -- 创建或更新一个现有WMI类的实例(要谨慎地使用它,因为它实际上会写入WMI库)
现在让我们来解决WMI中最大的难题,搞清楚它究竟是什么,并且能提供什么数据 。
你可以依靠下面的代码来写程序:
$Root = "\\.\ROOT:__namespace"
$WMIProv = New-Object System.Management.ManagementClass
($Root)
$WMIProv.GetInstances() | Select Name(但是,这比其它任务更复杂些 。幸运的是,你不用经常这么做 。)
下面是你通过特定命名空间列出提供类的方法(默认是Root\CIM2,它包括所有的Microsoft Win32类):
# On local machine
Get-WmiObject –Namespace Root\SecurityCenter –List
# On Remote machine
Get-WmiObject –Namespace Root\SecurityCenter –List
–Computer core
# To filter you can use wildcards
Get-WmiObject –Namespace Root\SecurityCenter –List
*firewall*
# To list the classes for HyperV on remote server
Get-WmiObject –Namespace Root\Virtualization –List
–Computer core(这很艰难,但是你可以通过WMI浏览器或微软的PowerShell Scriptomatic等免费工具来作弊 。)

    推荐阅读