Board logo

标题: [转载教程] 【探索PowerShell 】【十四】使用WMI对象的方法 [打印本页]

作者: HAT    时间: 2013-9-1 11:11     标题: 【探索PowerShell 】【十四】使用WMI对象的方法

【探索PowerShell 】【一】初识http://www.bathome.net/thread-26144-1-1.html
【探索PowerShell 】【二】基本操作http://www.bathome.net/thread-26148-1-1.html
【探索PowerShell 】【三】PowerShell下使用Aliaseshttp://www.bathome.net/thread-26149-1-1.html
【探索PowerShell 】【四】PowerShell的对象、格式与参数http://www.bathome.net/thread-26159-1-1.html
【探索PowerShell 】【五】PowerShell基础知识http://www.bathome.net/thread-26162-1-1.html
【探索PowerShell 】【六】脚本基础简要http://www.bathome.net/thread-26163-1-1.html
【探索PowerShell 】【七】变量http://www.bathome.net/thread-26165-1-1.html
【探索PowerShell 】【八】数组、哈希表(附:复制粘贴技巧)http://www.bathome.net/thread-26166-1-1.html
【探索PowerShell 】【九】条件控制、逻辑http://www.bathome.net/thread-26167-1-1.html
【探索PowerShell 】【十】循环语句http://www.bathome.net/thread-26168-1-1.html
【探索PowerShell 】【十一】函数http://www.bathome.net/thread-26174-1-1.html
【探索PowerShell 】【十二】筛选器 - Filtershttp://www.bathome.net/thread-26187-1-1.html
【探索PowerShell 】【十三】WMI对象http://www.bathome.net/thread-26188-1-1.html
【探索PowerShell 】【十四】使用WMI对象的方法http://www.bathome.net/thread-26189-1-1.html
【探索PowerShell 】【十五】引号与转义字符http://www.bathome.net/thread-26190-1-1.html

上一篇文章中介绍了WMI的基础内容,主要讲了WMI的属性值的查看,文中还提到,WMI不仅具有属性,还具有方法。这一节就来具体讲一下如何调用WMI对象方法。

通过查看WMI对象,可以发现有不少的类同时具有属性和方法。例如类"Win32_NetworkAdapterConfiguration",j就具有不少的方法和属性,可以使用以下命令查询:
  1. Get-WmiObject Win32_NetworkAdapterConfiguration | Get-Member -MemberType Methods | Format-List
复制代码
列出的可用的方法有:

    DisableIPSec
    EnableDHCP
    EnableIPSec
    EnableStatic
    ReleaseDHCPLease
    RenewDHCPLease
    SetDNSDomain
    SetDNSServerSearchOrder
    SetDynamicDNSRegistration
    SetGateways
    SetIPConnectionMetric
    SetIPXFrameTypeNetworkPairs
    SetTcpipNetbios
    SetWINSServer
    ConvertFromDateTime
    ConvertToDateTime
    Delete
    GetType
    Put

同样,使用如下命令查询其属性成员:
  1. Get-WmiObject Win32_NetworkAdapterConfiguration | Get-Member -MemberType Property | Format-List
复制代码
通过以上命令查询,类"Win32_NetworkAdapterConfiguration"有着方法"EnableDHCP"和属性"IPEnabled"。下面,就用此这两个成员来说明如何调用类的方法。

在这个类中,方法"EnableDHCP"的作用是开启、关闭网络适配器DHCP功能,属性"IPEnable"则是一个bool值,反应是否有IP配置,有则为"true"反之则为"false"。用"IPEnable"可以过滤我们可以跳过任何断开的、虚拟的网络适配设备。

例如我们可以使用如下命令来改变DHCP设置:
  1. $Network=get-wmiobject win32_NetworkAdapterConfiguration | where{
  2. $_.IPEnabled -eq "true"}
  3. foreach($NIC in $Network){
  4. $NIC.EnableDHCP()}
复制代码
这段脚本首先会判断"IPEnable"是否为真,如果是,则开启DHCP,否则不进行操作。

类"Win32_NetworkAdapterConfiguration"还具有另外的方法,如"$NIC.SetDNSServerSearchOrder()",可以使用这个方法改变DNS设置,改变是否“自动获取DNS”的设置。
  1. $Network=get-wmiobject win32_NetworkAdapterConfiguration | where{$_.IPEnabled -eq "true"}
  2. foreach($NIC in $Network){
  3. $NIC.EnableDHCP()
  4. $NIC.SetDNSServerSearchOrder()
  5. }
复制代码
需要注意的是,在调用不同的方法时,需要不同类型的数据参数,这一点需要非常留心。在前文查询方法的命令输出中,在"Definition"字段便可以看到具体数据格式要求。

本文出自 “马睿的技术博客” 博客,请务必保留此出处http://marui.blog.51cto.com/1034148/298520




欢迎光临 批处理之家 (http://bbs.bathome.net/) Powered by Discuz! 7.2