《Windows PowerShell实战指南(第2版)》——第1章 背景介绍 1.1为什么要重视PowerShell

简介: 自从2006年第一版Windows PowerShell面世以来,我们就一直在致力于对该技术进行教学推广。那时候,PowerShell的大部分使用者都是长期使用VBScript的用户,而且他们也非常期待能通过对VBScript的熟悉来学习PowerShell。

本节书摘来自异步社区《Windows PowerShell实战指南(第2版)》一书中的第1章,第1.1节,作者:【美】Don Jones(道·琼斯) , Jeffery Hicks(杰弗瑞·希克斯)著,更多章节内容可以访问云栖社区“异步社区”公众号查看

第1章 背景介绍

自从2006年第一版Windows PowerShell面世以来,我们就一直在致力于对该技术进行教学推广。那时候,PowerShell的大部分使用者都是长期使用VBScript的用户,而且他们也非常期待能通过对VBScript的熟悉来学习PowerShell。于是,开展培训以及编写PowerShell书籍的作者都采用了一种和其他编程语言教学一样的方式来教学PowerShell。

但是从2009年开始发生了一些改变。越来越多没有VBScript经验的人开始学习PowerShell这门语言。因为之前我们主要关注于脚本的编写,所以对PowerShell的教学不再那么卓有成效。也就是在那个时候,我们意识到PowerShell并不仅仅是一门脚本语言,其实是一种运行命令行工具的命令行Shell。和其他优秀的Shell一样,虽然PowerShell可以通过脚本实现很复杂的功能,但脚本仅是使用PowerShell的一种方式,因此学习PowerShell并不一定需要从脚本开始。之后,我们在每年的技术演讲会议上逐渐改变了我们的教学方式,同时也将这些教学方式的变化体现在我们的教学课程中。最后,我们出版了这本书,这也是我们想出的针对非编程背景的人员教学PowerShell的最好方式。但是在开始学习之前,我们需要了解一下背景。

1.1 为什么要重视PowerShell

从Batch、KiXtart、VBScript到现在,可以看到Windows PowerShell并不是微软(或者其他公司)首次为Windows管理员提供自动化管理的工具。我们认为,有必要让你们了解为什么需要关注PowerShell这个工具。因为当你们这样做的时候,会发现花费一定的时间去学习PowerShell是值得的。想象一下,在没有使用PowerShell之前我们的工作是怎样的,在使用该工具后又有哪些变化。

没有PowerShell

Windows操作系统管理员总是喜欢通过单击用户图形化界面去完成他们的工作。GUI(用户图形化界面)是Windows操作系统的一个最大的特点——毕竟这个操作系统并不是“文字模式”。因为GUI总是让我们很轻易找到我们能做的一切,所以它是那么强大。笔者仍然还记得第一次展开活动目录下的用户和计算机的场景。通过单击各种按钮,阅读工具栏提示信息,选择下拉菜单,右键单击某些图标,来查看用户与计算机中的各项功能。GUI是使得我们能够更容易学习的一种工具。但是不幸的是,GUI并不能带来任何效率提升上的回报。如你花费5分钟在活动目录中创建一个新的用户(合理的设想下,需要填写大量的信息),之后再新建用户时,也不会更快。那么新建100个新用户就会花费500分钟来完成——没有其他任何办法使得我们输入信息以及单击操作更快,从而加快该过程。

微软之前也尝试去解决该问题,VBScript可能算是其中最成功的一次尝试。如果你需要花费一小时去编写一条VBScript语句来将CSV文件中的新用户导入到活动目录中,但是以后你可能只需要花费几秒钟就可以完成同样的工作。VBScript的问题在于微软没有全心全意地对其提供支持,微软需要确保各种对象都可以通过VBScript访问、调用,而如果开发人员因为时间的原因或者是忘记这块知识,那么你就只能卡在那儿了。例如,想通过VBScript修改网卡IP,没问题。但是,想检查网络连接的速度,那就不行了,因为没人记得可以把这个功能设置为VBScript可访问的形式。这也算是一种遗憾。 Jeffery Snover,Windows PowerShell的架构师称之为“最后一英里”。你可以通过VBScript(或者其他类似的技术)来做很多事情,但是在某些时刻总会让人失望,从来不会让我们顺利通过“最后一英里”完成之后的工作。

Windows PowerShell正是微软公司试图改善这一缺陷的尝试,让你顺利通过“最后一英里”,进而完成工作。

拥有PowerShell

微软对Windows PowerShell的定位是我们可以通过该Shell完全管理Windows系统中的功能。微软仍在继续开发GUI的控制台,但是底层执行的仍然是PowerShell命令。通过这种方式,微软保证我们可以在该Shell中完成Windows系统中任意的工作。如果需要自动化一个重复性的任务或者完成在GUI中不支持的工作,那么你可以使用该Shell来达成所愿。

很多微软的产品都已经采用了这种开发方法,如Exchange Server 2007和2010、Sharepoint Server 2010、大部分System Center产品以及Windows系统中大量的组件。接下来,越来越多的产品和Windows系统中组件会采用这个Shell。Windows Server 2012(首次采用PowerShell V3)甚至可以完全通过PowerShell或者使用基于PowerShell的GUI工具来进行管理。这也就是为什么我们要重视PowerShell。在接下来的几年,PowerShell会成为越来越多的管理功能的底层实现。

此时,我们仔细想想:如果你正在管理一个拥有很多IT工程师的团队,你希望谁的职级更高,希望谁能拿更多的薪水,是每次都要花费几分钟使用GUI来完成一个任务的人,还是一个可以通过脚本花费几秒钟自动化完成的人?无论你是来自哪个领域的IT从业人员,我们都知道应该如何选择。询问一个思科的管理员、AS/400的操作员或者Unix管理员,他们都会回答“我更希望选择可以借助命令行更有效率地完成工作的人员”。以后的Windows系统工程师可以简单分为两类,一部分会使用PowerShell,另一部分则不会。正如Don在微软2010TechEd会议上著名的言论:我们的选择是“学习PowerShell”,还是“来包炸薯条”?

我们很欣慰,你已经决定来学习PowerShell。

相关文章
|
3月前
|
存储 Ubuntu Linux
windows可以安装Ubuntu,ubuntu上也可以安装Powershell
powerhsell除了可以在windows上使用外,还可以在Ubuntu上部署开发环境。下面介绍Ubuntu上安装powershell的方法。
51 0
|
5月前
|
Shell Linux 开发工具
windows中cmd和PowerShell批处理命令
之前在 Git 批量删除本地分支,有用到 Linux 或 MacOS 下的批处理命令,这个命令中的 grep、xargs 本身是 Shell script,在 windows 中的 cmd 和 PowerShell 中是不能用的
51 0
|
8月前
|
JavaScript Windows
[Vue]解决 Windows PowerShell 不识别 vue 命令的问题
[Vue]解决 Windows PowerShell 不识别 vue 命令的问题
|
8月前
|
Windows
使用PowerShell获取Windows当前锁屏壁纸
使用PowerShell获取Windows当前锁屏壁纸 如果原始图片丢了,用这段代码就可以提取当前锁屏壁纸了!
102 0
|
应用服务中间件 nginx Windows
Windows PowerShell 中启动 Nginx 报错解决方案
Windows PowerShell 中启动 Nginx 报错解决方案
Windows PowerShell 中启动 Nginx 报错解决方案
|
监控 Windows
Windows Server端口监控之powershell脚本
powershell检测端口并重启程序
603 0
|
前端开发 Shell 开发工具
前端开发工具 vscode 使用技巧篇:控制台由powershell切换为cmd方法,windows下新旧版控制台cmd与powershell互切方法
前端开发工具 vscode 使用技巧篇:控制台由powershell切换为cmd方法,windows下新旧版控制台cmd与powershell互切方法
361 0
前端开发工具 vscode 使用技巧篇:控制台由powershell切换为cmd方法,windows下新旧版控制台cmd与powershell互切方法
|
XML Unix Shell
Windows PowerShell:Windows PowerShell的简介、入门、使用方法之详细攻略
Windows PowerShell:Windows PowerShell的简介、入门、使用方法之详细攻略
Windows PowerShell:Windows PowerShell的简介、入门、使用方法之详细攻略
|
API C# Windows
Windows 10 应用创建模糊背景窗口的三种方法
原文 Windows 10 应用创建模糊背景窗口的三种方法 现代的操作系统中创建一张图片的高斯模糊效果非常容易,不过如果要在窗口中获得模糊支持就需要操作系统的原生支持了。iOS/Mac 和 Windows 系统都对此有支持。
2041 0