我认为人们需要在这个问题上跳出思维定势。停止尝试将 PowerShell 与 C# 或作为替代品进行比较,与其说是替代,不如说是补充它。
我是一名 DBA,但越来越多的人发现自己在做类似开发人员的任务,以使我的工作更加自动化。我目前正在为我工作的公司开发一个评估工具,它现在是用 PowerShell 编写的。
PowerShell 由 Microsoft 创建,并且在管理员或管理应用程序(SharePoint、Exchange、AD 等)的人员中越来越流行。在这种情况下,现在学习和使用 PowerShell 已成为一种要求。微软已经声明,任何为 Windows Server 推出的产品都必须具有 PowerShell 功能,并且 GUI 界面必须在下面使用 PowerShell(找不到源,但已经阅读并听说过)。
我最近一直在阅读这本面向开发人员的 Windows PowerShell,发现作者在他的开发工作中使用它非常有趣。最多花点钱买一本电子书并通读一遍是值得的。
我认为开发人员会从 PowerShell 中受益的几点(至少如果我全职这样做的话):
- 它允许您更快地在程序中编写较小的任务(例如,遍历文件中的数据、在 Windows 文件系统中搜索文件等)。
- 我认为它可以用作一致性的部署工具。您实际上可以在 PowerShell 控制台中编译代码,因为它基于并且可以访问 .NET 结构。
- 如前所述,如果您想为帮助台编写一个小程序,例如 Active Directory,您可以使用 PowerShell 命令行开关对 AD 执行命令和任务,这比尝试绑定到所有 .NET 类要容易得多。命令行开关已经具有帮助台用户可以使用的绑定和标准命令。