PowerShell2.0之维护网络(二)处理适配器配置

在处理全部适配器的状态后,还能够查询每一个网络适配器的详细配置信息。能够经过选择“控制面板”|“网络和共享中心”|“网络链接”选项,打开“网络链接”窗口。在其中显示每一个适配器的详细信息并作相应调整,如图1所示。网络

image

图1 在“网络链接”窗口中查看每一个适配器的详细信息ide

建立名为“GetNetAdapterConfig.ps1”的脚本收集特定网络适配器的用于排错的详细信息,而且经过指定关键字仅返回有关网络适配器的特定配置信息,其代码以下:函数

param($computer="localhost",$query,$help)网站

function funHelp()命令行

{orm

$helpText=@"对象

DESCRIPTION:blog

NAME: GetNetAdapterConfig.ps1dns

Produces a listing of network adapter configuration informationip

on a local or remote machine.

PARAMETERS:

-computer Specifies the name of the computer to run the script

-help prints help file

-query the type of query < ip, dns, dhcp, all >

SYNTAX:

GetNetAdapterConfig.ps1 -computerName WebServer

Lists default network adapter configuration on a

computer named WebServer

GetNetAdapterConfig.ps1 -computerName WebServer -query IP

Lists IPaddress, IPsubnet, DefaultIPgateway, MACAddress

on a computer named WebServer

GetNetAdapterConfig.ps1 -computerName WebServer -query DNS

Lists DNSDomain, DNSDomainSuffixSearchOrder, DNSServerSearchOrder,

DomainDNSRegistrationEnabled on a computer named WebServer

GetNetAdapterConfig.ps1 -computerName WebServer -query DHCP

Lists Index,DHCPEnabled, DHCPLeaseExpires, DHCPLeaseObtained,

DHCPServer on a computer named WebServer

GetNetAdapterConfig.ps1 -computerName WebServer -query ALL

Lists all network adapter configuration information on a computer

named WebServer

GetNetAdapterConfig.ps1 -help ?

Prints the help topic for the script

"@

$helpText

exit

}

if($help) { "Printing help now..." ; funHelp }

$class="win32_networkadapterconfiguration"

$IPproperty="IPaddress, IPsubnet, DefaultIPgateway, MACAddress"

$dnsProperty="DNSDomain, DNSDomainSuffixSearchOrder, `

DNSServerSearchOrder, DomainDNSRegistrationEnabled"

$dhcpProperty="Index,DHCPEnabled, DHCPLeaseExpires, `

DHCPLeaseObtained, DHCPServer"

if($query)

{

switch($query)

{

"ip" { $query="Select $IPproperty from $class" }

"dns" { $query="Select $dnsProperty from $class" }

"dhcp" { $query="Select $dhcpProperty from $class" }

"all" {

$query = "Select * from $class" ; `

Get-WmiObject -Query $query | format-list * ;

exit

}

DEFAULT {

$query = "Select * from $class" ; `

Get-WmiObject -Query $query ; exit

}

}

}

ELSE

{

$query = "Select * from $class" ; `

Get-WmiObject -Query $query ; exit

}

Get-WmiObject -query $query | format-table [a-z]* -AutoSize

该脚本使用param语句定义了3个参数,即-computer、-query及-help。其中设置-computer的默认值为localhost。若是用户未指定计算机,则默认返回本地计算机的网络配置。

接下来针对帮助信息建立的funhelp函数用于输出帮助信息,当用户未输入参数或输入错误的参数时,调用该函数提示输入的错误及正确的输入。脚本中使用if语句检查$help变量是否存在,由于只有用户在调用脚本时指定了-help参数,该变量才会存在。随后初始化用于WMI查询的变量,这些变量的存在是为了便于在后面对命令行应用中实现灵活调用。在用户输入的参数中包括-query参数时,脚本将会调用switch语句判断$query变量值。并执行相应的操做,输出ip、dns、dhcp和全部条目的信息。在$query变量无输入的状况下还特别使用ELSE语句将WMI对象中的全部属性发送给Get-WmiObject cmdlet查询,在控制台输出当前计算机中的全部网络链接的信息。在代码的最后将Get-WmiObject cmdlet查询的结果经过管道传递给Format-Table cmdlet格式化输出,在使用Format-Tables时须要指定符合Get-WmiObject cmdlet输出代码格式的参数。该脚本的执行结果如图2和图3所示。

image

图2 查询当前主机DHCP信息

image

图3 未指定检索项默认会输出全部的网络适配器信息

做者: 付海军
出处:http://fuhj02.blog.51cto.com
版权:本文版权归做者和51cto共有
转载:欢迎转载,为了保存做者的创做热情,请按要求【转载】,谢谢
要求:未经做者赞成,必须保留此段声明;必须在文章中给出原文链接;不然必究法律责任
我的网站: http://txj.lzuer.com/

相关文章
相关标签/搜索