编辑推荐
PowerShell既是一门脚本语言,也是一种管理Shell,通过PowerShell几乎可以管理Windows的方方面面。它可以交互式接受和执行命令,也可以通过编写脚本管理诸如Exchange、IIS和SharePoint等Windows服务器,还可以管理诸如Azure与Office 365等在线服务。《Windows PowerShell实战指南(第3版)》是为繁忙的IT专业人士所设计的具有创新性的教程。只需要每天一个小时——持续一个月,就能够快速将Windows任务自动化到一个新的高度。第3版图书适合Windows 7、Windows 2008 R2以及更新版本的操作系统环境,主要讲解了PowerShell v3以及更新版本的PowerShell功能,甚至包含诸如PowerShellGet等v5版本的功能。内容特色·从头开始学习PowerShell,无需任何经验!·涵盖运行于Windows7、Windows Server 2008 R2以及更新版本操作系统的PowerShell v3以及更新版本PowerShell的功能。·每章只需花费一个小时或更少。如果读者曾经有Windows管理方面的经验,对学习本书会有一定帮助,但本书并不要求读者有编程经验。相关资源下载,请访问:https://www.manning.com/books/learn-windows-powershell-in-a-month-of-lunches-third-edition
内容简介
PowerShell已经是一门开源、跨平台的脚本语言与管理Shell。在DevOps流行的今天,PowerShell无疑是*好的实现语言之一。本书几乎涵盖了PowerShell所涉及技术的方方面面,提供了大量实战案例,同时还包含了PowerShell v5*功能的内容。只需要一个月、每天一小时,读者就能够轻松掌握PowerShell的实战技能。本书作者是PowerShell界泰斗Don Jones与Jeffery Hicks。他们都是多年的PowerShell MVP,并以简洁、易入门的培训与写作风格而著称。
作者简介
本书作者是PowerShell界的泰斗Don Jones与Jeffery Hicks,他们俩都是多年的PowerShell MVP,并以简洁、易入门的培训和写作风格而著称。Don在PowerShell.org撰写博客,而Jeff的博客则是jdhitsolutions.com/blog。 关于译者 宋?V剑,微软Data Platform MVP,数据库大会、TechED、Ignite特约讲师,精通SQL Server与MySQL,并擅长使用PowerShell与Python编写自动化运维工具。他目前就职于易车网,负责开源大数据平台基础架构的构建与自动化运维工作。同时,他还经常兼职帮助客户设计数据平台架构、私有云架构、数据库调优以及解决大型生产环境中的棘手问题。大家可以在他的个人技术博客http://www.cnblogs.com/careyson看到他的zui新动态。
目录
- 第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