Windows PowerShell 是一個新的……
好吧,我相信你在看本文之前已經(jīng)把這句話看過N遍了……
PowerShell是一個由微軟的提供的全新shell程序,使用了全新的命令提示和腳本環(huán)境。使用PowerShell會給系統(tǒng)管理員帶來什么?學習PowerShell的好處又是什么?如果你已經(jīng)有了管理并使用VBScript的經(jīng)驗,相信你已經(jīng)知道答案了。Active Directory域現(xiàn)在已經(jīng)變得更加龐大和復雜,對于那些被束縛在GUI和Microsoft管理控制臺上的管理員們,PowerShell將使他們獲得自由!
不知道各位有沒有登陸到每個server、client修改注冊表的體驗,或者批量處理文件,批量配置……當你遇到這些問題,會怎么做?手動配置?還是運行一個腳本來解決問題?經(jīng)常使用VBScript的人當然會選擇后者,但是他們會問,為什么我還要學習PowerShell?
答案很簡單:PowerShell使用了面向?qū)ο蠓椒?,基?Net,這是VBScript所不能提供或者支持的。
PowerShell是基于對象而不是基于文本
如果你已經(jīng)熟練使用cmd.exe和批處理腳本,那么我認為你需要一些時間進行概念性的轉(zhuǎn)變。PowerShell與那些使用VBScript和其他編程語言的概念有著根本性的區(qū)別,傳統(tǒng)的命令提示符的輸出是基于文本的,而在PowerShell中則不會。它看起來像文本,但它實際上是一個對象。這就是為什么我說PowerShell強大的原因,因為一個PowerShell命令(對象)的輸出可以輸入到另一個命令中去,而無需加入額外的代碼。而在傳統(tǒng)的腳本語言中,如果你想讓一個命令傳遞到另一個命令,就需要額外的代碼來把需要傳遞的命令轉(zhuǎn)換成第二個命令可以理解的數(shù)據(jù)與格式。另外牽扯到一個問題,什么是對象?這個聽起來很熟悉,“在Active Directory域內(nèi)的一切都是對象?!崩缥覀兊姆掌鳌㈦娔X、打印機、安全組、組策略、用戶等,有了PowerShell,我們就可以很輕松的與這些對象進行互動:查看信息,以及創(chuàng)建、修改或刪除。
對PowerShell命令進行自定義
PowerShell命令被稱為的cmdlet。PowerShell自帶有超過100個cmdlet。PowerShell的開發(fā)團隊利用他們無窮的想象力為這些cmdlet創(chuàng)造了別名,使我們能夠盡可能的利用我們已經(jīng)習慣的傳統(tǒng)的命令來操作,如:dir、 cd、 del、 copy等等。即使是UNIX的上的老手,也可以輕松使用諸如ls、man等命令。為了最大程度上迎合用戶習慣,簡化操作,PowerShell允許用戶為cmdlet創(chuàng)建自己定義的別名,甚至創(chuàng)建自己的cmdlet。
PowerShell是一個命令行解釋器和腳本環(huán)境
概括地講就是PowerShell具有兩全其美。DOS僅僅是一個命令行解釋器,輸入命令,然后得到輸出,當然,也可以使用批處理文件,但批處理文件從本質(zhì)上只是對輸入的命令這一操作的簡化。在VBScript中,可以利用WSH(Windows腳本主機),但是并不能在命令提示符狀態(tài)下輸入VBScript代碼。PowerShell與它們都不同卻又相似,它不僅可以輸入命令,而且可以在命令行構(gòu)建腳本。以后的教程會詳細講述這個。
在接下來的幾周內(nèi)我將連續(xù)貼出PowerShell的基礎(chǔ)教程,為大家提供一個堅實的基礎(chǔ),良好的開端。
我將主要圍繞以下方面展開:
• Windows PowerShell的控制臺的配置與定制
• PowerShell基礎(chǔ):cmdlet、參數(shù)、命令類型……
• 使用PowerShell的命令格式輸出
• 使用Windows文件系統(tǒng)
• WMI和.NET
• 在PowerShell中使用變量
• 應用
開始,我們將集中圍繞PowerShell的基本命令與shell特性,了解其基本使用。還需要了解一點,PowerShell的一個強大功能是能夠在命令提示符下建立和測試代碼。在以往的經(jīng)驗中,我們往往先寫出腳本,然后測試它,進而對之前所寫的腳本進行調(diào)整,就好像在VBScript中那樣。但是PowerShell的強大之處就在于,你可以在命令行之后再寫的腳本,在后面的講解中會詳細介紹。
PowerShell 官方下載地址 http://support.microsoft.com/kb/968929
官方實例教程 http://technet.microsoft.com/zh-cn/scriptcenter/dd742419.aspx