易學(xué)易用的Windows PowerShell_第1頁(yè)
易學(xué)易用的Windows PowerShell_第2頁(yè)
易學(xué)易用的Windows PowerShell_第3頁(yè)
易學(xué)易用的Windows PowerShell_第4頁(yè)
易學(xué)易用的Windows PowerShell_第5頁(yè)
已閱讀5頁(yè),還剩3頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶(hù)提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

易學(xué)易用的易學(xué)易用的 Windows PowerShell Windows PowerShell 是微軟為 Windows 環(huán)境所開(kāi)發(fā)的 shell 及腳本語(yǔ)言技術(shù) 這項(xiàng)全 新的技術(shù)提供了豐富的控制與自動(dòng)化的系統(tǒng)管理能力 而 腳本語(yǔ)言 scripting languages 則是用來(lái)編寫(xiě)程序的計(jì)算機(jī)語(yǔ)言 腳本語(yǔ)言通常都有簡(jiǎn)單 易學(xué) 易用的特性 目的就是希望能 讓寫(xiě)程序的人 開(kāi)發(fā)者 快速完成程序的編寫(xiě)工作 本文將簡(jiǎn)述腳本語(yǔ)言的起源與目的 并且介 紹 Windows PowerShell 腳本語(yǔ)言的源起與目的腳本語(yǔ)言的源起與目的 腳本語(yǔ)言是計(jì)算機(jī)程序語(yǔ)言 programming languages 的一種 因此也能讓開(kāi)發(fā)者藉以 編寫(xiě)出讓計(jì)算機(jī)聽(tīng)命行事的程序 但是 以簡(jiǎn)單的方式快速完成某些復(fù)雜的事情 通常是創(chuàng)造腳 本語(yǔ)言的重要原則 基于這項(xiàng)原則 使得腳本語(yǔ)言通常比 C C 或 Java 之類(lèi)的 系統(tǒng)程序 語(yǔ)言 system programming languages 簡(jiǎn)單 容易 也讓腳本語(yǔ)言另有一些所 謂 腳本語(yǔ)言的特性 語(yǔ)法和結(jié)構(gòu)通常比較簡(jiǎn)單 學(xué)習(xí)和使用通常比較簡(jiǎn)單 通常以容易修改程序的 直譯 作為執(zhí)行方式 而不需要編譯 程序的開(kāi)發(fā)產(chǎn)能優(yōu)于執(zhí)行效能 腳本語(yǔ)言源自早期文字模式的命令列計(jì)算機(jī)系統(tǒng) 在當(dāng)時(shí)只能以鍵盤(pán)敲入命令才能操作計(jì)算 機(jī)的情況下 為了減少某些需要不斷重復(fù)敲入命令的情況 計(jì)算機(jī)操作系統(tǒng)的命令處理器 在 UNIX 的世界這通常稱(chēng)為 command shell 提供了 批次操作 batch operation 的方式 讓計(jì)算機(jī)操作者可以將一整個(gè)流程的命令 循序 逐行的編排在稱(chēng)為 批處理 batch file 也稱(chēng)為 batch jobs 或 shell scripts 的文字文件 若有相同的操作需要處理 即可加載批次 檔而不需再次重復(fù)敲入指令 Shell Script 由于批處理對(duì)命令列的計(jì)算機(jī)系統(tǒng)操作者幫助甚大 因此操作系統(tǒng)的命令處理器也不斷加強(qiáng) 功能 尤其加入了許多程序語(yǔ)言的重要元素 包括變量 循環(huán) 條件判斷等等 讓計(jì)算機(jī)操作不 只是循序的執(zhí)行命令 而能更精確的操控計(jì)算機(jī)系統(tǒng)的運(yùn)作 這種程序設(shè)計(jì)通常稱(chēng)為 shell programming 因此 不論是大型主機(jī)的系統(tǒng)操作員 或者是整個(gè)計(jì)算機(jī)環(huán)境的系統(tǒng)管理員 網(wǎng)絡(luò)管理員 shell programming 都是相當(dāng)重要的技能 這項(xiàng)技能可以有效且快速的管理轄下 的計(jì)算機(jī) UNIX 系統(tǒng)的 shell 相當(dāng)多樣 例如 Bourne Shell sh Bourne Again Shell bash Korn Shell ksh C Shell csh 等等 以下簡(jiǎn)述常見(jiàn)的 UNIXshell Bourne Shell sh 這是歷史悠久且重要的 UNIX shell 是由貝爾實(shí)驗(yàn)室的研究員 Stephen Bourne 為第七版的 UNIX 所創(chuàng)造 這種 shell 的執(zhí)行檔擴(kuò)展名就是 sh Bourne Again Shell bash 光從名稱(chēng)就能猜出 bash 與 sh 是有淵源 甚至說(shuō) 血緣 bash 是由 Brian Fox 于 1987 年為 GNU 所創(chuàng)造 1990 年起 Chet Ramey 成為主 要的維護(hù)者 bash 是相當(dāng)流行的 shell 除了是大多數(shù) Linux 預(yù)設(shè)的 shell 在許多 UNIX like 系統(tǒng)也有其蹤跡 例如 Mac OS X Tiger 甚至也能通過(guò) Cygwin 在 Windows 系統(tǒng)執(zhí) 行 Korn Shell ksh 是由貝爾實(shí)驗(yàn)室的研究員 David Korn 在 80 年代初期所創(chuàng)造 ksh 除了與 sh 完全兼容 也包含了若干 C Shell 的功能 C Shell csh 是由 Bill Joy 后來(lái)創(chuàng)辦了 Sun 公司 為 BSD UNIX 系統(tǒng)所創(chuàng)造 csh 源自于第六版 UNIX 的 Thompson shell 是 Bourne Shell 的前身 因?yàn)檎Z(yǔ)法類(lèi)似 C 語(yǔ) 言而得名 除了上述盛行于 UNIX 環(huán)境的 shell 其它操作系統(tǒng)也有專(zhuān)屬的 shell 或 shell 腳本語(yǔ)言 例如蘋(píng)果 Mac 系統(tǒng)的 AppleScript IBM OS 2 的 REXX REstructured eXtended eXecutor 而 DOS 以及早期 Windows 的 shell 則是 C 但也因功能較弱 因此有 4DOS 4NT 等軟件可增強(qiáng)功能 Windows 2000 以及之后的 Windows 則改以功能 較強(qiáng) cmd exe 作為 Windows shell 并且以 Windows Script Host 作為腳本語(yǔ)言執(zhí)行環(huán)境 大幅提高了 Windows shell 的可用性 而微軟也將會(huì)推出功能更強(qiáng)的 Windows shell 稱(chēng)為 Windows PowerShell 雖然現(xiàn)在許多計(jì)算機(jī)系統(tǒng)都提供了圖形化的操作方式 但是卻都沒(méi)有因而停止提供文字模式 的命令列操作方式 相反的 許多系統(tǒng)反而更加強(qiáng)這部份的功能 例如 Windows 就不只加強(qiáng)了 操作命令的功能和數(shù)量 也一直在改善 shell programming 的方式 而之所以要加強(qiáng) 改善 當(dāng)然是因?yàn)椴粔蚝?Windows 的圖形化操作方式對(duì)單一客戶(hù)端計(jì)算機(jī)的操作 已經(jīng)相當(dāng)方便 但如果是一群客戶(hù)端計(jì)算機(jī) 或者是 24 小時(shí)運(yùn)作的服務(wù)器計(jì)算機(jī) 圖形化操作方式有時(shí)會(huì)很不 方便 宏語(yǔ)言宏語(yǔ)言 宏語(yǔ)言也可視為腳本語(yǔ)言的分支 兩者也實(shí)質(zhì)上的相同之處 宏語(yǔ)言通常附屬于某一種軟件 例如微軟 Office Visual Studio Adobe Photoshop 都內(nèi)建了宏語(yǔ)言的功能 使用者可利用 軟件所附的宏語(yǔ)言 達(dá)到自動(dòng)化的結(jié)果 例如調(diào)整某個(gè)數(shù)據(jù)夾所有 PSD 圖文件的分辨率 而 這類(lèi)宏語(yǔ)言也大多提供錄制宏的功能 自動(dòng)記錄使用者的鍵盤(pán)按鍵 讓使用者不必寫(xiě)程序 就能 產(chǎn)生宏程序 此外 C 語(yǔ)言和匯編語(yǔ)言也有宏功能 是以搜尋及取代進(jìn)行編譯或組譯之前的前置 處理 Windows PowerShell 誕生誕生 UNIX 的世界有功能強(qiáng)大的 shell 現(xiàn)在 Windows 環(huán)境也有了 Windows PowerShell 不僅提供功能相當(dāng)于 BASH 的命令列 shell 同時(shí)也內(nèi)建腳本語(yǔ)言以及輔助腳本程序的工具 Windows PowerShell 是以 NET 技術(shù)為基礎(chǔ) 并且與現(xiàn)有的 WSH 保持回溯兼容 因此 Windows PowerShell 的腳本程序不僅能存取 NET CLR 也能使用現(xiàn)有的 COM 技術(shù) Windows PowerShell 包含了數(shù)種系統(tǒng)管理工具 簡(jiǎn)易且一致的語(yǔ)法 提升管理者處理常 見(jiàn)如登錄數(shù)據(jù)庫(kù) WMI Exchange Server 2007 以及 System Center Operations Manager 2007 等服務(wù)器軟件都將內(nèi)建 Windows PowerShell Monad 是 Windows PowerShell 之前的項(xiàng)目代號(hào) Microsoft Shell MSH 則是另一 個(gè)別名 簡(jiǎn)而言之 Windows PowerShell 具有以下特點(diǎn) 一致性的設(shè)計(jì)讓所有工具和系統(tǒng)數(shù)據(jù)的使用語(yǔ)法 命名原則都相同 Windows PowerShell 的腳本語(yǔ)言不僅簡(jiǎn)單易學(xué) 而且能支持現(xiàn)有的腳本程序和命令列工 具 內(nèi)含 129 種稱(chēng)為 cmdlet 的標(biāo)準(zhǔn)工具 可用來(lái)處理常見(jiàn)的系統(tǒng)管理工作 例如登錄數(shù)據(jù)庫(kù) 系統(tǒng)服務(wù) 形成 WMI 事件日志等等 具備完整的擴(kuò)充功能 獨(dú)立軟件商或開(kāi)發(fā)者都能很容易的自行擴(kuò)充 下載 安裝 執(zhí)行下載 安裝 執(zhí)行 Windows PowerShell Windows PowerShell 可安裝于 Windows XP 以及之后的客戶(hù)端或服務(wù)器端 Windows 操作系統(tǒng) 包括 客戶(hù)端 Windows XP Windows XP Service Pack 1 Windows XP Service Pack 2 Windows Vista 服務(wù)端 Windows Server 2003 Windows Server 2003 R2 Windows Server 2003 Service Pack 1 而 Windows PowerShell 除了有 32 位版本 也還有 x64 和 ia64 等兩個(gè) 64 位版本 可以安裝在這兩種 64 位 Windows 平臺(tái) 此外 由于執(zhí)行 Windows PowerShell 需要 NET Framework 2 0 因此請(qǐng)先替計(jì)算機(jī)安裝 NET Framework 2 0 安裝之后 可以利用以下三種方式執(zhí)行 Windows PowerShell 位于 開(kāi)始 所有程序 的 Windows PowerShell 快捷方式 在 開(kāi)始 運(yùn)行 的 運(yùn)行 命令窗輸入 powershell 在任何 命令提示字符 窗口的命令提示符號(hào)輸入 powershell Windows PowerShell 窗口看起來(lái)類(lèi)似原本的 命令提示字符 窗口 而我通常也都會(huì)調(diào) 整窗口和字型的大小 以方便作業(yè) 初探初探 Windows PowerShell 任何 shell 都有列出目錄 文件的命令 Windows PowerShell 呢 先輸入 DOS 的 dir 試試吧 圖 1 dir 指令執(zhí)行結(jié)果 嗯 dir 果然也通 但是列示的方式不同于以往的 dir 指令 一時(shí)興起 我輸入了 UNIX 的 ls 指令 窗口顯示了與 dir 指令相同的結(jié)果 真有趣 這時(shí)候我尚未閱讀任何 Windows PowerShell 文件 只是很直覺(jué)輸入指令 Windows PowerShell 指令指令 cmdlet 是 Windows PowerShell 的指令 這相當(dāng)于 DOS 或其它 shell 的內(nèi)建指令 但是剛剛輸入的 dir 或 ls 并不是 cmdlet 這稍后將會(huì)說(shuō)明 cmdlet 的發(fā)音方式是 command let cmdlet 名稱(chēng)的格式都是以連字符號(hào)隔開(kāi)的一對(duì)動(dòng)詞和名詞 并且通常都是單數(shù) 名詞 例如可以在線查詢(xún) cmdlet 用法的 cmdlet 即為 get help cmdlet 名稱(chēng)的動(dòng)詞部分大 致有 get set add remove 等等 Windows PowerShell 的操作與 DOS 相同 輸入的 字母都不分大小寫(xiě) get help 是頗為重要的 cmdlet 可以在線查詢(xún)所有的 Windows PowerShell 指令和說(shuō) 明文件 例如 get help 列出所有的主題 包括指令和概念 get help more 列出所有的主題 包括指令和概念 而且顯示滿(mǎn)整個(gè)窗口就暫停 get help about 列出所有的概念主題 例如萬(wàn)元字符 foreach 循環(huán) get help get 列出所有 get 開(kāi)頭的主題 get help 列出指定的指令或主題的說(shuō)明 例如 get help dir 可以查詢(xún) dir 指令的用法 而 get help about wildcard 可以查詢(xún) 萬(wàn)用字符 這項(xiàng)主題的用 法 此外 也可以用 help 取代 get help 最大的好處是 help 顯示滿(mǎn)整個(gè)窗口 預(yù)設(shè)就會(huì)自 動(dòng)暫停 一開(kāi)始曾經(jīng)使用了 dir 和 ls 雖然這并不是 cmdlet 但的確可用于 Windows PowerShell 原來(lái)這類(lèi)的指令稱(chēng)為 alias 化名 類(lèi)似 cmdlet 的快捷方式 例如 dir 和 ls 實(shí)際上都是 get ChildItem 的 alias get ChildItem 才是 cmdlet 而 get ChildItem 的 功能 是列出磁盤(pán)驅(qū)動(dòng)器指定位置的子項(xiàng)目 Windows PowerShell 的指令包含了許多內(nèi)建的 alias 這些 alias 都是我們?cè)臼煜さ?DOS 或 shell 指令 除了上述的 dir 和 ls 例如原本 DOS 指令的 rm rmdir rd cls copy 等 以及 BASH 的 cat sleep clear cp 等 都是 Windows PowerShell 的 alias 也就是說(shuō) 可以直接使用這些 alias 若要列出所有的 alias 可以用 get alias 指令 除了使用內(nèi)建的 alias Windows PowerShell 也允許使用者 以 set alias 建立自己的 alias 除了 cmdlet 和 alias Windows PowerShell 的指令還有 Application 和 Function 兩種類(lèi)型 前者指的是獨(dú)立的程序文件 在 DOS 時(shí)代稱(chēng)為外部指令 后者是有名稱(chēng)的程序代 碼區(qū)塊 也就是函式 不論 Application 或 Function 都可以當(dāng)作 Windows PowerShell 指 令來(lái)用 也可以用在腳本程序里 利用 get command 可以列出所有的指令 Windows PowerShell 的管線功能的管線功能 DOS 或 UNIX shell 都能利用 管線符號(hào) pipeline symbol 將指令的執(zhí)行結(jié)果移 轉(zhuǎn)到另一個(gè)指令 讓另一個(gè)指令處理前一個(gè)指令轉(zhuǎn)來(lái)的數(shù)據(jù) Windows PowerShell 的管線符 號(hào)也是 例如之前用過(guò)的 get help more 就是將 get help 的結(jié)果轉(zhuǎn)給 more 而 more 會(huì)讓結(jié)果顯示滿(mǎn)整個(gè)窗口就暫停 管線是各種 shell 環(huán)境的 黏合 最佳例證 例如管線就黏合了 Windows PowerShell 的 各個(gè)指令 進(jìn)而讓各個(gè)指令完成一件工作 再舉幾個(gè)管線的例子 首先是 ipconfig findstr Address 被管線黏合的 ipconfig 和 findstr 都是 Win32 既有的外部指令 前者會(huì)顯示 設(shè)定計(jì)算 機(jī)的 IP 地址 后者則能以各種方式找出特定字符串 以上的敘述是將 ipconfig 的執(zhí)行結(jié)果轉(zhuǎn) 給 findstr 并讓 findstr 找出執(zhí)行結(jié)果的 Address 字符串 圖 2 ipconfig findstr Address 執(zhí)行結(jié)果 再舉兩個(gè)例子 以下的敘述會(huì)列出已停止的系統(tǒng)服務(wù) 但是由 get service 和 where object 相互協(xié)力完成 前者列出所有的系統(tǒng)服務(wù) 后者過(guò)濾出狀態(tài)為 Stopped 的系統(tǒng)服務(wù) get service where object Status eq Stopped 但以上敘述的結(jié)果會(huì)以系統(tǒng)服務(wù)的名稱(chēng)作為排列方式 若想以系統(tǒng)服務(wù)的 顯示名稱(chēng) 依序 排列 可以再加上 sort object 并也以管線黏合 get service where object Status eq Stopped sort object property DisplayName 圖 3 三重管線范例的執(zhí)行結(jié)果 新的腳本語(yǔ)言新的腳本語(yǔ)言 微軟為 Windows PowerShell 創(chuàng)造了新的腳本語(yǔ)言 但若你熟悉任何一種腳本語(yǔ)言 你也 能很快熟悉 Windows PowerShell 的腳本語(yǔ)言 基本上 只要將 Windows PowerShell 的 指令放進(jìn)擴(kuò)展名為 ps1 的文字文件 這個(gè)文件就是 Windows PowerShell 的腳本程序了 因 此在熟悉了 Windows PowerShell 的命令操作之后 只要再熟悉 Windows PowerShell 腳 本語(yǔ)言的變量 數(shù)組 循環(huán)控制 條件控制 大致上就語(yǔ)言的部分就差不多 但若要以腳本程序 管理 Windows 系統(tǒng) 除了要熟悉腳本語(yǔ)言 當(dāng)然也必須熟悉 Windows PowerShell 指令和 WMI 畢竟腳本語(yǔ)言的目的只是黏合這些現(xiàn)成的軟件組件 執(zhí)行腳本程序還有幾點(diǎn)注意事項(xiàng) 首先要確定腳本程序所在的位置是在執(zhí)行路徑里 再者 由于 Windows PowerShell 顧慮到安全性 預(yù)設(shè)是禁止計(jì)算機(jī)系統(tǒng)執(zhí)行任何腳本程序 如果要 解禁 必須利用 Set ExecutionPolicy 指令 這個(gè)指令有三個(gè)參數(shù) set executionpolicy allsigned 允許執(zhí)行具有信任簽章的腳本程序 set executionpolicy remotesigned 僅允許執(zhí)行從遠(yuǎn)程下載且具有信任簽章的腳本程序 set executionpolicy unrestricted 這是最寬松的條件 允許執(zhí)行任何腳本程序 不管有 沒(méi)有信任簽章 但自己編寫(xiě)的腳本程序通常都沒(méi)有信任簽章 善用腳本語(yǔ)言善用腳本語(yǔ)言 從近十年的程序語(yǔ)言發(fā)展趨勢(shì) 能明顯發(fā)現(xiàn)腳本語(yǔ)言的發(fā)展比系統(tǒng)程序語(yǔ)言更多樣 更活絡(luò) 開(kāi)發(fā)者的接受程度也高 當(dāng)然 這兩種類(lèi)型的程序語(yǔ)言 各有適用之處 沒(méi)有誰(shuí)取代誰(shuí)的問(wèn)題 而是如何選擇適當(dāng)?shù)姆椒▉?lái)完成工作 John K Ousterhout Tcl Tk 的創(chuàng)造者 曾在 Scripting Higher Level Programming for the 21st Century 一文提出他的看法 他認(rèn)為 腳本語(yǔ)言的主要目的 是在 黏合 g

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論