书籍详情
PowerShell实战
作者:[美] 亚当·伯特伦(Adam Bertram) 著,安道 译
出版社:人民邮电出版社
出版时间:2022-05-01
ISBN:9787115590503
定价:¥89.80
购买这本书可以去
内容简介
本书通过大量实例带领系统管理员将成千上万的日常任务自动化,构建自定义工具,充分利用神通广大的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
第 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
猜您喜欢