探索PowerShell(十四) 使用WMI对象的方法

 更新时间:2012年12月05日 17:53:21   作者:  
上一篇文章中介绍了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"字段便可以看到具体数据格式要求:

相关文章

  • Powershell中阻止”确认提示”的方法

    Powershell中阻止”确认提示”的方法

    这篇文章主要介绍了Powershell中阻止”确认提示”的方法,本文直接给出操作代码示例,需要的朋友可以参考下
    2015-03-03
  • Windows Powershell强类型数组

    Windows Powershell强类型数组

    强类型数组可以理解为强制数据类型的数组,也就是一个数组里只包含一种数据类型,强制转换数组语法的优势就是如果使用分号代替逗号分隔值,PowerShell将每个值看作命令文本,PowerShell会执行它并且存储结果。
    2014-09-09
  • PowerShell创建Byte数组例子

    PowerShell创建Byte数组例子

    这篇文章主要介绍了PowerShell创建Byte数组例子,Byte数组即字节数组,它是一种强类型的数组,需要的朋友可以参考下
    2014-08-08
  • 脚本实现SSL证书到期监控示例

    脚本实现SSL证书到期监控示例

    这篇文章主要介绍了脚本实现SSL证书到期监控示例,感兴趣的朋友可以试着实现,希望能够有所帮助,祝大家多多进步早日升职加薪
    2022-03-03
  • PowerShell和FFmpeg查找Windows中所有损坏音频文件

    PowerShell和FFmpeg查找Windows中所有损坏音频文件

    这篇文章主要为大家介绍了Windows中查找出所有损坏的音频文件,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2023-10-10
  • Powershell实现按类型排序

    Powershell实现按类型排序

    这篇文章主要介绍了Powershell实现按类型排序,本文直接给出实现代码,需要的朋友可以参考下
    2015-03-03
  • PowerShell小技巧之从函数中返回多个值

    PowerShell小技巧之从函数中返回多个值

    本文主要是介绍了一个可以让一个PS脚本函数需要返回多个值的方法,它能轻松的返回你想要的多个信息,并将结果分配给多个变量,有需要的朋友参考下
    2014-09-09
  • PowerShell定义函数参数的2种方法和传参方法实例

    PowerShell定义函数参数的2种方法和传参方法实例

    这篇文章主要介绍了PowerShell定义函数参数的2种方法和使用方法实例,简洁易懂的好文,需要的朋友可以参考下
    2014-07-07
  • PowerShell 3.0管理Hyper-V 3.0

    PowerShell 3.0管理Hyper-V 3.0

    这篇文章主要介绍了PowerShell 3.0管理Hyper-V 3.0的相关资料,非常的详细,需要的朋友可以参考下
    2015-09-09
  • PowerShell实现按条件终止管道的方法

    PowerShell实现按条件终止管道的方法

    这篇文章主要介绍了PowerShell实现按条件终止管道的方法,有时你可能想在管道运行在某个特定的条件下,终止管道的运行,本文就讲解了这样一种方法,需要的朋友可以参考下
    2015-06-06

最新评论