Windows PowerShell 實戰指南, 3/e Windows PowerShell实战指南(第3版)

道·瓊斯 (Don Jones), 傑弗瑞·希克斯 (Jeffery Hicks)

買這商品的人也買了...

商品描述

PowerShell已經是一門開源、跨平臺的腳本語言與管理Shell。在DevOps流行的今天,PowerShell無疑是最好的實現語言之一。本書幾乎涵蓋了PowerShell所涉及技術的方方面面,提供了大量實戰案例,同時還包含了PowerShell v5最新功能的內容。只需要一個月、每天一小時,讀者就能夠輕松掌握PowerShell的實戰技能。本書作者是PowerShell界泰鬥Don Jones與Jeffery Hicks。他們都是多年的PowerShell MVP,並以簡潔、易入門的培訓與寫作風格而著稱。

作者簡介

作者:[美]Don Jones(道·瓊斯),Jeffery Hicks(杰弗瑞·希克斯)譯者:宋澐劍

本書作者是PowerShell界的泰斗Don Jones與Jeffery Hicks,他們倆都是多年的PowerShell MVP ,並以簡潔、易入門的培訓和寫作風格而著稱。Don在PowerShell.org撰寫博客,而Jeff的博客則是jdhitsolutions.com/blog。

關於譯者
宋澐劍,微軟Data Platform MVP,數據庫大會、TechED、Ignite特約講師,精通SQL Server與MySQL,並擅長使用PowerShell與Python編寫自動化運維工具。他目前就職於易車網,負責開源大數據平台基礎架構的構建與自動化運維工作。同時,他還經常兼職幫助客戶設計數據平台架構、私有云架構、數據庫調優以及解決大型生產環境中的棘手問題。大家可以在他的個人技術博客http://www.cnblogs.com/careyson看到他的zui新動態。

目錄大綱

第1章背景介紹1 
1.1為什麼要重視PowerShell 1 
1.2現在只剩下“PowerShell”,而不是“WindowsPowerShell” 3 
1.3本書適用讀者3 
1.4如何使用本書4 
1.5搭建自己的實驗環境5 
1.6安裝WindowsPowerShell 6 
1.7聯繫我們8 
1.8趕緊使用PowerShell吧8 

第2章初識PowerShell 9 
2.1選擇你的“武器” 9 
2.2重新認識代碼輸入14 
2.3常見誤區16 
2.4如何查看當前版本16 
2.5動手實驗17 

第3章使用幫助系統19 
3.1幫助系統:發現命令的方法19 
3.2可更新的幫助20 
3.3查看幫助22 
3.4使用幫助系統查找命令23 
3.5幫助詳解25 
3.6訪問“關於”主題31 
3.7訪問在線幫助32 
3.8動手實驗33 
3.9動手實驗答案34 

第4章運行命令35 
4.1無需腳本,僅僅是運行命令35 
4.2剖析一個命令36 
4.3Cmdlet命名慣例37
4.4別名:命令的暱稱38 
4.5使用快捷方式39 
4.6小小作弊一下:Show—Command 42 
4.7對擴展命令的支持43 
4.8處理錯誤46 
4.9常見誤區47 
4.10動手實驗48
 
第5章使用提供程序49 
5.1什麼是提供程序49 
5.2FileSystem的結構51 
5.3理解文件系統與其他數據存儲的類似之處53 
5.4使用文件系統54 
5.5使用通配符與字面路徑55 
5.6使用其他提供程序57 
5.7動手實驗60 
5.8進一步學習60 
5.9動手實驗答案60
 
第6章管道:連接命令62 
6.1一個命令與另外一個命令連接:為你減負62 
6.2輸出結果到CSV或XML文件62 
6.3管道傳輸到文件或打印機67 
6.4轉換成HTML 68 
6.5使用Cmdlets修改系統:終止進程和停止服務69 
6.6常見誤區70 
6.7動手實驗72 
6.8動手實驗答案73 

第7章擴展命令74 
7.1如何讓一個Shell完成所有事情74 
7.2關於產品的“管理Shell” 75 
7.3擴展:找到並添加插件76
7.4擴展:找到並添加模塊78 
7.5命令衝突和移除擴展80 
7.6在非Windows操作系統80 
7.7玩轉一個新的模塊81 
7.8配置腳本:在啟動Shell時預加載擴展83 
7.9從Internet獲取模塊84 
7.10常見誤區85 
7.11動手實驗85 
7.12動手實驗答案86 

第8章對象:數據的另一個名稱87 
8.1什麼是對象87 
8.2理解為什麼PowerShell使用對象88 
8.3探索對象:Get—Member 90 
8.4使用對象標籤,也就是所謂的“屬性” 91 
8.5對象行為,也就是所謂的“方法” 92 
8.6排序對象93 
8.7選擇所需的屬性93 
8.8在命令結束之前總是對象的形式94 
8.9常見誤區96 
8.10動手實驗97 
8.11動手實驗答案97 

第9章深入理解管道99 
9.1管道:更少的輸入,更強大的功能99 
9.2PowerShell如何傳輸數據給管道99 
9.3方案A:使用ByValue進行管道輸入100 
9.4方案B:使用ByPropertyName進行管道傳輸103 
9.5數據不對齊時:自定義屬性108 
9.6括號命令111
9.7提取屬性的值112 
9.8動手實驗117 
9.9進一步學習118 
9.10動手實驗答案119 

第10章格式化及如何正確使用120 
10.1格式化:讓輸出更加美觀120 
10.2默認格式120 
10.3格式化表格123 
10.4格式化列表125 
10.5格式化寬列表126 
10.6創建自定義列與列表條目126 
10.7輸出到文件、打印機或者主機上128 
10.8輸出到GridView中129 
10.9常見誤區130 
10.10動手實驗132 
10.11進一步學習133 
10.12動手實驗答案133 

第11章過濾和比較134 
11.1只獲取必要的內容134 
11.2左過濾135 
11.3使用比較操作符135 
11.4過濾對象的管道137 
11.5使用迭代命令行模式138 
11.6常見誤區140 
11.7動手實驗141 
11.8進一步學習142 
11.9動手實驗答案142 

第12章學以致用143 
12.1定義任務143 
12.2發現命令143 
12.3學習如何使用命令145
12.4自學的一些技巧146 
12.5動手實驗147 
12.6動手實驗答案147 

第13章遠程處理:一對一及一對多148 
13.1PowerShell遠程處理的原理148 
13.2WinRM概述150 
13.3一對一場景的Enter—PSSession和Exit—PSSession 153 
13.4一對多場景的Invoke—Command 155 
13.5遠程命令和本地命令之間的差異158 
13.6深入探討162 
13.7遠程處理的配置選項163 
13.8常見誤區163 
13.9動手實驗164 
13.10進一步學習165 
13.11動手實驗答案165
 
第14章Windows管理規範167 
14.1WMI概要167 
14.2關於WMI的壞消息169 
14.3探索WMI 170 
14.4選擇你的武器:WMI或CIM 173 
14.5使用Get—WmiObject 173 
14.6使用Get—CimInstance 177 
14.7WMI文檔178 
14.8常見誤區178 
14.9動手實驗179 
14.10進一步學習179 
14.11動手實驗答案180 

第15章多任務後台作業181
15.1利用PowerShell實現多任務同時處理181 
15.2同步VS異步181 
15.3創建本地作業182 
15.4WMI作業183 
15.5遠程處理作業184 
15.6獲取作業執行結果185 
15.7使用子作業188 
15.8管理作業的命令190 
15.9調度作業193 
15.10常見困惑點194 
15.11動手實驗195 
15.12動手實驗答案196 

第16章同時處理多個對象197 
16.1對於大量管理的自動化197 
16.2首選方法:“批處理”Cmdlet 198 
16.3CIM/WMI方式:調用方法199 
16.4後備計劃:枚舉對象203 
16.5常見誤區207 
16.6動手實驗210 
16.7動手實驗答案211 

第17章安全警報212 
17.1保證Shell安全212 
17.2WindowsPowerShell的安全目標213 
17.3執行策略和代碼簽名214 
17.4其他安全措施219 
17.5其他安全漏洞220 
17.6安全建議221 
17.7動手實驗222 

第18章變量:一個存放資料的地方223
18.1變量簡介223 
18.2存儲值到變量中223 
18.3使用變量:關於引號有趣的技巧226 
18.4在一個變量中存儲多個對象228 
18.5雙引號的其他技巧232 
18.6聲明變量類型234 
18.7與變量相關的命令236 
18.8針對變量的最佳實踐237 
18.9常見誤區237 
18.10動手實驗238 
18.11進一步學習238 
18.12動手實驗答案238 

第19章輸入和輸出239 
19.1提示並顯示信息239 
19.2Read—Host命令240 
19.3Write—Host命令242 
19.4Write—Output命令244 
19.5其他輸出方式246 
19.6動手實驗247 
19.7進一步學習247 
19.8動手實驗答案247 

第20章輕鬆實現遠程控制249 
20.1使得PowerShell遠程控制更加容易249 
20.2創建並使用可重用會話249 
20.3利用Enter—PSSession命令使用會話251 
20.4利用Invoke—Command命令使用會話253 
20.5隱式遠程控制:導入一個會話254 
20.6使用斷開會話255
20.7動手實驗257 
20.8進一步學習258 
20.9動手實驗答案258 

第21章你把這叫作腳本260 
21.1非編程,而更像是批處理文件260 
21.2使得命令可重複執行261 
21.3參數化命令262 
21.4創建一個帶參數的腳本263 
21.5為腳本添加文檔265 
21.6一個腳本,一個管道267 
21.7作用域初探269 
21.8動手實驗271 
21.9動手實驗答案271 

第22章優化可傳參腳本273 
22.1起點273 
22.2讓PowerShell去做最難的工作274 
22.3將參數定義為強制化參數275 
22.4添加參數別名277 
22.5驗證輸入的參數279 
22.6通過添加詳細輸出獲得易用性體驗280 
22.7動手實驗281 
22.8動手實驗答案282 

第23章高級遠程控制配置283 
23.1使用其他端點283 
23.2創建自定義端點284 
23.3啟用多跳遠程控制(multi—hopremoting) 288 
23.4深入遠程控制身份驗證289 
23.5動手實驗291 
23.6動手實驗答案291

第24章使用正則表達式解析文本文件292 
24.1正則表達式的目標292 
24.2正則表達式入門293 
24.3通過—Match使用正則表達式295 
24.4通過Select—String使用正則表達式295 
24.5動手實驗297 
24.6進一步學習297 
24.7動手實驗答案298 

第25章額外的提示,技巧以及技術299 
25.1Profile、提示以及顏色:自定義Shell界面299 
25.2運算符:—AS、—IS、—Replace、—Join、—Split、—IN 、—Contains 303 
25.3字符串處理306 
25.4日期處理308 
25.5處理WMI日期309 
25.6設置參數默認值310 
25.7學習腳本塊312 
25.8更多的提示、技巧及技術312 

第26章使用他人的腳本314 
26.1腳本314 
26.2逐行檢查319 
26.3動手實驗320 
26.4動手實驗答案322 

第27章學無止境324 
27.1進一步學習的思想324 
27.2既然已經閱讀了本書,那麼我要從哪裡開始呢325 
27.3你會喜歡的其他資源326 

第28章PowerShell備忘清單327
28.1標點符號327 
28.2幫助文檔330 
28.3運算符331 
28.4自定義屬性與自定義列的語法331 
28.5管道參數輸入332 
28.6何時使用$_ 333 
附錄複習實驗335