【探索PowerShell 】【十四】使用WMI对象的方法

简介:

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

通过查看WMI对象,可以发现有不少的类同时具有属性和方法。例如类"Win32_NetworkAdapterConfiguration",j就具有不少的方法和属性,可以使用以下命令查询:

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

同样,使用如下命令查询其属性成员:

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()  

需要注意的是,在调用不同的方法时,需要不同类型的数据参数,这一点需要非常留心。在前文查询方法的命令输出中,在"Definition"字段便可以看到具体数据格式要求:

 



     本文转自melvillo 51CTO博客,原文链接:http://blog.51cto.com/marui/298520,如需转载请自行联系原作者






相关文章
|
存储 JSON 运维
PowerShell / 运维PowerShell 对象的序列化和反序列化
本文介绍Powershell中如何实现对象的序列化和反序列化。
125 0
|
4月前
|
存储 JSON JavaScript
|
4月前
【Azure Developer】使用PowerShell Where-Object方法过滤多维ArrayList时候,遇见的诡异问题 -- 当查找结果只有一个对象时,返回结果修改了对象结构,把多维变为一维
【Azure Developer】使用PowerShell Where-Object方法过滤多维ArrayList时候,遇见的诡异问题 -- 当查找结果只有一个对象时,返回结果修改了对象结构,把多维变为一维
|
7月前
|
存储 JSON 运维
PowerShell 对象的序列化和反序列化
PowerShell 对象的序列化和反序列化
122 0
|
Windows
PowerShell和cmd区别以及在文件夹快速打开cmd窗口的几种方法
PowerShell和cmd区别以及在文件夹快速打开cmd窗口的几种方法
176 0
|
存储 运维 Linux
【运维】PowerShell编程 目录文件相关方法的封装与案例详解
本文实现一个目录管理类,归纳了 Powershell 中常用的文件路径方法。这些方法可以迅速方便的用于 Powershell 编写大型运维脚本中。以简单使用为目的封装常用目录文件操作。完成源代码在作者的github上可以找到。
196 0
|
前端开发 Shell 开发工具
前端开发工具 vscode 使用技巧篇:控制台由powershell切换为cmd方法,windows下新旧版控制台cmd与powershell互切方法
前端开发工具 vscode 使用技巧篇:控制台由powershell切换为cmd方法,windows下新旧版控制台cmd与powershell互切方法
457 0
前端开发工具 vscode 使用技巧篇:控制台由powershell切换为cmd方法,windows下新旧版控制台cmd与powershell互切方法