随着微软公司不断地向企业级服务器市场的进军,来自于广大管理员的呼声终于得到了微软的正面响应,即将发布 Windows PowerShell,以用于对计算机的全面性的脚本化控制。参考链接:http://www.microsoft.com/windowsserver2003/technologies/management/powershell/default.mspx
从 MS-DOS 时代就一直存在的批处理语言长久以来一直是微软被诟病的软肋,该语言过于丑陋而且控制能力极弱,无法完成略为高级或者复杂的任务。虽然 Windows 后来引入了 wscript 组件,但是,该组件基本上只提供了脚本语言单纯在语言一级上的支持,并没有为其与操作系统进行交互付出足够的努力。
目前要发布的 Windows PowerShell 则大大不同。该工具内建的命令几乎涉及到了操作系统管理工作的所有方面,令老汉感到惊讶的是,连 ACL 这种非常底层的控制都有相应的命令。
从该工具的二进制文件的形态上可以看出,工具本身的实现使用了 .Net Framework。在使用的过程中也能明显感觉出这一点,因为所有使用了 .Net Framework 的程序都具有相同的特点,那就是响应时间略长。不过这么做是有必要的,因为该工具大量使用了 XML 等高级特性,而且托管代码的安全性也比较有保障。也因为此,PowerShell 提供的命令也不可避免地带有 .Net 的痕迹,比如说命令的命名,都比较长,列目录下的内容,命令为 get-childitem;切换路径,命令为 set-location。好在预先为一些命令设置了较短的别名,因而上述的两个命令仍然可以使用传统的 dir 和 cd。
尽管命令没有 Unix 的简洁风格,不过,Windows PowerShell 的文本输出却颇类似于 Unix 的样子。使用 get-help 得到的帮助文本看起来和 Unix 上的 man 命令如出一辙。事实上,微软特意写了一个名为 man 的函数供大家调用。
虽然微软尚未敲定最终的版本,不过其雏形已经就绪,个人认为正式的版本不会再有大的改动。