PowerShell 實戰 Powershell for Sysadmins: A Hands-On Guide to Automating Your Workflow

[美]亞當·伯特倫(Adam Bertram)

  • PowerShell 實戰-preview-1
  • PowerShell 實戰-preview-2
PowerShell 實戰-preview-1

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

商品描述

本書通過大量實例帶領系統管理員將眾多的日常任務自動化,構建自定義工具,充分利用神通廣大的PowerShell。全書分為三大部分。第一部分概述PowerShell的基本功能和用法,以及一些基本的編程概念,如變量、對象、函數、模塊等。第二部分詳述日常任務的自動化,內容包括如何解析結構化數據,以及如何構建服務器管理工具。第三部分介紹如何構建模塊,內容涉及優秀模塊的設計策略,以及將測試服務器環境自動化,預置Hyper-V虛擬機,安裝操作系統,部署和配置SQL服務器等。

作者簡介

亚当·伯特伦(Adam Bertram),微软MVP,拥有20余年信息技术从业经验,专注于系统管理、DevOps、自动化技术等领域,创办了流行信息技术知识服务平台TechSnips,在Pluralsight和LinkedIn的在线学习平台上讲授PowerShell课程,惠及数万学习者。

 

【译者介绍】

 

安道,专注于现代计算机技术书的翻译,译有《流畅的Python》《Flask Web开发》《Python网络编程攻略》《Ruby on Rails教程》等书。

目錄大綱

第 一部分 基礎知識

第 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