Powershell与cygwin / unix-shell相比有什么优势


9

我知道的明显区别是与某些MS产品(例如Exchange)接口的能力。但是对于不必管理此类产品的人来说,Powershell有何优势?根本不学习Powershell的原因是什么(假设我精通bash和cygwin)?

Answers:



18

最明显的优势:只要管道中不涉及文本输出(或旧式命令),您就不会在管道中移动文本,而是通过.NET Framework对象及其所有属性和方法实例。

这样可以实现更富表现力和更少歧义的管道处理,并且完全不受语言环境和语言设置的影响(例如,考虑日期或数字格式以及通常如何将它们视为字符串)。

这也意味着您可以在脚本环境中访问大量的.NET框架功能。


6

在不进行关于范式的价值判断的情况下,PowerShell的主要优点是.Net集成和现有性-从Windows 2008 Server起,默认情况下将其捆绑在一起,并将其加载到2003和2003 R2的Service Pack中。

公平地说,脚本还有其他几种选择-例如Perl和Python。如果您想要本机.Net集成,Python还为您提供了使用IronPython的选项。实际上,只要将IronPython放在目录中,它就能令人满意地安装。您可以将其轻松捆绑到应用程序中,而无需单独的安装步骤。

Powershell的主要优势是一把双刃剑。尽管.net对象流非常有用并且具有其优点,但它对组件与框架的良好协作的能力提出了更多假设。为了使它真正起作用,您需要使用cmdlet打包东西。虽然文本输出稍微低一些,需要解析,但它减轻了组件负担,可以很好地与框架一起使用。

随着时间的推移,我希望看到更多的Windows生态系统(MS和第三方组件)都带有cmdlet包装程序,因此它们可以与Powershell一起使用。随着这种情况的发生,Powershell的情况将变得更加强大。

从历史上看,从管理角度来看,Windows的主要传统弱点之一是其对脚本的支持不佳。MS在几年前就认识到了这一点,并且经过几次la脚的尝试(例如WSH),Powershell是MS迄今为止解决该缺陷最可靠的努力。


2

我认为Powershell的最大优点是您可以将任何内容通过管道传输到任何内容,而无需解析文本和/或使用sed和awk。在不将那些讨厌的对象引入Equasion的情况下,可以将Powershell视为具有自动 sed和awk来链接管道中的命令。


2

优点:-

  1. 任务自动化:-诸如手动将用户添加到1000台计算机之类的任务是繁琐的工作。但是在powershell的帮助下,您只需要编写一个简单的脚本并运行该脚本,它将自动配置所有客户端。因此,它通过自动重复步骤来节省时间。可以开发和计划Windows PowerShell备份\还原脚本(使用Windows Task Scheduler),而管理中心用于一次性备份和还原。Windows PowerShell具有针对SQL快照而不是生产数据库运行的优势。Windows PowerShell命令的参数之一将导致生成SQL快照,然后Windows PowerShell将针对快照而不是生产数据库运行操作。这将减少备份操作对生产环境的资源影响。使用Windows PowerShell,SharePoint管理员将可以更精细地控制备份或还原的选项。

  2. 远程处理功能的改进:-意义是双重的,首先,Windows 7桌面可以使用PowerShell命令与服务器进行通信。因此,使用Windows 7便携式计算机的技术人员可以通过运行PowerShell脚本远程配置其服务器。其次,驻留在服务器上的用PowerShell编写的客户端登录脚本可以更轻松地在Windows 7上运行。同样使用powershell,我们可以轻松地控制远程机器,可以在它们上执行重要任务,并且可以轻松地大规模应用这些更改。远程处理使用网络资源。因此,当我们使用Powershell时,我们不会使用GUI,因此,减少了某些任务所需的带宽,并解决了网络过载问题。

  3. 一致性:-如果您有设定的完成任务的过程,则使用Windows Powershell将确保您不会错过任何步骤,尽可能多地实现自动化,并让Powershell提示您输入无法自动化的内容。

  4. .NET支持:-Powershell支持.NET框架。因此,所有系统功能都可以轻松添加到Powershell脚本中,从而有助于程序员开发脚本。因此,自动化VDI的任务变得更加容易,简单和高效。

  5. 减少手工工作:-管理员现在只需编写脚本即可远程创建,删除或修改虚拟机的设置。他无需去看个人电脑就可以完成工作。在所有计算机上也可以接受编写的脚本。因此,管理员无需一次又一次地重写它们。

  6. 可重用性:-一旦编写脚本来执行特定任务,就可以将其存储起来以备后用,也可以与其他脚本结合以执行不同的任务。因此,只需运行脚本,就可以以更简单的方式执行重复任务。这样可以节省管理员配置机器的时间和金钱。

  7. 管道支持:-Powershell的最大优点是您可以将任何内容通过管道传输到任何内容而无需解析文本。您可以将一个命令的输出作为新集合的输入,从而可以解决复杂的任务。


0

Cygwin不能保证可用于每个版本的Windows。最后我检查了它在64位计算机上是否有问题。Powershell正在成为Windows的默认命令外壳,它将提供对Windows计算机上所有资源的“本机”访问。


我在64位Vista上使用cygwin,效果很好。
Lajos)
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.