微软近期最令人关注的产品莫过于即将于下月发布的 Windows 7,不过更受开发人员和系统管理员关注的便应该是 PowerShell 2.0,它的 RTM 版本将随 Windows 7 和 Windows Server 2008 R2 一同发布。
与 Linux 等服务器操作系统中强大的 Shell 相比,Windows 命令行的功能弱小地令人难以接受。Windows 系统管理员往往会使用 VBScript 来编写脚本,但由于许多常见功能也要通过如 ActiveX 组件才能完成,再加上缺少灵活高效的语法特性,使用 VBScript 进行系统管理也比 Linux Shell 要麻烦得多。
为了改变这一状况,微软推出了 Windows 平台上的高级控制台工具 PowerShell 。PowerShell 1.0 包含了 130 个标准 cmdlet(即 PowerShell 的命令),提供了文件访问、系统服务等各个基础功能。PowerShell 也提供了强大的脚本编程能力,系统管理员可以编写各种自动化脚本来管理系统,如微软TechNet 脚本中心便提供了500 多个PowerShell 脚本示例,社区中也出现了如 psake 这样的构建工具。此外,PowerShell 是可扩展的,任何人可以编写并使用自定义的 cmdlet,微软的 IIS 7,SQL Server 2005/2008,Hyper-V 等产品中也都基于 PowerShell 提供了额外的管理功能。
PowerShell 2.0 在 1.0 的基础上提供了数十个全新的标准 cmdlet 及 API,并且对 PowerShell 脚本的调试等其他方面的进行了改进。此外,PowerShell 2.0 对脚本的远程执行提供了原生的支持。在 PowerShell 1.0 中,如果您需要在远程计算机中执行 PowerShell 命令,就必须使用自定义的 cmdlet(如 Dan Farino 提到 MySpace 使用的 RunAgent 命令),或借助 psexec 等其他远程命令执行方式。值得一提的是,微软公开了 PowerShell 远程协议,这意味着您可以编写自己的 PowerShell 客户端或服务器端工具。
令人感到遗憾的是,PowerShell 团队在博客中公开到,可以在Windows XP SP3、Server 2003 SP2、Vista SP1 及Server 2008 中使用的PowerShell 2.0 RTM 需要在“今后几个月”才能发布。这引起了大家的不解及“抗议”。您暂时只能通过 PowerShell 2.0 CTP 3 来尝试其中的高级功能了。
如果您想了解更多有关 PowerShell 的信息,请访问 InfoQ PowerShell 专题。
评论