在处理所有适配器的状态后,还可以查询每个网络适配器的详细配置信息。可以通过选择“控制面板”|“网络和共享中心”|“网络连接”选项,打开“网络连接”窗口。在其中显示每个适配器的详细信息并做相应调整,如图1所示。
图1 在“网络连接”窗口中查看每个适配器的详细信息
创建名为“GetNetAdapterConfig.ps1”的脚本收集特定网络适配器的用于排错的详细信息,并且通过指定关键字仅返回有关网络适配器的特定配置信息,其代码如下:
param($computer="localhost",$query,$help)
function funHelp()
{
$helpText=@"
DESCRIPTION:
NAME: GetNetAdapterConfig.ps1
Produces a listing of network adapter configuration information
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所示。
图2 查询当前主机DHCP信息
图3 未指定检索项默认会输出所有的网络适配器信息
作者: 付海军
版权:本文版权归作者所有
转载:欢迎转载,为了保存作者的创作热情,请按要求【转载】,谢谢
要求:未经作者同意,必须保留此段声明;必须在文章中给出原文连接;否则必究法律责任
个人网站: http://txj.lzuer.com/