Windows PowerShell 實戰指南, 3/e
內容描述
PowerShell已經是一門開源、跨平臺的腳本語言與管理Shell。在DevOps流行的今天,PowerShell無疑是最好的實現語言之一。本書幾乎涵蓋了PowerShell所涉及技術的方方面面,提供了大量實戰案例,同時還包含了PowerShell v5最新功能的內容。只需要一個月、每天一小時,讀者就能夠輕松掌握PowerShell的實戰技能。本書作者是PowerShell界泰鬥Don Jones與Jeffery Hicks。他們都是多年的PowerShell MVP,並以簡潔、易入門的培訓與寫作風格而著稱。
目錄大綱
第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
作者介紹
作者:[美]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新動態。