探索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设置:


代码如下:

$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"字段便可以看到具体数据格式要求:

(0)

相关推荐

  • 探索PowerShell(十三) WMI对象介绍

    我记得在xp时代,经常使用的工具有一个叫做WMI Administrative Tools,是微软官方提供的用来查看.编辑WMI对象的,只是现在好似不支持新的系统了.但是,在Win7.Server 2008下,这些功能都可以方便的通过PowerShell来完成. 首先,先来认识一下什么是WMI对象: WMI是作为一个基本的数据库存在于Windows系统中的.我们可以连接到WMI服务请求查询其中所包含的信息.WMI包括了系统方方面面的信息,包括: • 机器信息:制造商.型号.序列号等 • BIOS

  • Powershell小技巧之使用WMI工具

    WMI是一个强大的技术:只需要简单的指定一个WMI类名就能返回它类的所有实例: 复制代码 代码如下: PS> Get-WmiObject -Class Win32_BIOS SMBIOSBIOSVersion : 76CN27WW Manufacturer      : LENOVO Name              : 76CN27WW SerialNumber      : 1006250300406 Version           : LENOVO - 1 你如何知道它有哪些类呢?这

  • Powershell小技巧之使用WMI测试服务响应

    测试一个服务是否有响应,有一个好办法.首先,使用WMI查询你指定的服务,WMI中可以返回构成它进程的ID. function Test-ServiceResponding($ServiceName) { $service = Get-WmiObject -Class Win32_Service -Filter "Name='$ServiceName'" $processID = $service.processID $process = Get-Process -Id $process

  • PowerShell入门教程之访问.Net程序集、COM和WMI实例

    PowerShell可以设计的大而全,重新实现一切:也可以像现在一样设计成胶水语言,利用现有的资源.特别是,与.Net.COM和WMI三大豪门的联姻,使得PowerShell必将在Windows世界里大放光彩. 与新锐.Net联姻 在Windows的世界里,.Net代表着现在和将来,是新生力量.与.Net联姻,就意味着榜上了粗腿,迈上了快车道.号称基于.Net Framework,那么使用.Net的基类就易如反掌.基本步骤如下:1.添加类所在程序集:2.创建类的实例:3.调用实例的函数或者属性.

  • Powershell小技巧之使用WMI查询插上的U盘

    如果你想知道当前插在你电脑上的USB设备,WMI能帮助你: Get-WmiObject -Class Win32_PnPEntity | Where-Object { $_.DeviceID -like 'USBSTOR*' } 这将返回所有插上在使用的USBSTOR设备类 如果你使用WMI查询语言(WQL),你甚至可以使用筛选命令: Get-WmiObject -Query 'Select * From Win32_PnPEntity where DeviceID Like "USBSTOR%

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

    上一篇文章中介绍了WMI的基础内容,主要讲了WMI的属性值的查看,文中还提到,WMI不仅具有属性,还具有方法.这一节就来具体讲一下如何调用WMI对象方法. 通过查看WMI对象,可以发现有不少的类同时具有属性和方法.例如类"Win32_NetworkAdapterConfiguration",j就具有不少的方法和属性,可以使用以下命令查询: Get-WmiObject Win32_NetworkAdapterConfiguration | Get-Member -MemberType M

  • 探索PowerShell(十) 循环语句介绍

    PowerShell作为可编程性语言,拥有以下循环语句. 注:本节所要讨论的内容的实质更多的偏向于程序设计方面,所以在此不做过多详细讲解,只针对PowerShell中的应用进行具体讲解. • for (初值;表达式;赋值语句) {代码} 用变量值控制执行次数 • foreach (成员变量 in 数组) {代码} 利用迭代执行代码 • foreach-object 对一组输入的每个对象执行运算 • while(表达式) {代码} 表达式为真时循环执行代码 • do {代码} while(表达式)

  • 读jQuery之十四 (触发事件核心方法)

    在 事件模块的演变 我使用了dispatchEvent(标准) 和fireEvent(IE)来主动触发事件.如下 复制代码 代码如下: ... dispatch = w3c ? function(el, type){ try{ var evt = document.createEvent('Event'); evt.initEvent(type,true,true); el.dispatchEvent(evt); }catch(e){alert(e)}; } : function(el, typ

  • 探索PowerShell (四) PowerShell的对象、格式与参数

    今天贴博文晚了,感谢各位能继续关注! 本节将要给大家介绍一下PowerShell下的对象,基本格式以及参数.依然属于PowerShell的基础. PowerShell中的对象 在本教程开篇我们说过,PowerShell是基于面向对象化的,不像传统的shell那样基于文本.这其中最主要的原因就是因为Win平台在管理操作上主要以面向对象为主,因此为了符合系统特点和我们的操作习惯,PowerShell也继承了这一特色.因此,不像传统的shell,在PowerShell中,我们可以随意地与对象进行互动,

  • [JAVA]十四种Java开发工具点评

    在计算机开发语言的历史中,从来没有哪种语言象Java那样受到如此众多厂商的支持,有如此多的开发工具,Java菜鸟们如初入大观园的刘姥姥,看花了眼,不知该何种选择.的确,这些工具各有所长,都没有绝对完美的,就算是老鸟也很难做出选择.在本文中我简要介绍了常见的十四种Java开发工具的特点,管中窥"器",希望能对大家有所帮助. 1.JDK (Java Development Kit) 2.Java Workshop 3.NetBeans 与Sun Java Studio 5 4.Borlan

  • 三十四、 WIN2000注册表应用九例

    三十四. WIN2000注册表应用九例 我们知道,与Windows 9x操作系统相似,在Windows 2000中,配置信息也是集中存储在注册表这个数据库里,但比较不同的是在Windows 9x中用来修改注册表文件的注册表编辑器是regedit.exe,而在Windows 2000中,要修改Registry数据库你可以使用两种"注册表编辑器"来进行编辑:一个是regedit.exe,而另一个则是regedt32.exe.前者可以在Windows 2000的安装目录\WINNT下找到,后

  • 在ASP.NET 2.0中操作数据之七十四:用Managed Code创建存储过程和用户自定义函数(下部分)

    第八步:从表现层调用Managed Stored Procedures 当对数据访问层和业务逻辑层进行扩充以支持调用GetDiscontinuedProducts 和 GetProductsWithPriceLessThan这2种managed stored procedures后,我们可以在一个ASP.NET页面里展示这些存储过程的结果了. 打开AdvancedDAL文件夹里的ManagedFunctionsAndSprocs.aspx页面,从工具箱拖一个GridView控件到设计器,设其ID

  • 探索PowerShell(六) 脚本基础简要

    PowerShell脚本基础知识概览: 常量.变量.数组.哈希 条件.逻辑 循环控制 模块化 WMI对象(各种设备) ADSI对象(活动目录) 常量.变量.数组.哈希 各种字符串操作 使用常量和变量 各种运算符和表达式 创建.修改.合并数组或哈希表 条件.逻辑 判断各种条件 "if"."switch"语句 使用运算符进行判断 循环控制 "while"."do while"."do until"."

  • jQuery 1.9.1源码分析系列(十四)之常用jQuery工具

    为了给下一章分析动画处理做准备,先来看一下一些工具.其中队列工具在动画处理中被经常使用. jQuery.fn. queue(([ queueName ] [, newQueue ]) || ([ queueName ,] callback ))(获取或设置当前匹配元素上待执行的函数队列. 如果当前jQuery对象匹配多个元素:获取队列时,只获取第一个匹配元素上的队列:设置队列(替换队列.追加函数)时,则为每个匹配元素都分别进行设置.如果需要移除并执行队列中的第一个函数,请使用dequeue()函

随机推荐