序 1
前言 5
第一部分 教程 13
教程 Windows PowerShell使用指南 13
简介 13
一个交互式的shell 14
结构化命令 16
与对象深层次的集成 17
作为一流的系统管理员 18
可组合命令 18
防止误操作的技术 19
常用的发现命令 20
无处不在的脚本 21
特殊开发 21
技术的桥梁 22
通过提供程序导航命名空间 24
更多的内容 25
第二部分 基础知识 29
第1章 Windows PowerShell交互界面 29
1.0 绪论 29
1.1 运行程序、脚本和已有的工具 29
1.2 运行PowerShell命令 31
1.3 自定义shell、配置文件与提示符 32
1.4 查找实现指定任务的命令 35
1.5 获得命令帮助 36
1.6 编程:搜索帮助 38
1.7 在PowerShell之外调用PowerShell脚本 39
1.8 编程:保持批处理文件修改的环境变量 40
1.9 获取系统日期与时间 42
1.10 检查最后运行命令的状态 42
1.11 度量命令执行时间 44
1.12 定制shell来提升工作效率 45
1.13 编程:学习常用命令的别名 46
1.14 使用与管理控制台历史 48
1.15 将命令的输出保存到文件中 49
1.16 向文件的结尾处加入信息 51
1.17 记录你的会话全文 51
1.18 将某一项的属性显示成列表 52
1.19 将某一项的属性显示成表格 53
1.20 管理命令的错误输出 54
1.21 配置调试、校验和处理输出 56
1.22 通过附加单元扩展PowerShell 57
1.23 使用控制台文件加载保存snapin 58
第2章 管道 60
2.0 简介 60
2.1 过滤列表项或命令输出项 61
2.2 编程:简化多数Where-Object过滤 62
2.3 编程:交互式过滤对象 63
2.4 处理列表或命令输出的每一项 65
2.5 自动化数据密集型任务 67
第3章 变量与对象 72
3.0 简介 72
3.1 在变量中存储信息 72
3.2 访问环境变量 74
3.3 控制访问和变量的范围与其他项 76
3.4 使用.NET对象 78
3.5 创建一个.NET对象的实例 82
3.6 编程:创建对象的实例 84
3.7 快速输入较长的类名 85
3.8 使用COM对象 87
3.9 了解类型和对象 87
3.10 获得类和对象详细文档 89
3.11 向对象添加自定义的方法和属性 91
3.12 向类添加自定义的方法和属性 93
第4章 循环与流程控制 97
4.0 简介 97
4.1 通过比较和逻辑操作做出决定 97
4.2 使用条件语句控制脚本流程 99
4.3 使用switch管理条件语句 100
4.4 使用循环 101
4.5 添加暂停或延迟 103
第5章 字符串与非结构化文本 105
5.0 简介 105
5.1 创建字符串 105
5.2 创建一个多行或格式化的字符串 107
5.3 在字符串中放置特殊字符 108
5.4 向字符串中插入动态信息 109
5.5 禁止字符串包含动态信息 110
5.6 在字符串中插入格式化的信息 111
5.7 根据文本或模式在字符串中查找 113
5.8 替换字符串中的文本 115
5.9 字符串大、小写转换 116
5.10 去掉字符串中的空格 117
5.11 格式化日期的输出 118
5.12 转换文本流为对象 120
5.13 生成大的报告和文本流 124
第6章 计算和数学计算 127
6.0 简介 127
6.1 执行简单的算法 127
6.2 执行复杂的算法 129
6.3 度量一个列表的统计属性 131
6.4 使用二进制数 133
6.5 简化管理用的常量 136
6.6 在不同的进制间转换数字 137
第三部分 常见任务 143
第7章 简单文件 143
7.0 简介 143
7.1 获取文件的内容 143
7.2 搜索文件中的文本 145
7.3 分析和管理基于文本的日志 146
7.4 分析和管理二进制文件 149
7.5 创建临时文件 151
7.6 搜索和替换文件中的文本 152
第8章 结构化文件 156
8.0 简介 156
8.1 访问XML文件中的信息 156
8.2 对XML文件执行XPath查询 159
8.3 修改XML文件中的信息 160
8.4 轻松导入和导出结构化数据 162
8.5 将一个命令的输出存储到Csv文件 164
8.6 从CSV文件中导入结构化的数据 165
8.7 使用Excel管理命令输出 166
第9章 支持Internet的脚本 169
9.0 简介 169
9.1 从Internet下载一个文件 169
9.2 从Internet下载一个Web页面 170
9.3 编程:获得页面中的超级链接 173
9.4 编程:调用Web服务 175
9.5 将命令的输出生成一个Web页面 178
9.6 编程:发送电子邮件 179
9.7 编程:与Internet协议交互 180
第10章 代码复用 185
10.0 简介 185
10.1 编写一个脚本 185
10.2 编写一个函数 188
10.3 编写一个脚本块 189
10.4 从脚本、函数、脚本块返回数据 191
10.5 将常用的函数放到库文件中 193
10.6 脚本、函数或脚本块的访问参数 194
10.7 访问管道输入 196
10.8 用命令关键字(Cmdlet Keywords)编写面向管道的脚本 198
10.9 编写一个面向管道的函数 202
第11章 列表、数组和哈希表 204
11.0 简介 204
11.1 创建数组或项的列表 204
11.2 创建交错或多维数组 206
11.3 访问数组中的元素 207
11.4 访问数组的每个元素 208
11.5 对数组或列表中的项进行排序 209
11.6 确定数组是否包含某项 210
11.7 合并数组 210
11.8 从数组中查找匹配一个值的项 212
11.9 从数组中移出元素 212
11.10 从数组中查找大于或小于一个值的项 213
11.11 使用ArrayList类完成高级的数组任务 214
11.12 创建哈希表或关联数组 216
11.13 根据键或值对哈希表排序 217
第12章 用户交互 219
12.0 简介 219
12.1 读取用户输入一行 219
12.2 读取用户输入的按键 220
12.3 编程:向用户显示一个菜单 221
12.4 给用户显示.输出和消息 223
12.5 为长时间运行的任务提供进度更新 226
12.6 编写支持区域性的脚本 227
12.7 编程:采用交替的区域性设置调用脚本块 230
12.8 主机的用户界面的访问功能 231
12.9 编程:向你的脚本中添加一个图形用户界面 233
第13章 跟踪和错误管理 236
13.0 简介 236
13.1 查看由某一命令生成的错误 236
13.2 处理警告、错误和终止错误 238
13.3 输出警告、错误和终止错误 240
13.4 调试脚本 241
13.5 收集脚本或命令的详细的跟踪信息 244
13.6 编程:分析脚本的性能的配置文件 245
第14章 掌握环境 250
14.0 简介 250
14.1 查看和修改环境变量 250
14.2 关于你的命令调用的访问信息 252
14.3 编程:研究请求信息变量 254
14.4 找到脚本的名称 256
14.5 找到你的脚本的位置 257
14.6 查找常见的系统路径的位置 258
14.7 编程:搜索Windows开始菜单 261
14.8 获取当前位置 262
14.9 安全地生成程序文件路径 263
14.10 与PowerShell的全局环境进行交互 264
第15章 Windows PowerShell的扩展 266
15.0 简介 266
15.1 访问WMI数据 266
15.2 编程:确定可用到WMI筛选器的属性 268
15.3 编程:搜索WMI类 269
15.4 使用.NET来执行高级的WMI任务 272
15.5 将一个VBScript WMI脚本转换为PowerShell 274
15.6 使用COM脚本接口自动化程序 277
15.7 编程:查询SQL数据源 278
15.8 访问Windows性能计数器 280
15.9 编程;调用Windows系统API 281
15.10 编程:添加C#代码到PowerShell脚本中 284
15.11 访问.NET SDK库 287
15.12 创建你自己的PowerShell Cmdlet 289
15.13 添加PowerShell脚本到你自己的程序 293
第16章 安全和脚本签名 296
16.0 简介 296
16.1 通过执行策略启用脚本 297
16.2 PowerShell脚本或格式文件签名 299
16.3 编程:创建一个自签名的证书 301
16.4 管理企业中的PowerShell安全性 302
16.5 验证PowerShell脚本的数字签名 305
16.6 安全地处理敏感信息 306
16.7 安全地要求用户名和密码 308
16.8 编程:作为另一个用户启动一个进程 309
16.9 在磁盘上安全地存储凭据 311
16.10 访问用户和计算机证书 312
16.11 编程:搜索证书存储区 314
第四部分 管理员任务 319
第17章 文件和目录 319
17.0 简介 319
17.1 查找一个特定日期之前修改的所有文件 320
17.2 清除或移动文件 321
17.3 管理与改变文件属性 322
17.4 获取目录中的文件列表 323
17.5 使用匹配模式查找文件 324
17.6 管理包含特殊字符的文件 328
17.7 获取磁盘使用情况信息 329
17.8 确定当前的位置 330
17.9 监视文件内容变更 331
17.10 编程:获取一个文件的MD5或SHA1哈希值 332
17.11 建立目录 334
17.12 删除文件或目录 335
17.13 文件或目录重命名 335
17.14 移动文件或目录 337
17.15 获取文件或目录的访问控制列表 338
17.16 设置文件或目录的访问控制列表 339
17.17 将扩展的文件属性添加到文件 341
17.18 编程创建文件系统硬链接 343
17.19 编程创建ZIP文档 344
第18章 Windows注册表 347
18.0 简介 347
18.1 注册表导航 347
18.2 查看一个注册表项 348
18.3 修改或删除一个注册表键值 349
18.4 创建一个注册表键值 350
18.5 删除注册表项 351
18.6 将站点添加到IE浏览器的安全域中 352
18.7 修改IE浏览器设置 354
18.8 编程搜索Windows注册表 356
18.9 获取某个注册表项的访问控制列表 357
18.10 设置一个注册表项的访问控制列表 358
18.11 使用远程计算机的注册表 359
18.12 编程:从远程计算机获取注册表项 361
18.13 编程:获取远程注册表项的属性 362
18.14 编程:设置远程注册表项的属性 364
18.15 程序的注册表设置 365
第19章 数据比较 369
19.0 简介 369
19.1 比较两个命令的输出 369
19.2 确定两个文件之间的差异 370
19.3 验证文件集的完整性 371
第20章 事件日志 373
20.0 简介 373
20.1 列出所有事件日志 373
20.2 从事件日志中获取最新项 374
20.3 使用特定的文本查找事件日志项 375
20.4 检索一个特定的事件日志项 376
20.5 根据频率查找事件日志记录 378
20.6 备份事件日志 380
20.7 创建或删除事件日志 380
20.8 写入事件日志 381
20.9 访问远程计算机的事件日志 382
第21章 进程 384
21.0 简介 384
21.1 列出当前运行的进程 385
21.2 启动一个进程 386
21.3 停止一个进程 387
21.4 编程:调用远程计算机上的一个PowerShell表达式 389
第22章 系统服务 391
22.0 简介 391
22.1 列出所有运行的服务 391
22.2 管理一个正在运行的服务 393
22.3 访问在远程计算机上的服务 394
第23章 活动目录 396
23.0 简介 396
23.1 测试本地安装的活动目录脚本 396
23.2 创建组织单元 399
23.3 获取组织单元的属性 400
23.4 修改组织单元的属性 400
23.5 获取一个活动目录容器的子集 401
23.6 创建用户账户 401
23.7 编程:批量导入活动目录用户 402
23.8 搜索用户账户 404
23.9 获取并列出用户账户的属性 405
23.10 修改用户账户的属性 406
23.11 创建一个安全组或分布组 406
23.12 搜索一个安全组或分布组 408
23.13 获取一个组的属性 409
23.14 查找用户组的所有者 409
23.15 修改安全组或分布组的属性 410
23.16 将用户添加到安全组或分布组 410
23.17 从安全组或分布组中删除用户 411
23.18 列出用户的组成员身份 412
23.19 列出一组的所有成员 412
23.20 列出一个组织单元的所有用户 413
23.21 搜索计算机账户 414
23.22 获取并列出一台计算机账户的属性 415
第24章 企业级计算机管理 416
24.0 简介 416
24.1 编程:列出用户登录或注销的脚本 416
24.2 编程:列出计算机启动或关机脚本 418
24.3 启用或禁用Windows防火墙 419
24.4 打开或关闭Windows防火墙中的端口 420
24.5 编程:列出所有已安装的软件” 421
24.6 卸载应用程序 422
24.7 管理计算机上的计划任务 423
24.8 检索打印机信息 424
24.9 检索打印机队列统计信息 425
24.10 管理打印机和打印队列 427
24.11 确定是否安装了补丁程序 428
24.12 编程:汇总系统信息 430
24.13 续订动态主机配置协议租约 431
24.14 分配一个静态IP地址 433
24.15 列出计算机的所有IP地址 434
24.16 列出网络适配器的属性 435
第25章 管理Exchange2007通信服务器 437
25.0 简介 437
25.1 尝试使用Exchange管理shell程序 437
25.2 自动执行向导任务 438
25.3 管理Exchange用户 439
25.4 管理邮箱 441
25.5 管理分发组 442
25.6 管理传输规则 443
25.7 管理Outlook Web Access 444
第26章 管理操作管理器2007服务器 445
26.0 简介 445
26.1 体验命令shell程序 445
26.2 管理操作管理器代理 446
26.3 计划维护窗口 447
26.4 获取、安装和卸载管理包 448
26.5 启用或禁用规则 449
26.6 列出并启动任务 450
26.7 管理警报 450
第五部分 参考资源 455
附录A PowerShell语言和环境 455
附录B 正则表达式参考 502
附录C PowerShell自动变量 510
附录D 标准PowerShell动词 513
附录E 选定的.NET类和它们的使用 517
附录F WMI参考 525
附录G 选定的COM对象和它们的使用 533
附录H .NET字符串格式 536
附录I .NET日期格式 540