探索PowerShell(十四) 使用WMI对象的方法
程序员文章站
2022-04-09 14:54:44
上一篇文章中介绍了wmi的基础内容,主要讲了wmi的属性值的查看,文中还提到,wmi不仅具有属性,还具有方法。这一节就来具体讲一下如何调用wmi对象方法。 通过查看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设置:
$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"字段便可以看到具体数据格式要求:
通过查看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"字段便可以看到具体数据格式要求:
上一篇: 使用HTML设计注册界面
下一篇: 卫子夫是怎么从舞姬变成一代贤后的?