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