出版時間:2008-1 出版社:清華大學(xué)出版社 作者:(美)庫馬拉爾(Kumaravel,A),(美)懷特(White,J) 等著;馮權(quán)友 譯 頁數(shù):333 譯者:馮權(quán)友
Tag標簽:無
前言
在各種發(fā)行版的操作系統(tǒng)中,Windows操作系統(tǒng)安裝使用得最廣泛、最受用戶歡迎。但對系統(tǒng)管理工作者而言,Windows一直有個小小的缺憾,就在于沒能提供像UnixShell程序那樣的強大腳本支持,而使得系統(tǒng)管理員的工作效率不高。PowerShell的問世徹底改變了這種局面。PoweiShell是構(gòu)建在Windows.NET平臺之上的,與.NET框架緊密耦合,因此它不僅是一種腳本編程語言,還為系統(tǒng)管理員提供了功能豐富的編程開發(fā)環(huán)境,可以輕易操作系統(tǒng)中的COM組件。目前,市場上已經(jīng)出現(xiàn)了介紹如何使用WindowsPowerShell來提高系統(tǒng)管理效率的書籍,但是從API層次介紹PowerShell編程的權(quán)威之作相當(dāng)稀少。本書比SDK文檔更加詳盡地介紹了cmdlet、提供者(proyider)、snap-in、宿主(host)程序等方面的開發(fā)技術(shù)。本書針對PowerShellsnap-in和宿主(host)程序開發(fā)人員而寫,它從WindowsPowerShell底層API開始介紹PowerShell程序設(shè)計。書中每個知識點都有配套的實例代碼,可以從本書的合作站點上自由下載,極易驗證。本人是計算機專業(yè)的在讀博士生,經(jīng)常在Linux下進行腳本編程。接觸WindowsPowerShell一年多來,漸漸被它強大的功能所吸引。在Windows操作系統(tǒng)中,PowerShell提供了能和Linux下的bash相媲美的強大功能。本書翻譯過程中也加入了個人的使用體會,希望能和讀者在PowerShell技術(shù)方面進行探討交流,共同進步。翻譯過程中錯誤之處在所難免,敬請廣大讀者提供反饋意見,讀者可以將意見發(fā)到wkservice@vip.163.com,我們會仔細查讀者發(fā)來的每一封郵件,以求進一步提高本書的質(zhì)量。
內(nèi)容概要
PowerShell是一種新的命令行外殼和腳本語言,用于進行系統(tǒng)管理和自動化。本書的作者由微軟專家團隊組成,從程序員的角度對Windows PowerShell編程技術(shù)進行介紹,不儀講解了PowerShell的核心模塊和基本概念,還提供了大量利用PowerShell強大功能構(gòu)建軟件包的實用開發(fā)技巧,是學(xué)習(xí)PowerShell編程的最佳參考。 在學(xué)習(xí)過程中,您不僅會發(fā)現(xiàn)PowerShell的SDK為應(yīng)用程序提供了完整的技術(shù)支持,還將體驗PowerShell的傘新技術(shù),它使所有.NET Framework對象都可以通過腳本訪問,這也使得PowerShell有望成為最受歡迎的工具和對Windows管理員來說最重要的語言。一旦升始編寫命令行類的上具程序,您就會驚奇地發(fā)現(xiàn)PowerShell可以使您將注意力集中在核心業(yè)務(wù)邏輯上。相信這款由微軟精心打造的軟件會為您的編程生活帶來額外的驚喜和收獲。 本書主要內(nèi)容 •創(chuàng)建PowerShell的Snap—in •開發(fā)自定義的Cmdlet •創(chuàng)建自定義的提供者 •調(diào)用PowerShell執(zhí)行引擎 •實現(xiàn)宿主用戶接口 •類型擴展及格式化 本書讀者對象 本書面向希望拓展Windows PowerShell功能,或者使用PowerShell技術(shù)來擴展自己的應(yīng)用程序的開發(fā)人員和程序員。
作者簡介
Arul Kumaravel是目前Windows:PowerShell開發(fā)小組的負責(zé)人。從早期開始,他就參與了這個項目并領(lǐng)導(dǎo)該小組發(fā)布了第一版的Windows PowerShell產(chǎn)品?,F(xiàn)在,他正領(lǐng)導(dǎo)著下一個版本的PowerShell產(chǎn)品的開發(fā)。Arul從他年輕時學(xué)習(xí)BASIC編程開始,就著迷于計算機技術(shù)。他在Iowa大學(xué)和印度Madras工程學(xué)院都獲得了計算機科學(xué)方面的碩士學(xué)位。在微軟實習(xí)期間,他為IE3瀏覽器編寫了第一個JavaScfipt/VBScfipt調(diào)試器,同時微軟公司的氛圍也留給了他很好的印象,他決定為微軟效力而改變數(shù)以萬計人的生活。在微軟任職的11年里,他在各種各樣的小組工作過,發(fā)布了很多個版本的產(chǎn)品,包括IE瀏覽器、Windows操作系統(tǒng)、目錄管理服務(wù)器。最近,由于對科學(xué)技術(shù)的商業(yè)運作感興趣,Arul開始在Wharton商學(xué)院刻苦攻讀M.B.A。他的郵件地址是arulk@hotmail.com。
書籍目錄
第1章 PowerShell簡介 1.1 Windows PowerShell設(shè)計原則 1.1.1 保留用戶已有的投資 1.1.2 提供一個功能強大、面向?qū)ο蟮耐鈿こ绦? 1.1.3 擴展性是第一位的 1.1.4 剔除開發(fā)過程中的障礙 1.2 Windows PowerShell快速入門 1.3 Windows PowerShell的高層體系結(jié)構(gòu) 1.3.1 宿主程序 1.3.2 Windows PowerShell引擎 1.3.3 Windows PowerShell snap-in 1.4 小結(jié)第2章 擴展Windows PowerShell 2.1 PowerShell snap-in分類 2.2 編寫標準的PowerShellsnap-in 2.2.1 編寫PowerShell snap-in 2.2.2 注冊PowerShell snap-in 2.2.3 查看可用的PowerShellsnap-in列表 2.2.4 將PowerShell snap.in動態(tài)裝載到外殼程序中 2.2.5 從外殼程序中動態(tài)刪除snap-in 2.2.6 取消注冊snap-in 2.2.7 注冊沒有實現(xiàn)類的PSSnapin snap-in 2.2.8 保存snap-in配置文件 2.2.9 用保存的snap-in配置文件啟動PowerShell 2.2.10 使用配置文件(profile)保存snap-in配置 2.3 創(chuàng)建自定義的PowerShell snap-in 2.3.1 編寫自定義的snap-in 2.3.2 使用自定義的snap-in 2.4 小結(jié)第3章 理解PowerShell擴展類型系統(tǒng) 3.1 PSObject 3.2 構(gòu)造PSObject對象 3.2.1 PSObject(object) 3.2.2 PSObjecto 3.2.3 PSObject.AsPSObject(someobject) 3.3 ImmediateBaseObject屬性和BaseObject屬性 3.4 成員 3.4.1 PSMemberlnfoCollection 3.4.2 ReadOnlyPSMemberInfoCollection 3.4.3 基類成員、適配器成員和擴展型成員 3.5 成員分類 3.5.1 屬性 3.5.2 方法 3.5.3 集合 3.6 聊eNames 3.7 查找算法 3.8 距離算法 3.9 PSObiect的固有成員和MemberSets 3.10 錯誤和異常 3.10.1 運行時錯誤 3.10.2 初始化錯誤 3.11 類型轉(zhuǎn)換 3.11.1 PowerShell語言中的標準類型轉(zhuǎn)換 3.11.2 自定義型轉(zhuǎn)換 3.12 TOString方法 3.13 類型配置(聊eData) 3.13.1 常用成員 3.13.2 腳本訪問 3.14 小結(jié)第4章 開發(fā)cmdlet 4.1 基本概念 4.1.1 命令行解析 4.1.2 命令發(fā)現(xiàn) 4.1.3 參數(shù)綁定 4.1.4 命令調(diào)用 4.2 使用參數(shù) 4.2.1 強制參數(shù) 4.2.2 位置參數(shù) 4.2.3 參數(shù)集合 4.2.4 參數(shù)值驗證 4.2.5 參數(shù)轉(zhuǎn)換 4.3 處理管道輸入 4.4 生成管道輸出 4.5 錯誤報告 4.5.1 ErrorRecord類 4.5.2 ErrorDetails類 4.5.3 非終結(jié)型錯誤和致命錯誤 4.6 支持ShouldProcess 4.6.1 影響確認等級 4.6.2 ShouldContinue() 4.7 使用PowerSheU系統(tǒng)路徑 4.8 編寫cmdlet幫助文檔 4.9 cmdlet開發(fā)最佳實踐 4.9.1 命名約定 4.9.2 與宿主交互 4.10 小結(jié)第5章 提供程序 5.1 實現(xiàn)提供程序類的原因 5.2 基本概念 5.2.1 路徑 5.2.2 驅(qū)動器 5.2.3 錯誤處理 5.2.4 功能 5.3 Hello World提供程序 5.4 內(nèi)置提供程序 5.4.1 別名提供程序 5.4.2 環(huán)境提供程序 5.4.3 文件系統(tǒng)提供程序 5.4.4 函數(shù)提供程序 5.4.5 注冊表提供程序 5.4.6 變量提供程序 5.4.7 證書提供程序 5.5 提供程序基類 5.5.1 CmdletProvier類 5.5.2 DriveCmdletProvider類 5.5.3 ItemCmdletProvider類 5.5.4 ContainerCmdletPmvider類 5.5.5 NavigationCmdletProvider類 5.6 可選的提供程序接口 5.6.1 IContentCmdletProvider接口 5.6.2 IPropertyCmdletProvider接口 5.6.3 lDynamicPropertyCmdletPmvic接口 5.6.4 ISecurityDescriptorCmdletProvi接口 5.7 CmdletProvider基類 5.7.1 CmdletProvider的方法和屬性 5.7.2 DriveCmdletProvider 5.7.3 ItemCmdletProvider 5.7.4 ContainerE:mdletProvider 5.7.5 NavigationCmdletProvider 5.8 設(shè)計準則與提示 5.9 小結(jié)第6章 在應(yīng)用程序中集成PowerShe引擎 6.1 運行空間和管道 6.2 入門 6.3 執(zhí)行命令行 6.3.1 使用Runspaceinvoke 6.3.2 使用Runspace和Pipeline 6.4 使用管道的輸出 6.4.1 Invoke()返回值 6.4.2 使用管道返回的PSObject對象 6.4.3 處理終結(jié)型錯誤 6.5 同步管道中的輸入、輸出和錯誤 6.5.1 將輸入對象傳遞給管道 6.5.2 同步執(zhí)行時的輸出管道 6.5.3 從錯誤管道獲取非終結(jié)型錯誤 6.5.4 ErrorRecord類型 6.6 操作管道的其他技巧 6.6.1 嵌套式管道 6.6.2 管道重用 6.6.3 在運行空間之間復(fù)制管道 6.7 配置運行空間 6.7.1 創(chuàng)建自定義配置的運行空間 6.7.2 添加和刪除snap.in 6.7.3 通過控制臺文件創(chuàng)建RunspaceConfiguration 6.7.4 通過程序集創(chuàng)建RunspaceConfiguration對象 6.7.5 使用SessionStateProxy設(shè)置和獲取變量 6.8 異步執(zhí)行管道 6.8.1 調(diào)用InvokeAsyc0 6.8.2 關(guān)閉輸入管道 6.8.3 從異步管道讀取輸出和錯誤 6.8.4 監(jiān)視管道的StateChanged事件 6.8.5 由PipelineStatelnfo.Reason讀取終結(jié)型錯誤 6.8.6 停止正在執(zhí)行的管道 6.9 異步運行空間操作 6.9.1 OpenAsync0方法 6.9.2 處理運行空間的StateChanged事件 6.10 編程創(chuàng)建管道對象 6.10.1 創(chuàng)建空管道對象 6.10.2 創(chuàng)建命令對象 6.10.3 合并命令結(jié)果 6.10.4 添加命令參數(shù) 6.10.5 向管道添加命令 6.11 使用cmdlet作為GUI程序的API層 6.11.1 高層架構(gòu) 6.11.2 cmdlet與GUI成功集成的關(guān)鍵技術(shù) 6.11.3 提供自定義的宿主 6.12 小結(jié)第7章 宿主 7.1 宿主與Windows PowerShell引擎之間的交互 7.2 cmdlet和宿主的交互 7.3 PSHost類 7.3.1 Instanceld 7.3.2 Name 7.3.3 Version 7.3.4 CurrentCulture 7.3.5 CurrentⅥCulture 7.3.6 PrivateData 7.3.7 EnterNestedPrompt 7.3.8 ExitNestedPrompt 7.3.9 應(yīng)用程序通知方法 7.3.10 SetShouldExit 7.4 PSHostUserInterface類 7.4.1 WriteDebugLine 7.4.2 WriteVerboseLine 7.4.3 WriteWamingLine 7.4.4 WriteProgress 7.4.5 WriteErrorLine 7.4.6 Write方法 7.4.7 Prompt方法 7.4.8 PromptForCredential 7.4.9 Read方法 7.5 PSHostRawUserInterface類 7.6 小結(jié)第8章 格式與輸出 8.1 四種視圖類型 8.1.1 Table視圖:format-table 8.1.2 List視圖:format-1ist 8.1.3 custom視圖:format-custom 8.1.4 Wide視圖:format-wide” 8.2 不使用*format-pslxml配置文件進行格式化 8.3 格式配置文件示例 8.4 加載格式文件 8.4.1 update.formatdata 8.4.2 snap—in 8.4.3 RunspaceConfigttration類的API接口 8.5 格式配置文件詳解 8.5.1 VieW 8.5.2 Name 8.5.3 ViewSelectedBy 8.5.4 GroupBy 8.6 TableControl 8.6.1 TableHeader 8.6.2 TableRowEntries 8.7 ListContr01 8.8 WideControl 8.9 CustomControl 8.10 其他配置條目 8.10.1 Wrap 8.10.2 AutoSize 8.11 使用場合 8.11.1 格式化字符串 8.11.2 反序列化對象的格式問題 8.11.3 類繼承問題 8.11.4 選擇集 8.11.5 顏色 8.12 小結(jié)附錄A cmdIet動詞命名準則附錄B CITIdIet參數(shù)命名準則附錄C 元數(shù)據(jù)附錄D 提供程序基類與重載/接口附錄E 用于提供程序交互的核心cmdIet
章節(jié)摘錄
第1章 PowerShell簡介Windows PowerShell是.NET平臺之上基于對象的命令行外殼程序和腳本語言。PowerShell為Windows平臺上的IT事務(wù)管理工作提供了更高級的控制和自動化支持,更有利于提高IT專業(yè)人士和開發(fā)人員的工作效率。市場上向IT專業(yè)人士介紹Windows PowerShell的書已經(jīng)屢見不鮮,但從cmdlet、提供程序(Provider)類和宿主(Host)類開發(fā)方面來介紹PowerShell開發(fā)技術(shù)的書卻寥寥無幾。本書從使用Windows PowerShell軟件包的過程入手,向讀者介紹其中的基本概念、常用組件以及開發(fā)技術(shù),試圖彌補前面提到的圖書市場空白。對于那些意圖擴展Windows PowerShell的功能或者使用PowerShell擴展自己程序功能的開發(fā)人員來說,本書是最佳的選擇。一般來說,在書寫命令行工具時,程序員需要書寫代碼來完成參數(shù)解析、賦值綁定工作。此外,程序員還要書寫代碼,用來格式化命令輸出信息。Windows PowerShell為程序員提供了一個自帶解釋器的運行時引擎,簡化了參數(shù)解析、賦值綁定等繁瑣的工作。當(dāng)輸出對象需要顯示時,PowerShell也為程序開發(fā)人員提供了可定制的格式化功能。使用Windows PowerShell完成那些開發(fā)命令行工具時的常規(guī)事務(wù),開發(fā)人員可以集中精力關(guān)注程序的業(yè)務(wù)邏輯問題,從而擺脫那些瑣碎的小問題。1.1 Windows PowerShell設(shè)計原則多年以來,廣大用戶對微軟Windows操作系統(tǒng)上的系統(tǒng)管理工作提了許多意見,Windows Powershell就是對這些用戶反饋信息的響應(yīng)。最初,許多用戶常常詢問為什么像一些傳統(tǒng)Unix系統(tǒng)上的外殼程序沒有被授權(quán)并包含在Windows操作系統(tǒng)中。對于這個問題,我們認為,只有開發(fā)一種獨立于那些傳統(tǒng)外殼程序的全新外殼程序才能解決這個問題。這個想法進而分解為四條指導(dǎo)原則,這四個原則構(gòu)成了設(shè)計PowerShell的指導(dǎo)思想。1.1.1 保留用戶已有的投資一項新技術(shù)發(fā)布后,必須經(jīng)歷一定的時間才能被廣泛采用。此外,客戶很可能在原有技術(shù)上已經(jīng)投資了很多,要他們拋棄已有的投資是不現(xiàn)實的。因此,PowerShell在本質(zhì)上與現(xiàn)有的Windows管理技術(shù)完全兼容,保留了用戶已有的投資。事實上,在PowerShell環(huán)境中,操作系統(tǒng)原有的命令和腳本可以直接運行。PowerShell除了和.NET緊密結(jié)合外,它和COM、WMI和ADSI技術(shù)也幾乎是無縫集成的。PowerShell提供了一個統(tǒng)一的操作環(huán)境,用戶可以處理前面提到的各種對象,這是PowerShell的最大特色。在本章后面的PowerShell快速入門部分,您可以看到本設(shè)計原則和其他設(shè)計原則相關(guān)的代碼演示。1.1.2 提供一個功能強大、面向?qū)ο蟮耐鈿こ绦駽MD.exe和其他的外殼程序都是基于文本的,也就是說在這些外殼程序中,命令接收文本輸入,產(chǎn)生文本輸出。在內(nèi)部處理時,這些命令把文本轉(zhuǎn)化為其他對象,但仍以文本方式進行輸出。在傳統(tǒng)外殼程序中,當(dāng)許多簡單的命令通過管道連接起來時,命令之間需要進行許多的文本處理工作才能產(chǎn)生需要的輸出。這方面的工具比如SED、AWK和Perl,由于它們出色的文本處理能力,很受命令行腳本程序員的青睞。
編輯推薦
《Windows PowerShell高級編程》由清華大學(xué)出版社出版。
圖書封面
圖書標簽Tags
無
評論、評分、閱讀與下載
Windows PowerShell高級編程 PDF格式下載