使用PowerShell實現(xiàn)常用網(wǎng)絡命令
PowerShell是Windows Server 2008中的專門為系統(tǒng)管理員設計的一個新特性,利用PowerShell可以在命令行下實現(xiàn)強大的功能。本文通過一些例子,介紹了PowerShell如何實現(xiàn)常見網(wǎng)絡命令,最后通過一個組合例子,介紹了PowerShell的兩大特點。
如果要求我們的Windows網(wǎng)絡管理員在進行每天的管理操作時,都采用命令行的字符界面的方式,估計大多數(shù)的Windows的管理員都將反對這種做法,因為Windows的命令行工具的功能一向都很薄弱。隨著的Windows PowerShell的發(fā)布,這種情況將得以改變。PowerShell可以讓管理員們在命令行界面下,做很多以前做不了的事情。
在本文中,我們介紹如何使用PowerShell命令行來執(zhí)行一些常見的網(wǎng)絡功能。
1.什么是PowerShell?
PowerShell是Windows Server 2008的一個新特性。要安裝PowerShell,你需要在新增功能向?qū)е羞x擇安裝Powershell特征,一分鐘左右即可完成安裝,之后您就可以體會到驚人的命令行腳本語言。與Windows中其他腳本語言不同的是, PowerShell是專門為系統(tǒng)管理員設計的。Powershell需要用到.NET框架和cmdlets命令集。作為PowerShell的用戶,您可以使用系統(tǒng)自帶的cmdlets,也可以自定義cmdlets,擴展實現(xiàn)更強大的功能。
一旦你安裝了PowerShell,您可以在開始菜單->所有程序中看到Windows PowerShell 1.0這一項,點擊其中的Windows PowerShell選項。這時,你就可以看到一個藍色的CLI窗口,如下圖所示:
圖1:Windows Powershell命令行窗口
在每個提示行之前,都有一句:
時刻提醒你,目前正在PowerShell命令行中。
現(xiàn)在讓我們來看看如何使用PowerShell來完成一些常見的網(wǎng)絡命令。
2.列出服務器的IP地址
在Windows 2008中使用以下命令行,可以列出服務器IP地址:
你可以看到類似以下的輸出結(jié)果:
圖2:使用Windows PowerShell列出IP地址
從圖2可以看到,該Windows 2008服務器的適配器有一個IPV4的地址和一個IPV6的地址。這個功能本身并不令人吃驚,你可以嘗試加上其他腳本功能。
此命令輸出結(jié)果是一個數(shù)組,如果你只想看到IP地址,可以修改“select-Object”參數(shù)項,使其禁用IPV6,命令行如下:
你可以看到類似以下的輸出內(nèi)容:
圖3:使用Windows PowerShell只列出IPV4的地址
3.使用PowerShell列出網(wǎng)絡適配器配置信息
通過以下命令,可以顯示網(wǎng)絡適配器的基本配置信息:
上面的命令執(zhí)行后,你可以看到類似以下的輸出內(nèi)容:
圖4:使用PowerShell顯示網(wǎng)絡適配器配置信息
4.使用PowerShell實現(xiàn)Pinging的功能
雖然在PowerShell命令行仍然可以執(zhí)行所有常規(guī)的Windows命令(如ping),但使用PowerShell的話,功能將更強大,你可以很方便地根據(jù)自己需要調(diào)整輸出項。
下面的例子中,使用Win32_PingStatus輸出結(jié)果,并使用select-Object來對結(jié)果進行解析,使得最后輸出結(jié)果僅顯示輸出的響應時間和狀態(tài)代碼。
命令行如所示:
你可以看到類似以下的輸出內(nèi)容:
圖5:使用PowerShell中的select-Object對Ping的結(jié)果進行解析
5.Windows Powershell共享一個文件夾
下面這個PowerShell命令,將目錄C:\temp共享為 “davidtemp”:
你也可以直接使用net share命令,來實現(xiàn)目錄共享的功能,如下所示:
6.使用PowerShell實現(xiàn)復雜的網(wǎng)絡命令
如果你只是想用PowerShell技術來實現(xiàn)最基本的網(wǎng)絡管理,您可能會覺得非常沮喪而不使用它了。因為,與其他任何腳本語言一樣,PowerShell也有一個學習曲線。一旦你過了這個學習曲線,學會了如何使用PowerShell,你將從中獲益。采用PowerShell將會大大節(jié)省你的時間,并提升效率。
大多數(shù)PowerShell命令都有個“computername”參數(shù)。如果當我們將該參數(shù)指定為("."),則表示是本地主機 。然而,我們也可以指定該參數(shù)為任意IP地址或局域網(wǎng)中的計算機名,這樣PowerShell腳本創(chuàng)建好后,不僅可以運行于本機,也可以運行在網(wǎng)絡上的所有計算機。
比如,我們想知道局域網(wǎng)中計算機名為Dell9400這個機器的網(wǎng)卡配置信息,可以使用以下命令:
你可以看到類似以下的輸出內(nèi)容:
圖6:使用Powershell列出遠程計算機的網(wǎng)卡配置信息
PowerShell有兩個主要特點:
第一個特點在于能夠獲取遠程計算機信息,這點從圖6這個例子我們已經(jīng)可以看出。
另一個主要特點是能夠過濾器輸出,以及將一個命令的輸出作為另一個命令的輸入??聪旅孢@個命令:
上面這個命令,進行了3個步驟地操作:
1)首先列出了3個IP地址和域名;
2)這個列表中的3個數(shù)值,作為“ForEach-Object”的輸入?yún)?shù),對于每個數(shù)值,分別執(zhí)行一次“Get-WmiObject”PingStatus命令,對每個IP地址或域名進行Ping操作;
3)每次Ping的結(jié)果,作為輸入?yún)?shù),通過“select-Object”進行解析,只顯示IP地址,遠程響應時間和狀態(tài)碼三個字段。
以下是輸出結(jié)果:
圖7:PowerShell復合命令范例
從這個例子中,我們可以看到PowerShell強大的地方。你可以通過組合,將將一個命令的輸出作為另一個命令的輸入,以完成系統(tǒng)管理的目的。
7.小結(jié)
Windows PowerShell功能非常強大。本文只是介紹了Powershell能夠?qū)崿F(xiàn)的一些功能,希望通過這些功能,能夠激發(fā)你更多地去了解PowerShell。
需要注意的是,雖然PowerShell是Windows Server 2008中的一個新特性,但是PowerShell并不是只能運行于Windows Server 2008中。在Windows XP、Vista或Server 2003中同樣也可以使用PowerShell,只需要單獨下載并安裝一下PowerShell安裝程序即可
【編輯推薦】