內容簡介
本書通過大量實例帶領系統管理員將成千上萬的日常任務自動化,構建自定義工具,充分利用神通廣大的PowerShell。全書分為三大部分。第一部分概述PowerShell的基本功能和用法,以及一些基本的編程概念,如變數、對象、函式、模組等。第二部分詳述日常任務的自動化,內容包括如何解析結構化數據,以及如何構建伺服器管理工具。第三部分介紹如何構建模組,內容涉及優秀的模組設計策略,以及將測試伺服器環境自動化,預置Hyper-V虛擬機,安裝作業系統,部署和配置SQL伺服器等。
圖書目錄
第 一部分 基礎知識
第 1 章 上手體驗 2
1.1 打開PowerShell控制台 2
1.2 使用DOS命令 3
1.3 探索PowerShell命令 4
1.4 獲取幫助 6
1.4.1 顯示文檔 6
1.4.2 學習一般主題 7
1.5 更新文檔 8
1.6 小結 9
第 2 章 PowerShell基本概念 10
2.1 變數 10
2.1.1 顯示及修改變數 10
2.1.2 用戶定義的變數 11
2.1.3 自動變數 13
2.2 數據類型 16
2.2.1 布爾值 16
2.2.2 整數和浮點數 16
2.2.3 字元串 18
2.3 對象 20
2.3.1 查看屬性 20
2.3.2 使用Get-Member cmdlet 21
2.3.3 調用方法 22
2.4 數據結構 23
2.4.1 數組 23
2.4.2 ArrayList 26
2.4.3 哈希表 27
2.5 自定義對象 30
2.6 小結 31
第 3 章 組合命令 32
3.1 啟動一個Windows服務 32
3.2 使用管道 33
3.2.1 通過管道在命令間傳遞對象 33
3.2.2 通過管道在命令間傳遞數組 33
3.2.3 參數綁定 34
3.3 編寫腳本 36
3.3.1 設定執行策略 37
3.3.2 PowerShell腳本編程 38
3.4 小結 40
第 4 章 控制流 41
4.1 理解控制流 41
4.2 使用條件語句 42
4.2.1 用運算符構建表達式 42
4.2.2 if語句 43
4.2.3 else語句 44
4.2.4 elseif語句 44
4.2.5 switch語句 46
4.3 使用循環 47
4.3.1 foreach循環 47
4.3.2 for循環 50
4.3.3 while循環 51
4.3.4 do/while循環和do/until循環 51
4.4 小結 52
第 5 章 錯誤處理 53
5.1 了解異常和錯誤 53
5.2 處理非終止性錯誤 54
5.3 處理終止性錯誤 56
5.4 探索$Error自動變數 57
5.5 小結 58
第 6 章 編寫函式 59
6.1 函式與cmdlet 59
6.2 定義函式 60
6.3 為函式添加參數 61
6.3.1 創建簡單的參數 61
6.3.2 參數屬性:Mandatory 62
6.3.3 參數的默認值 63
6.3.4 為參數添加驗證屬性 63
6.4 接受管道輸入 65
6.4.1 再添加一個參數 65
6.4.2 讓函式支持管道 66
6.4.3 添加process塊 67
6.5 小結 67
第 7 章 探索模組 68
7.1 探索默認模組 68
7.1.1 查找會話中的模組 68
7.1.2 查找計算機中的模組 69
7.1.3 導入模組 71
7.2 PowerShell模組的構成 72
7.2.1 .psm1檔案 72
7.2.2 模組清單檔案 73
7.3 使用自定義模組 74
7.3.1 查找模組 74
7.3.2 安裝模組 75
7.3.3 卸載模組 76
7.4 自己創建模組 76
7.5 小結 77
第 8 章 遠程運行腳本 78
8.1 使用腳本塊 78
8.1.1 使用Invoke-Command在遠程系統中運行代碼 80
8.1.2 在遠程計算機中運行本地腳本 81
8.1.3 遠程使用本地變數 81
8.2 使用會話 83
8.2.1 新建會話 83
8.2.2 在會話中調用命令 84
8.2.3 打開互動式會話 85
8.2.4 斷開及重新連線會話 85
8.2.5 使用Remove-PSSession刪除會話 87
8.3 解讀PowerShell遠程處理身份驗證 88
8.3.1 雙躍點問題 88
8.3.2 使用CredSSP繞過雙躍點問題 89
8.4 小結 91
第 9 章 使用Pester進行測試 92
9.1 Pester簡介 92
9.2 Pester基礎知識 93
9.2.1 Pester檔案 93
9.2.2 describe塊 93
9.2.3 context塊 94
9.2.4 it塊 94
9.2.5 斷言 95
9.3 執行Pester測試 96
9.4 小結 96
第二部分 日常任務自動化
第 10 章 解析結構化數據 99
10.1 CSV檔案 99
10.1.1 讀取CSV檔案 99
10.1.2 創建CSV檔案 103
10.1.3 項目1:編寫計算機清點報告 104
10.2 Excel電子表格 107
10.2.1 創建Excel電子表格 108
10.2.2 讀取Excel電子表格 109
10.2.3 向Excel電子表格中添加行 110
10.2.4 項目2:創建Windows服務監控工具 111
10.3 JSON數據 112
10.3.1 讀取JSON 113
10.3.2 創建JSON字元串 114
10.3.3 項目3:查詢並解析REST API 115
10.4 小結 118
第 11 章 AD任務自動化 119
11.1 環境要求 119
11.2 安裝ActiveDirectory PowerShell模組 120
11.3 查詢和篩選AD對象 120
11.3.1 篩選對象 121
11.3.2 返回單個對象 122
11.3.3 項目4:查找30天內未修改密碼的用戶賬戶 123
11.4 創建和修改AD對象 124
11.4.1 用戶和計算機 124
11.4.2 組 126
11.4.3 項目5:創建員工配置腳本 127
11.5 與其他數據源同步 130
11.5.1 項目6:編寫同步腳本 131
11.5.2 映射數據源屬性 131
11.5.3 定義返回相似屬性的函式 132
11.5.4 在AD中查找匹配對象 134
11.5.5 修改AD屬性 135
11.6 小結 136
第 12 章 Azure任務自動化 137
12.1 環境要求 137
12.2 Azure身份驗證 137
12.2.1 創建服務主體 138
12.2.2 使用Connect-AzAccount實現非互動式身份驗證 140
12.3 創建Azure虛擬機及所有依賴 140
12.3.1 創建資源組 141
12.3.2 創建網路棧 141
12.3.3 創建存儲賬戶 143
12.3.4 創建作業系統映像 143
12.3.5 收尾工作 145
12.3.6 自動創建虛擬機 146
12.4 部署Azure Web套用 146
12.5 部署Azure SQL資料庫 147
12.5.1 創建Azure SQL伺服器 148
12.5.2 創建Azure SQL資料庫 149
12.5.3 創建SQL伺服器防火牆規則 149
12.5.4 測試SQL資料庫 150
12.6 小結 151
第 13 章 Amazon Web Services任務自動化 152
13.1 環境要求 152
13.2 AWS身份驗證 152
13.2.1 使用根用戶驗證身份 153
13.2.2 創建IAM用戶和角色 154
13.2.3 驗證IAM用戶的身份 156
13.3 創建一個AWS EC2實例 156
13.3.1 虛擬私有雲 157
13.3.2 網際網路網關 158
13.3.3 路由 158
13.3.4 子網 159
13.3.5 為EC2實例分配一個AMI 160
13.3.6 錦上添花 161
13.4 部署Elastic Beanstalk套用 162
13.4.1 創建套用 163
13.4.2 部署包 165
13.5 在AWS中創建SQL Server資料庫 167
13.6 小結 170
第 14 章 創建伺服器清點腳本 171
14.1 環境要求 171
14.2 創建項目腳本 171
14.3 定義最終輸出 172
14.4 探索腳本輸入 172
14.5 查詢單台伺服器 173
14.6 提前規劃:合併不同類型的信息 174
14.7 查詢遠程檔案 176
14.8 查詢Windows Management Instrumentation 178
14.8.1 磁碟空閒空間 179
14.8.2 作業系統信息 180
14.8.3 記憶體 181
14.8.4 網路信息 183
14.9 Windows服務 186
14.10 清理和最佳化腳本 188
14.11 小結 190
第三部分 自製模組
第 15 章 配置虛擬環境 194
15.1 環境要求 194
15.2 創建模組 195
15.2.1 創建空模組 196
15.2.2 創建模組清單檔案 196
15.2.3 函式名稱使用固定的前綴 196
15.2.4 導入新模組 197
15.3 自動配置虛擬環境 197
15.3.1 虛擬交換機 198
15.3.2 虛擬機 199
15.3.3 虛擬硬碟 201
15.4 使用Pester測試新定義的函式 205
15.5 小結 205
第 16 章 安裝作業系統 206
16.1 環境要求 206
16.2 部署作業系統 207
16.2.1 創建VHDX檔案 207
16.2.2 依附虛擬機 209
16.3 自動部署作業系統 210
16.4 在磁碟中存儲加密憑據 211
16.5 PowerShell Direct功能 213
16.6 Pester測試 214
16.7 小結 215
第 17 章 部署AD 216
17.1 環境要求 216
17.2 創建AD林 216
17.3 構建林 217
17.3.1 將安全字元串保存到磁碟中 217
17.3.2 自動創建林 218
17.3.3 填充域 220
17.4 編寫並運行Pester測試 224
17.5 小結 226
第 18 章 創建並配置SQL伺服器 227
18.1 環境要求 227
18.2 創建虛擬機 227
18.3 安裝作業系統 228
18.4 添加Windows無人值守應答檔案 228
18.5 將SQL伺服器添加到域中 229
18.5.1 安裝SQL Server 231
18.5.2 將檔案複製到SQL伺服器中 231
18.5.3 運行SQL Server安裝程式 232
18.6 自動安裝SQL Server 233
18.7 運行Pester測試 236
18.8 小結 237
第 19 章 重構代碼 238
19.1 回頭看New-PowerLabSqlServer函式 238
19.2 使用參數集 242
19.3 小結 245
第 20 章 創建並配置IIS Web伺服器 246
20.1 環境要求 246
20.2 安裝和設定 246
20.3 從頭開始構建Web伺服器 248
20.4 WebAdministration模組 248
20.5 為網站配置SSL 251
20.6 小結 254
作者簡介
亞當·伯特倫(Adam Bertram),微軟MVP,擁有20餘年信息技術從業經驗,專注於系統管理、DevOps、自動化技術等領域,創辦了流行信息技術知識服務平台TechSnips,在Pluralsight和LinkedIn的線上學習平台上講授PowerShell課程,惠及數萬學習者。
【譯者介紹】
安道,專注於現代計算機技術書的翻譯,譯有《流暢的Python》《Flask Web開發》《Python網路編程攻略》《Ruby on Rails教程》等書。