我所知道的明显不同之处在于,它能够与某些MS产品(如Exchange )进行接口。但是对于不需要管理这些产品的人来说,Powershell有什么好处呢?学习Powershell的原因是什么(假设我精通bash和cygwin)?
发布于 2009-05-07 11:31:01
杰弗里·斯诺弗( PowerShell designer)在StackOverflow上给出了一个很好的答案:
发布于 2009-05-06 08:21:20
最明显的优点是:只要管道中不涉及文本输出(或遗留命令),您就不会在管道中移动文本,而是移动.NET框架对象的实例,以及它们的所有属性和方法。
这允许进行更有表现力和较少歧义的管道处理,这种处理也完全不受区域设置和语言设置的影响(例如,考虑日期或数字格式,以及如何将它们作为字符串正常处理)。
这也意味着您可以在脚本环境中访问大量.NET框架功能。
发布于 2009-05-06 11:37:48
没有对该范式进行价值判断,PowerShell的主要优势是.Net集成和在职--从Windows2008Server开始,默认情况下它是捆绑在一起的,并且在2003年和2003年R2上加载在service中。
公平地说,还有其他几种脚本选择--例如Perl和Python。如果您想要本地IronPython集成,Python还提供了使用.Net的选项。实际上,只要将IronPython放在目录中,它就能令人满意地安装。您可以在不需要单独安装步骤的情况下将其打包在应用程序中。
Powershell的关键优势是一把双刃剑。虽然流.net对象非常有用,也有其优点,但它对组件能够很好地处理框架提出了更多的假设。要使它真正起作用,您需要使用cmdlet包装东西。虽然文本输出稍微低一些,并且需要解析,但它为组件很好地处理框架带来了更少的负担。
随着时间的推移,我希望看到更多的Windows生态系统(包括MS和第三方组件)提供cmdlet包装器,这样它们就可以使用Powershell。在这种情况下,Powershell的应用将变得更加强大。
历史上,从管理角度看,Windows的主要传统弱点之一是它对脚本的糟糕支持。几年前,她就意识到了这一点,经过几次拙劣的尝试(例如,WSH),Powershell是微软迄今为弥补这一缺陷而做出的最可信的努力。
https://serverfault.com/questions/5188
复制相似问题