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

下載本文檔

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

文檔簡介

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

溫馨提示

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

評論

0/150

提交評論