PowerShell2.0之Windows排錯(六)檢查網絡故障

網絡故障對於用戶來講是很複雜的問題,由於它可能涉及不少方面的知識,不容易查找和解決。網絡

爲檢查網絡故障,建立名爲「GetActiveNicAndConfig.ps1」的腳本,其代碼以下:ide

param($computer = $env:computername, [switch]$full, [switch]$help)函數

function funline ($strIN)網站

{orm

$strLine= "=" * $strIn.length對象

Write-Host -ForegroundColor yellow $strIN blog

Write-Host -ForegroundColor darkYellow $strLineip

}開發

function funHelp()字符串

{

$helpText=@"

DESCRIPTION:

NAME: GetActiveNicAndConfig.ps1

Displays

PARAMETERS:

-computer the name of the computer

-full prints complete information

-help prints help file

SYNTAX:

GetActiveNicAndConfig.ps1 -computer WebServer

Displays network adapter info and network adapter configuration info on a computer

named WebServer

GetActiveNicAndConfig.ps1

Displays network adapter info and network adapter configuration info on the local machine

GetActiveNicAndConfig.ps1 -computer WebServer -full

Displays full network adapter info and full network adapter configuration info on a computer named WebServer

GetActiveNicAndConfig.ps1 -help ?

Displays the help topic for the script

"@

$helpText

exit

}

if($help){ "Obtaining help ..." ; funhelp }

New-Variable -Name c_netConnected -value 2 -option constant

$nic = Get-WmiObject -Class win32_networkadapter -computername $computer `

-filter "NetConnectionStatus = $c_netConnected"

$nicConfig = Get-WmiObject -Class win32_networkadapterconfiguration `

-filter "interfaceindex = $($nic.interfaceindex)"

if($full)

{

funline("Full Network adapter information for $($computer)")

format-list -InputObject $nic -property [a-z]*

funline("Full Network adapter configuration for $($computer)")

format-list -InputObject $nicConfig -property [a-z]*

}

ELSE

{

funline("Basic Network adapter information for $($computer)")

format-list -InputObject $nic

funline("Basic Network adapter configuration for $($computer)")

format-list -InputObject $nicConfig

}

該腳本中使用param語句定義了3個參數,即-computer、-full和-help,其中將-computer變量設置爲系統環境變量中的計算機名稱。

funline函數得到輸入字符串的長度,並用這個長度來生成分隔線。結果保存在$strLine變量中,而後輸出帶下畫線的字符串。

隨後的代碼「New-Variable –Name c_netConnected –value 2 –option constant」建立保存已經鏈接網絡的網絡適配器數量的變量c_netConnected,其中的數值來自Windows軟件開發包(SDK)。使用Get-WmiObject cmdlet並選擇Win32_NetworkAdapter WMI類鏈接到$computer變量指定的計算機,而後查找當前已經鏈接的網絡適配器並將結果Management對象保存在$nic變量中。可使用該對象查找相關的網絡適配器配置對象,這裏使用$nic.InterfaceIndex屬性。由於該屬性也能夠用於Win32_NetworkAdapterConfiguration WMI類,將結果Management對象保存在$nicConfig變量中;另外還須要定義反饋信息數量的參數,在調用該腳本時提供了-full參數得到完整的網絡適配器及其配置信息。若是沒有-full參數,則僅輸出每一個WMI類的默認值。這時可使用Format-List cmdlet和-InputObject參數輸出信息。該腳本的執行結果如圖1所示。

image

圖1 執行效果

須要強調的是因爲管理網絡適配器的WMI管理類是存在差別,因此該腳本僅適用於Windows Vista和Windows Server 2008系統。

 

做者: 付海軍
出處:http://fuhj02.blog.51cto.com
版權:本文版權歸做者和51cto共有
轉載:歡迎轉載,爲了保存做者的創做熱情,請按要求【轉載】,謝謝
要求:未經做者贊成,必須保留此段聲明;必須在文章中給出原文鏈接;不然必究法律責任
我的網站: http://txj.lzuer.com/

相關文章
相關標籤/搜索