Moshe Asked: 2009-05-07 00:08:57 +0800 CST2009-05-07 00:08:57 +0800 CST 2009-05-07 00:08:57 +0800 CST Powershell 比 cygwin/unix-shell 有什么优势 772 我知道的明显区别是与某些 MS 产品(例如 Exchange)的接口能力。但是对于不必管理此类产品的人来说,Powershell 的优势是什么?学习 Powershell 的原因是什么(假设我精通 bash 和 cygwin)? bash powershell cygwin shell 6 个回答 Voted Tomalak 2009-05-07T00:21:20+08:002009-05-07T00:21:20+08:00 最明显的优势:只要管道中不涉及文本输出(或遗留命令),您就不会通过管道移动文本,而是 .NET 框架对象的实例及其所有属性和方法。 这允许更富有表现力和更少歧义的管道处理,它也完全不受语言环境和语言设置的影响(例如,考虑日期或数字格式以及您通常如何将它们视为字符串)。 这也意味着您可以访问脚本环境中的大量 .NET 框架功能。 ConcernedOfTunbridgeWells 2009-05-07T03:37:48+08:002009-05-07T03:37:48+08:00 无需对范式进行价值判断,PowerShell 的主要优点是 .Net 集成和在职 - 从 Windows 2008 服务器开始,它默认捆绑,并在 2003 和 2003 R2 的服务包中加载。 公平地说,脚本还有其他几种选择——例如 Perl 和 Python。如果您想要原生 .Net 集成,Python 还为您提供了使用 IronPython 的选项。事实上,IronPython 只需将它放到一个目录中就可以令人满意地安装。您可以轻松地将其捆绑在应用程序中,而无需单独的安装步骤。 Powershell 的关键优势是一把双刃剑。虽然流式传输 .net 对象非常有用并且有其优势,但它对组件与框架良好配合的能力进行了更多假设。为此,您需要使用 cmdlet 进行包装。虽然文本输出的级别较低并且需要解析,但它减轻了组件的负担,可以很好地与框架配合使用。 随着时间的推移,我希望看到更多的 Windows 生态系统(包括 MS 和第三方组件)带有 cmdlet 包装器,因此它们可以与 Powershell 一起使用。发生这种情况时,Powershell 的情况将变得更加强大。 从历史上看,从管理角度来看,Windows 的主要传统弱点之一是其对脚本的支持很差。MS 几年前就认识到了这一点,经过几次蹩脚的尝试(例如 WSH),Powershell 是 MS 迄今为止修复该缺陷的最可靠的努力。 Best Answer Richard Gadsden 2009-05-08T03:31:01+08:002009-05-08T03:31:01+08:00 Jeffrey Snover(PowerShell 设计师)在 StackOverflow 上有一个很好的答案: https://stackoverflow.com/questions/573623/#573861 x0n 2009-05-15T09:47:43+08:002009-05-15T09:47:43+08:00 我认为 powershell 的最大胜利是您可以将任何内容传递给任何内容,而无需解析文本和/或 grok sed 和 awk。在不将那些讨厌的对象带入等式的情况下,将 powershell 视为具有自动sed 和 awk 用于链接管道中的命令。 user59155 2010-11-04T22:23:31+08:002010-11-04T22:23:31+08:00 优点:- 任务自动化:- 手动将用户添加到 1000 台机器等任务是一项繁琐的工作。但是在 powershell 的帮助下,您只需要编写一个简单的脚本,然后运行该脚本,它就会自动配置所有客户端。因此,它通过自动重复这些步骤来节省时间。可以开发和安排 Windows PowerShell 备份\还原脚本(使用 Windows 任务计划程序),而管理中心用于一次性备份和还原。Windows PowerShell 具有针对 SQL 快照而不是生产数据库运行的优势。Windows PowerShell 命令的参数之一将导致生成 SQL 快照,然后 Windows PowerShell 将对快照而不是生产数据库运行操作。这将减少备份操作对生产环境的资源影响。借助 Windows PowerShell,SharePoint 管理员可以更精细地控制备份或还原选项。 远程处理能力的改进:- 意义是双重的,首先,Windows 7 桌面可以使用 PowerShell 命令与服务器通信。因此,使用 Windows 7 笔记本电脑的技术人员可以通过运行 PowerShell 脚本远程配置他们的服务器。其次,使用 PowerShell 编写的客户端登录脚本驻留在服务器上,可以更轻松地在 Windows 7 上运行。同样使用 powershell,我们可以轻松控制远程机器,可以在它们上执行重要任务,并且可以轻松地大规模应用这些更改。远程处理使用网络资源。因此,当我们使用 powershell 时,我们不使用 GUI,因此,某项任务所需的带宽减少了,网络过载问题也得到了解决。 一致性:- 如果您有一套完成任务的程序,使用 Windows Powershell 将确保您不会错过任何一个步骤,尽可能自动化,并让 Powershell 提示您输入无法自动化的内容。 .NET 支持:- Powershell 支持 .NET 框架。因此,所有系统功能都可以轻松添加到 powershell 脚本中,从而有助于程序员开发脚本。因此,自动化 VDI 的任务更加容易、简单和高效。 减少手动工作:- 管理员现在只需编写脚本即可远程创建、删除或修改虚拟机的设置。他不需要去个人电脑完成工作。在所有计算机上也可以接受编写的脚本。因此管理员无需一次又一次地重写它们。 可重用性:- 为执行特定任务而编写的脚本可以存储以供以后使用,也可以与其他脚本组合以执行不同的任务。因此,只需运行脚本即可以更简单的方式执行重复性任务。这节省了管理员配置机器的时间和金钱。 流水线支持:- powershell 的最大优势是您可以将任何内容通过管道传输到任何内容,而无需解析文本。您可以提供一个命令的输出作为新集合的输入,从而可以解决复杂的任务。 Eric Z Beard 2009-05-07T02:25:46+08:002009-05-07T02:25:46+08:00 不保证 Cygwin 可用于每个版本的 Windows。最后我检查了它在 64 位机器上是有问题的。Powershell 正在成为 Windows 的默认命令 shell,并将提供对 Windows 机器上所有资源的“本机”访问。
最明显的优势:只要管道中不涉及文本输出(或遗留命令),您就不会通过管道移动文本,而是 .NET 框架对象的实例及其所有属性和方法。
这允许更富有表现力和更少歧义的管道处理,它也完全不受语言环境和语言设置的影响(例如,考虑日期或数字格式以及您通常如何将它们视为字符串)。
这也意味着您可以访问脚本环境中的大量 .NET 框架功能。
无需对范式进行价值判断,PowerShell 的主要优点是 .Net 集成和在职 - 从 Windows 2008 服务器开始,它默认捆绑,并在 2003 和 2003 R2 的服务包中加载。
公平地说,脚本还有其他几种选择——例如 Perl 和 Python。如果您想要原生 .Net 集成,Python 还为您提供了使用 IronPython 的选项。事实上,IronPython 只需将它放到一个目录中就可以令人满意地安装。您可以轻松地将其捆绑在应用程序中,而无需单独的安装步骤。
Powershell 的关键优势是一把双刃剑。虽然流式传输 .net 对象非常有用并且有其优势,但它对组件与框架良好配合的能力进行了更多假设。为此,您需要使用 cmdlet 进行包装。虽然文本输出的级别较低并且需要解析,但它减轻了组件的负担,可以很好地与框架配合使用。
随着时间的推移,我希望看到更多的 Windows 生态系统(包括 MS 和第三方组件)带有 cmdlet 包装器,因此它们可以与 Powershell 一起使用。发生这种情况时,Powershell 的情况将变得更加强大。
从历史上看,从管理角度来看,Windows 的主要传统弱点之一是其对脚本的支持很差。MS 几年前就认识到了这一点,经过几次蹩脚的尝试(例如 WSH),Powershell 是 MS 迄今为止修复该缺陷的最可靠的努力。
Jeffrey Snover(PowerShell 设计师)在 StackOverflow 上有一个很好的答案:
https://stackoverflow.com/questions/573623/#573861
我认为 powershell 的最大胜利是您可以将任何内容传递给任何内容,而无需解析文本和/或 grok sed 和 awk。在不将那些讨厌的对象带入等式的情况下,将 powershell 视为具有自动sed 和 awk 用于链接管道中的命令。
优点:-
任务自动化:- 手动将用户添加到 1000 台机器等任务是一项繁琐的工作。但是在 powershell 的帮助下,您只需要编写一个简单的脚本,然后运行该脚本,它就会自动配置所有客户端。因此,它通过自动重复这些步骤来节省时间。可以开发和安排 Windows PowerShell 备份\还原脚本(使用 Windows 任务计划程序),而管理中心用于一次性备份和还原。Windows PowerShell 具有针对 SQL 快照而不是生产数据库运行的优势。Windows PowerShell 命令的参数之一将导致生成 SQL 快照,然后 Windows PowerShell 将对快照而不是生产数据库运行操作。这将减少备份操作对生产环境的资源影响。借助 Windows PowerShell,SharePoint 管理员可以更精细地控制备份或还原选项。
远程处理能力的改进:- 意义是双重的,首先,Windows 7 桌面可以使用 PowerShell 命令与服务器通信。因此,使用 Windows 7 笔记本电脑的技术人员可以通过运行 PowerShell 脚本远程配置他们的服务器。其次,使用 PowerShell 编写的客户端登录脚本驻留在服务器上,可以更轻松地在 Windows 7 上运行。同样使用 powershell,我们可以轻松控制远程机器,可以在它们上执行重要任务,并且可以轻松地大规模应用这些更改。远程处理使用网络资源。因此,当我们使用 powershell 时,我们不使用 GUI,因此,某项任务所需的带宽减少了,网络过载问题也得到了解决。
一致性:- 如果您有一套完成任务的程序,使用 Windows Powershell 将确保您不会错过任何一个步骤,尽可能自动化,并让 Powershell 提示您输入无法自动化的内容。
.NET 支持:- Powershell 支持 .NET 框架。因此,所有系统功能都可以轻松添加到 powershell 脚本中,从而有助于程序员开发脚本。因此,自动化 VDI 的任务更加容易、简单和高效。
减少手动工作:- 管理员现在只需编写脚本即可远程创建、删除或修改虚拟机的设置。他不需要去个人电脑完成工作。在所有计算机上也可以接受编写的脚本。因此管理员无需一次又一次地重写它们。
可重用性:- 为执行特定任务而编写的脚本可以存储以供以后使用,也可以与其他脚本组合以执行不同的任务。因此,只需运行脚本即可以更简单的方式执行重复性任务。这节省了管理员配置机器的时间和金钱。
流水线支持:- powershell 的最大优势是您可以将任何内容通过管道传输到任何内容,而无需解析文本。您可以提供一个命令的输出作为新集合的输入,从而可以解决复杂的任务。
不保证 Cygwin 可用于每个版本的 Windows。最后我检查了它在 64 位机器上是有问题的。Powershell 正在成为 Windows 的默认命令 shell,并将提供对 Windows 机器上所有资源的“本机”访问。