●第1章背景介紹1
1.1為什麼要重視PowerShell1
1.2本書適用讀者3
1.3如何使用本書3
1.4搭建自己的實驗環境4
1.5安裝Windows PowerShell5
1.6在線資源7
1.7趕緊使用PowerShell吧7
第2章初識PowerShell8
2.1選擇你的“武器”8
2.2重新認識代碼輸入13
2.3常見誤區15
2.4如何查看當前版本15
2.5動手實驗16
2.6進一步學習16
第3章使用幫助繫統18
3.1幫助繫統:發現命令的方法18
3.2可更新的幫助19
3.3查看幫助21
3.4使用幫助找命令22
3.5詳解幫助24
3.6訪問“關於”主題30
3.7訪問在線幫助31
3.8動手實驗32
第4章運行命令33
4.1無需腳本,僅僅是運行命令33
4.2剖析一個命令34
4.3Cmdlet命名慣例35
4.4別名:命令的昵稱36
4.5使用快捷方式37
4.6小小作弊一下:Show-Command39
4.7對擴展命令的支持41
4.8處理錯誤43
4.9常見誤區44
4.10 動手實驗45
第5章使用提供程序46
5.1什麼是提供程序46
5.2FileSystem的結構49
5.3文件繫統——其他數據存儲的模板50
5.4使用文件繫統51
5.5使用通配符以及絕對路徑52
5.6使用其他提供程序54
5.7動手實驗57
5.8進一步學習57
第6章管道:連接命令58
6.1一個命令與另外一個命令連接:為你減負58
6.2輸出結果到CSV或XML文件58
6.3管道傳輸到文件或打印機63
6.4轉換成HTML64
6.5使用Cmdlets修改繫統:終止進程和停止服務65
6.6常見誤區66
6.7動手實驗68
第7章擴展命令69
7.1如何讓一個shell完成所有事情69
7.2關於產品的“管理shell”70
7.3擴展:找到並添加插件70
7.4擴展:找到並添加模塊72
7.5命令衝突和移除擴展75
7.6玩轉一個新的模塊75
7.7配置腳本:在啟動shell時預加載擴展77
7.8常見誤區79
7.9動手實驗79
第8章 對像:數據的另一個名稱80
8.1什麼是對像80
8.2為什麼PowerShell使用對像81
8.3探索對像:Get-Member83
8.4對像標簽,也就是所謂的“屬性”84
8.5對像行為,也就是所謂的“方法”85
8.6排序對像86
8.7選擇所需的屬性86
8.8在命令結束之前總是對像的形式87
8.9常見誤區89
8.10動手實驗89
第9章深入理解管道91
9.1管道:更少的輸入,更強大的功能91
9.2PowerShell如何傳輸數據給管道91
9.3方案A:使用ByValue進行管道輸入92
9.4方案B:使用ByPropertyName進行管道傳輸95
9.5數據不對齊時:自定義屬性99
9.6括號命令103
9.7提取屬性的值104
9.8動手實驗109
9.9進一步學習110
第10章格式化及如何正確使用111
10.1格式化:讓輸出更加美觀111
10.2默認格式111
10.3格式化表格115
10.4格式化列表116
10.5寬度的格式化117
10.6定制列和列表記錄118
10.7輸出到文件、打印機或者主機上120
10.8另外一個輸出:網格121
10.9常見誤區122
10.10動手實驗124
10.11進一步學習125
第11章過濾和對比126
11.1隻獲取必要的內容126
11.2左過濾127
11.3對比操作符127
11.4過濾對像的管道129
11.5迭代的命令行模式130
11.6常見誤區132
11.7動手實驗133
11.8進一步學習133
第12章學以致用134
12.1定義任務134
12.2發現命令134
12.3學習如何使用命令137
12.4自學的一些技巧141
12.5動手實驗142
第13章遠程處理:一對一及一對多143
13.1PowerShell遠程處理的原理143
13.2WinRM概述145
13.3一對一場景的Enter-PSSession和
Exit-PSSession148
13.4一對多場景的Invoke-Command150
13.5遠程命令和本地命令之間的差異153
13.6深入探討157
13.7遠程處理的配置選項157
13.8常見誤區158
13.9動手實驗159
13.10進一步學習159
第14章Windows管理規範160
14.1WMI概要160
14.2關於WMI的壞消息162
14.3探索WMI163
14.4選擇你的武器:WMI或CIM167
14.5使用Get-WmiObject167
14.6使用Get-CimInstance171
14.7WMI文檔172
14.8常見誤區172
14.9動手實驗173
14.10進一步學習173
第15章多任務後臺作業174
15.1利用PowerShell實現多任務同時處理174
15.2同步VS異步174
15.3創建本地作業175
15.4WMI作業176
15.5遠程處理作業177
15.6獲取作業執行結果178
15.7使用子作業181
15.8管理作業的命令183
15.9調度作業185
15.10常見困惑點187
15.11動手實驗188
第16章同時處理多個對像189
16.1對於大量管理的自動化189
16.2優選方法:“批處理”cmdlet190
16.3MI方式:調用WMI方法191
16.4後備計劃:枚舉對像195
16.5常見誤區199
16.6動手實驗202
第17章安全警報203
17.1保證Shell安全203
17.2Windows PowerShell的安全目標204
17.3執行策略和代碼簽名205
17.4其他安全措施211
17.5其他安全漏洞211
17.6安全建議212
17.7動手實驗213
第18章變量:一個存放資料的地方214
18.1變量簡介214
18.2存儲值到變量中214
18.3使用變量:有趣的引號217
18.4存儲多個對像在一個變量中219
18.5雙引號的其他技巧223
18.6聲明變量類型225
18.7與變量相關的命令227
18.8針對變量的很好實踐228
18.9常見誤區228
18.10動手實驗229
18.11進一步學習229
第19章輸入和輸出230
19.1提示並顯示信息230
19.2Read-Host命令231
19.3Write-Host命令234
19.4Write-Output命令235
19.5其他寫入的方式237
19.6動手實驗238
19.7進一步學習238
第20章輕松實現遠程控制239
20.1PoweShell遠程控制稍微容易一點239
20.2創建並使用可重用會話239
20.3利用Enter-PSSession命令使用會話241
20.4利用Invoke-Command命令使用會話243
20.5隱式遠程控制:導入一個會話244
20.6斷開會話245
20.7動手實驗247
20.8進一步學習248
第21章你把這叫作腳本249
21.1非編程,而更像是批處理文件249
21.2使得命令可重復執行250
21.3參數化命令251
21.4創建一個帶參數的腳本252
21.5為腳本添加文檔254
21.6一個腳本,一個管道256
21.7作用域初探259
21.8動手實驗261
第22章優化可傳參腳本262
22.1起點262
22.2讓PowerShell去做最難的工作263
22.3將參數定義為強制化參數264
22.4添加參數別名266
22.5驗證輸入的參數268
22.6通過添加詳細輸出獲得用戶友好體驗269
22.7動手實驗271
第23章高級遠程配置272
23.1使用其他端點272
23.2創建自定義端點273
23.3啟用多跳遠程(multi-hop remoting)277
23.4深入遠程身份驗證278
23.5動手實驗280
第24章使用正則表達式解析文本文件281
24.1正則表達式的目標281
24.2正則表達式入門282
24.3通過-Match使用正則表達式284
24.4通過Select-String使用正則表達式284
24.5動手實驗286
24.6進一步學習287
第25章額外的提示、技巧以及技術288
25.1Profile、提示以及顏色:自定義Shell界面288
25.2運算符:-AS,-IS,-Replace,-Join,-Split, -IN,-Contains292
25.3字符串處理295
25.4日期處理297
25.5處理WMI日期298
25.6設置參數默認值299
25.7學習腳本塊300
25.8更多的提示、技巧及技術301
第26章使用他人的腳本302
26.1腳本302
26.2逐行檢查307
26.3動手實驗308
第27章學無止境311
27.1進一步學習的思想311
27.2既然已經閱讀了本書,那麼我要從哪裡開始呢312
27.3你會喜歡的其他資源313
第28章PowerShell備忘清單314
28.1標點符號314
28.2幫助文檔317
28.3運算符318
28.4自定義屬性與列的語法318
28.5管道參數輸入319
28.6何時使用$_320
附錄復習實驗321
實驗回顧1:第1-6章321
實驗回顧2:第1-14章324
實驗回顧3:第1-19章327