探索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设置:
这段脚本首先会判断"IPEnable"是否为真,如果是,则开启DHCP,否则不进行操作。
类"Win32_NetworkAdapterConfiguration"还具有另外的方法,如"$NIC.SetDNSServerSearchOrder()",可以使用这个方法改变DNS设置,改变是否“自动获取DNS”的设置。
需要注意的是,在调用不同的方法时,需要不同类型的数据参数,这一点需要非常留心。在前文查询方法的命令输出中,在"Definition"字段便可以看到具体数据格式要求:
通过查看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设置:
代码如下:
$Network=get-wmiobject win32_NetworkAdapterConfiguration | where{ $_.IPEnabled -eq "true"} foreach($NIC in $Network){ $NIC.EnableDHCP()}
这段脚本首先会判断"IPEnable"是否为真,如果是,则开启DHCP,否则不进行操作。
类"Win32_NetworkAdapterConfiguration"还具有另外的方法,如"$NIC.SetDNSServerSearchOrder()",可以使用这个方法改变DNS设置,改变是否“自动获取DNS”的设置。
代码如下:
$Network=get-wmiobject win32_NetworkAdapterConfiguration | where{$_.IPEnabled -eq "true"} foreach($NIC in $Network){ $NIC.EnableDHCP() $NIC.SetDNSServerSearchOrder() }
需要注意的是,在调用不同的方法时,需要不同类型的数据参数,这一点需要非常留心。在前文查询方法的命令输出中,在"Definition"字段便可以看到具体数据格式要求:
相关推荐
huangzonggui 2019-12-29
83520298 2019-12-21
zhangjie 2014-10-14
nullplus 2019-06-13
流离岁月 2019-06-13
nullplus 2012-12-05
Haopython 2019-04-22
Haopython 2015-06-03
wgPython 2015-05-15
windowsIOS 2015-05-15
dgdafas 2009-08-28
YsuLiuYang 2009-08-12
zhangzhiyu 2013-03-19
mingkr 2019-04-09
BitTigerio 2018-01-29
清醒疯子 2017-11-29