从2016年开始,细心的Windows 10用户发现,右键单击桌面的开始按钮,“命令提示符”选项不见了,取而代之的是“Windows PowerShell”。这意味着存在多年的“小黑窗”遇到了变革。事实上,PowerShell的第一个版本发布于2006年。作为新式的命令行shell、脚本语言和配置管理框架,它已伴随我们走过16个年头。如今PowerShell已成为Windows高级用户、企业IT工程师、云服务管理员得心应手的利器。2016年,开源及跨平台版推出后,PowerShell在Windows、Linux和macOS平台上迎来了快速增长期,甚至使Linux用户成为PowerShell的核心用户。
PowerShell之父Jeffrey Snover介绍了开发PowerShell项目的动机——主要是由于Windows和Linux核心架构的区别。在Linux中,一切管理操作的配置都是文本文件,因此所有的管理类软件其实就是处理文本文件的程序。而Windows其实是基于API的操作系统,所有的API返回的都是结构化的数据,因此那些Unix软件没什么帮助。这些需求推动了PowerShell的诞生。
从诞生之初,PowerShell就具有一系列惊艳的特点。
伟大的设计必然对应宏大叙事,理论上需要一部鸿篇巨著才能将诸多特性介绍清楚。而当出版社向我推荐这本《PowerShell实战》(英文原版名为 PowerShell for Sysadmins: Workflow Automation Made Easy )时,粗略浏览目录后,我感到十分惊讶——作者是如何仅用区区200多页的篇幅,兼顾语法基础、操作实战,以至完成大型项目?带着浓浓的好奇心,我读完了整本书。
作者的写作思路是针对IT系统管理员完成日常管理任务这一核心目标,循序介绍必要的知识,以任务目标为导向带领读者逐步构建实用的脚本,穿插介绍有用的技巧、设计模式和最佳实践。对于有兴趣的读者,作者还给出了获取扩展资料的指引,这是一种友好的结构。全书分为三个部分,层层递进。第一部分用近全书一半的篇幅介绍PowerShell语法、远程处理功能、自动化测试框架,这是一切后续行动的基础。语法部分避免“回字有四种写法”的枯燥理论,例如只介绍
[CmdletBinding()]
高级函数的编写,但不再介绍基本函数。而对错误处理,则重点着墨,有利于培养技术人员良好的素养。第二部分带领读者完成管理报表、AD管理、Azure管理、AWS管理等日常管理任务,让读者在理论学习和动手实践的结合中产生现实收益。第三部分带领读者构建一款名为PowerLab的PowerShell模块,不时地放慢脚步对代码进行重构整理,使脚本随时处于可阅读、可维护的最佳状态。无论是PowerShell新手、高级用户,还是IT运维人员,都能从中受益。
致敬原著者Adam Bertram(微软Cloud and Datacenter Management MVP)、中文版译者安道,愿本书为你开启奇妙的PowerShell之旅。
吴波
微软Cloud and Datacenter Management MVP