Windows PowerShell实战指南 第3版

Windows PowerShell实战指南 第3版 pdf epub mobi txt 电子书 下载 2025

[美] Don,Jones(道·琼斯),Jeffery,Hicks(杰弗瑞·希克斯) 著,宋沄剑 译
图书标签:
  • PowerShell
  • Windows
  • 自动化
  • 脚本
  • 系统管理
  • IT运维
  • 第3版
  • 实战
  • 编程
  • 效率
  • 工具
想要找书就要到 静流书站
立刻按 ctrl+D收藏本页
你会得到大惊喜!!
出版社: 人民邮电出版社
ISBN:9787115470980
版次:1
商品编码:12245747
品牌:异步图书
包装:平装
开本:16开
出版时间:2017-12-01
用纸:胶版纸
页数:347
正文语种:中文

具体描述

编辑推荐

  PowerShell既是一门脚本语言,也是一种管理Shell,通过PowerShell几乎可以管理Windows的方方面面。它可以交互式接受和执行命令,也可以通过编写脚本管理诸如Exchange、IIS和SharePoint等Windows服务器,还可以管理诸如Azure与Office365等在线服务。
  《WindowsPowerShell实战指南(第3版)》是为繁忙的IT专业人士所设计的具有创新性的教程。只需要每天一个小时——持续一个月,就能够快速将Windows任务自动化到一个新的高度。第3版图书适合Windows7、Windows2008R2以及更新版本的操作系统环境,主要讲解了PowerShellv3以及更新版本的PowerShell功能,甚至包含诸如PowerShellGet等v5版本的功能。
  内容特色
  ·从头开始学习PowerShell,无需任何经验!
  ·涵盖运行于Windows7、WindowsServer2008R2以及更新版本操作系统的PowerShellv3以及更新版本PowerShell的功能。
  ·每章只需花费一个小时或更少。
  如果读者曾经有Windows管理方面的经验,对学习本书会有一定帮助,但本书并不要求读者有编程经验。
  相关资源下载,请访问:https://www.manning.com/books/learn-windows-powershell-in-a-month-of-lunches-third-edition

内容简介

  PowerShell已经是一门开源、跨平台的脚本语言与管理Shell。在DevOps流行的今天,PowerShell无疑是*好的实现语言之一。本书几乎涵盖了PowerShell所涉及技术的方方面面,提供了大量实战案例,同时还包含了PowerShellv5*新功能的内容。只需要一个月、每天一小时,读者就能够轻松掌握PowerShell的实战技能。本书作者是PowerShell界泰斗DonJones与JefferyHicks。他们都是多年的PowerShellMVP,并以简洁、易入门的培训与写作风格而著称。

作者简介

  本书作者是PowerShell界的泰斗DonJones与JefferyHicks,他们俩都是多年的PowerShellMVP,并以简洁、易入门的培训和写作风格而著称。Don在PowerShell.org撰写博客,而Jeff的博客则是jdhitsolutions.com/blog。
  关于译者
  宋沄剑,微软DataPlatformMVP,数据库大会、TechED、Ignite特约讲师,精通SQLServer与MySQL,并擅长使用PowerShell与Python编写自动化运维工具。他目前就职于易车网,负责开源大数据平台基础架构的构建与自动化运维工作。同时,他还经常兼职帮助客户设计数据平台架构、私有云架构、数据库调优以及解决大型生产环境中的棘手问题。大家可以在他的个人技术博客http://www.cnblogs.com/careyson看到他的****动态。

目录

第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

深入解析操作系统自动化管理:一套面向未来的命令行工具 本书并非《Windows PowerShell实战指南 第3版》的介绍,而是旨在揭示一整套强大而灵活的命令行自动化管理工具——PowerShell的深层潜力与实际应用。我们将跳脱出特定版本的束缚,聚焦于PowerShell的核心理念、设计哲学以及其在现代IT环境中的普遍价值。这是一次对理解操作系统如何被高效、可重复地管理的一次探索,一次对摆脱繁琐手动操作、拥抱自动化未来的系统性解读。 PowerShell:不仅仅是命令行的替代品 很多人可能将PowerShell简单地视为cmd.exe的升级版,一个可以执行更多命令的shell。然而,这种认知远远未能触及PowerShell的本质。PowerShell的核心是其强大的对象模型。不同于传统shell将一切视为文本流,PowerShell处理的是 .NET 对象。这意味着,当您执行一个命令时,您获得的不只是字符串,而是一个包含了丰富属性和方法的结构化对象。这种根本性的差异赋予了PowerShell无与伦比的强大能力。 举例来说,在传统的cmd.exe中,要获取正在运行的进程列表,您可能会使用 `tasklist` 命令,然后需要通过 `findstr` 等工具来过滤您想要的信息。整个过程充斥着字符串解析和正则表达式匹配,既费时又容易出错。而在PowerShell中,您可以使用 `Get-Process` cmdlet。它返回的不是一堆文本,而是一个个进程对象,每个对象都包含了进程ID、名称、CPU使用率、内存占用等详尽信息。您可以直接通过属性名来访问这些数据,例如 `$process.Id` 或 `$process.CPU`。更重要的是,您还可以对这些对象进行管道操作,将一个 cmdlet 的输出对象直接传递给下一个 cmdlet进行进一步的处理。这种对象管道的模式是PowerShell强大之处的基石,它使得复杂的操作能够被分解成一系列简单、清晰、可组合的步骤,大大提高了效率和可读性。 Cmdlet:PowerShell的构建模块 PowerShell的强大功能主要通过其一系列称为Cmdlet(Command-let)的命令来实现。Cmdlet的设计遵循着一套严格的命名规范,通常采用“动词-名词”的格式,例如 `Get-Process` (获取进程), `Set-Service` (设置服务), `New-Item` (创建项), `Remove-Item` (移除项)。这种一致的命名风格让学习和记忆Cmdlet变得更加容易,您只需理解常见动词(如 Get, Set, New, Remove, Move, Copy, Rename)和常见名词(如 Process, Service, Item, File, Folder, Registry, Event)的组合,就能推测出许多命令的功能。 Cmdlet的设计也充分考虑了可扩展性。微软提供了大量的内置Cmdlet,覆盖了Windows操作系统的方方面面,从文件系统、注册表、进程、服务,到网络配置、事件日志、用户账户等等。同时,第三方开发者和社区也为PowerShell贡献了海量的模块,这些模块可以轻松导入并使用,极大地扩展了PowerShell的能力范围,使其能够管理各种应用程序、数据库、云服务乃至第三方硬件设备。 脚本化与自动化:释放PowerShell的真正力量 PowerShell的真正价值体现在其脚本化能力上。当您需要重复执行一系列操作,或者希望自动化一些日常维护任务时,PowerShell脚本就显得尤为重要。您可以在PowerShell ISE(集成脚本环境)或者VS Code等编辑器中编写`.ps1`脚本文件。这些脚本可以包含变量、条件语句(if-else)、循环(for, foreach, while)、函数、错误处理等完整的编程结构。 想象一下,您需要定期重启一组服务器上的某个服务,并且记录下操作结果。在传统方式下,您可能需要手动登录每台服务器,打开服务管理器,找到服务,右键点击重启,然后再打开事件查看器检查日志。这个过程耗时且容易遗漏。使用PowerShell,您可以编写一个脚本,该脚本首先定义一个服务器列表,然后循环遍历列表中的每台服务器,使用 `Invoke-Command` cmdlet 在远程服务器上执行 `Restart-Service` 命令,并将操作结果(成功或失败)记录到日志文件中。整个过程可以完全自动化,并且能够精确地执行,大大节省了人力和时间。 更进一步,PowerShell还支持远程管理。您无需登录到每台机器,就可以通过网络执行命令和脚本。这得益于PowerShell Remoting(WinRM)。通过配置PowerShell Remoting,您可以轻松地管理大量远程计算机,将其视为一个统一的资源池。这对于大规模部署、配置变更、故障排除等场景来说,是不可或缺的能力。 PowerShell的生态系统与未来展望 PowerShell已经远远超越了Windows平台。在微软的推动下,PowerShell Core(现在的 PowerShell 7+)已经实现了跨平台支持,可以在Windows、macOS和Linux上运行。这意味着您可以使用同一套工具和脚本来管理不同操作系统的服务器和设备,这对于混合IT环境的管理人员来说,是一个巨大的福音。 PowerShell的生态系统也在不断发展壮大。Azure PowerShell、AWS Tools for PowerShell等模块让您可以直接在命令行中管理云资源。SQL Server PowerShell、Exchange PowerShell等模块则提供了对特定应用程序的深度管理能力。PowerShell Gallery更是汇聚了无数社区贡献的模块,几乎可以满足您管理任何IT资产的需求。 未来,随着自动化和DevOps理念的普及,PowerShell的重要性将只会与日俱增。它不仅仅是一个命令行工具,更是一种现代IT管理思维的体现。掌握PowerShell,意味着掌握了高效、可靠、可重复的操作系统管理之道,为应对日益复杂的IT挑战奠定了坚实的基础。 学习PowerShell的价值 学习PowerShell,您将获得: 效率的极大提升: 将重复性的手动任务自动化,节省宝贵的时间和精力。 管理的标准化与一致性: 通过脚本确保操作的一致性,减少人为错误。 深度的系统洞察: 通过对象模型,更深入地理解和控制操作系统。 跨平台管理能力: 使用同一套工具管理Windows, macOS, Linux等不同平台。 云资源管理的便捷: 直接通过命令行管理Azure, AWS等云服务。 更强的故障排除能力: 快速定位和解决系统问题。 面向未来的技能: 掌握IT自动化和DevOps领域的关键技能。 本书(此处指代的是关于PowerShell整体的介绍,而非某本特定书籍)将引领您踏上PowerShell的学习之旅,从基础概念到高级技巧,从单个命令到复杂脚本,帮助您解锁操作系统自动化的强大力量,让您在快速变化的IT环境中游刃有余,成为一名更高效、更有价值的IT专业人士。

用户评价

评分

说实话,我购买这本书时,是冲着它“第三版”这个名号去的,本以为会是那种修修补补的升级版,结果发现内容更新的力度远超我的预期。它显然紧跟了 Windows 生态系统的最新变化,特别是在与 Azure 和现代身份管理相关的 cmdlet 方面,提供了非常及时的补充和介绍。我记得我之前还在为如何用脚本管理 Azure AD 的用户权限而苦恼,市面上很多老旧的资料都过时了。这本书里关于连接和操作云端资源的章节,内容翔实且操作步骤非常精确,让我能够迅速上手。对比我之前收藏的几本旧版 PowerShell 书籍,这本书的差异性体现在对新特性的支持和对旧有冗余写法的优化建议上。它不仅告诉你旧方法还能用,更强调了推荐使用更现代、更高效的语法结构。这种前瞻性和与时俱进的态度,是评价一本技术书籍价值高低的关键要素,这本书在这方面做得非常出色,保证了它的时效性和实用价值。

评分

坦率地说,这本书的深度和信息密度非常惊人,读起来需要保持高度的专注力,它绝对不是那种可以放松地在咖啡馆里随便翻阅的书籍。我个人认为,这本书的受众定位是那些已经有一定 IT 基础,并且迫切需要通过脚本提升工作效率的系统管理员、DevOps 工程师或者高级技术用户。对于完全没有接触过脚本编程的“小白”来说,直接啃这本书可能会感到吃力,因为书中默认你已经了解了基础的编程概念和服务器管理的基本术语。不过,如果你能坚持下来,你会发现它提供的知识体系是极其完整的。它像是一张详尽的藏宝图,指明了 PowerShell 能力的每一个角落。我特别是对书中关于自定义函数参数和高级输出格式化(如 ConvertTo-Html, Export-Csv)的讲解留下了深刻印象,这些细节往往是决定一个脚本是否能被团队其他成员接受和使用的关键所在。这本书无疑为我打开了一扇通往高效运维管理的大门,其提供的参考价值远远超出了其定价。

评分

这本书的排版和内容组织方式,让我印象非常深刻,它更像是一部实战手册而非理论教材。作者似乎非常懂得一线运维人员的需求,他总是能精准地捕捉到我们在日常工作中遇到的痛点,然后直接给出高效的解决方案。我尤其欣赏它对模块化编程和函数定义的讲解,这一点是很多同类书籍容易忽略的。很多初级教程只教你怎么写能跑的脚本,但这本书教会你如何写“健壮的”、“可维护的”脚本。例如,书中关于错误处理机制(Try/Catch/Finally 块)的详细剖析,让我明白了如何让我的自动化脚本在面对突发状况时不会轻易崩溃。另外,关于 PowerShell Remoting(远程管理)的部分,简直是救星。以前管理分布在不同服务器上的服务简直是噩梦,各种 RDP 切换让人头疼。这本书通过清晰的步骤和示例,展示了如何利用 Enter-PSSession 和 Invoke-Command 轻松实现跨机器的管理,极大地提升了我的工作效率。如果你是那种“动手能力大于理论研究”的实践派,这本书的“实战”二字绝对名副其实,它更注重的是“怎么做”而不是“为什么是这样”。

评分

这本书我断断续续读了好几个月,说实话,初看起来感觉内容非常庞杂,就像走进了一个巨大的工具仓库,各种扳手、螺丝刀、万用表摆得琳琅满目,但你得自己花时间去摸索哪个工具对应哪个螺丝。我之前对命令行操作一直停留在比较表层的应用,比如简单的文件复制、目录导航,但这本书一下子把我的视野拉宽了,深入到了脚本自动化和系统管理的层面。它没有那种教科书式的枯燥讲解,更多的是通过大量的实例代码来展示 PowerShell 的强大能力。比如,书中对于如何利用管道(Pipeline)串联多个 cmdlet 来完成复杂任务的描述,简直是醍醐灌顶。我记得有一次,我需要统计域内所有计算机的内存使用情况,以前我可能要写好几段复杂的批处理脚本,但看了这本书的相应章节后,我用短短几行代码就优雅地实现了目标。不过,对于新手来说,初期的学习曲线确实有点陡峭,尤其是涉及到 WMI 对象操作和.NET 框架的调用时,有时候会感觉信息量过载,需要反复查阅和实践才能真正理解背后的逻辑。但总的来说,它提供的深度和广度是毋庸置疑的,绝对是那种值得放在手边随时翻阅的参考手册,而不是那种读完就扔的快餐读物。

评分

这本书给我最大的触动在于,它成功地将 PowerShell 从一个“似乎有点酷的命令行工具”提升到了“企业级自动化平台”的高度。很多技术书籍在讲解命令时,往往只停留在命令本身的语法和参数说明上,读完后你依然不知道在真实场景中该如何应用。然而,这本书的结构设计非常巧妙,它不是简单地罗列命令,而是通过一系列由浅入深的实际案例(比如日志分析、系统配置审计、定期报告生成)来串联起各个知识点。我感觉自己不是在学习一堆孤立的知识点,而是在跟着一位资深架构师的思路走,学习如何构建一个完整的自动化流程。这种情境化的学习方式,极大地降低了我将理论应用于实践的门槛。我记得书中关于性能调优的章节,对于如何识别脚本中的性能瓶颈并给出优化建议,那几段描述极为精辟,直接帮我解决了一个困扰已久的应用响应速度问题。这本书的价值,在于它教会你如何“思考”如何自动化,而不仅仅是教你输入哪些命令。

评分

看了很久的第二版本,不过最终还是选择了这个最想的第三版本,还是想接受最新的

评分

学习新的脚本语言

评分

活动购入,希望京东在图书板块继续加大力度!

评分

做为cmd的的衍生,powershell还是挺有意义的

评分

书相当不错,入门学习用书

评分

好好好好好好好好好好好好好好好

评分

评论混豆子,东西不错用了一段时间

评分

PowerShell类的资料书并不是太多,介绍的内容还不错。

评分

活动购入,希望京东在图书板块继续加大力度!

相关图书

本站所有内容均为互联网搜索引擎提供的公开搜索信息,本站不存储任何数据与内容,任何内容与数据均与本站无关,如有需要请联系相关搜索引擎包括但不限于百度google,bing,sogou

© 2025 book.coffeedeals.club All Rights Reserved. 静流书站 版权所有