第1章背景介绍1
1.1为什么要重视PowerShell1
1.2现在只剩下“PowerShell”,而不是“WindowsPowerShell”3
1.3本书适用读者3
1.4如何使用本书4
1.5搭建自己的实验环境5
1.6安装WindowsPowerShell6
1.7联系我们8
1.8赶紧使用PowerShell吧8
第2章初识PowerShell9
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-Command42
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转换成HTML68
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-Member90
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-PSSession153
13.4一对多场景的Invoke-Command155
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探索WMI170
14.4选择你的武器:WMI或CIM173
14.5使用Get-WmiObject173
14.6使用Get-CimInstance177
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首选方法:“批处理”Cmdlet198
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、-Contains303
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
· · · · · · (
收起)