AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • 主页
  • 系统&网络
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • 主页
  • 系统&网络
    • 最新
    • 热门
    • 标签
  • Ubuntu
    • 最新
    • 热门
    • 标签
  • Unix
    • 最新
    • 标签
  • DBA
    • 最新
    • 标签
  • Computer
    • 最新
    • 标签
  • Coding
    • 最新
    • 标签
主页 / server / 问题 / 5188
Accepted
Moshe
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 6 个回答
  • 6475 Views

6 个回答

  • Voted
  1. Tomalak
    2009-05-07T00:21:20+08:002009-05-07T00:21:20+08:00

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

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

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

    • 18
  2. 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 迄今为止修复该缺陷的最可靠的努力。

    • 6
  3. 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

    • 2
  4. x0n
    2009-05-15T09:47:43+08:002009-05-15T09:47:43+08:00

    我认为 powershell 的最大胜利是您可以将任何内容传递给任何内容,而无需解析文本和/或 grok sed 和 awk。在不将那些讨厌的对象带入等式的情况下,将 powershell 视为具有自动sed 和 awk 用于链接管道中的命令。

    • 2
  5. user59155
    2010-11-04T22:23:31+08:002010-11-04T22:23:31+08:00

    优点:-

    1. 任务自动化:- 手动将用户添加到 1000 台机器等任务是一项繁琐的工作。但是在 powershell 的帮助下,您只需要编写一个简单的脚本,然后运行该脚本,它就会自动配置所有客户端。因此,它通过自动重复这些步骤来节省时间。可以开发和安排 Windows PowerShell 备份\还原脚本(使用 Windows 任务计划程序),而管理中心用于一次性备份和还原。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 的最大优势是您可以将任何内容通过管道传输到任何内容,而无需解析文本。您可以提供一个命令的输出作为新集合的输入,从而可以解决复杂的任务。

    • 2
  6. Eric Z Beard
    2009-05-07T02:25:46+08:002009-05-07T02:25:46+08:00

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

    • 0

相关问题

  • 如何在不浪费 HD 空间的情况下使用 cygwin?[关闭]

  • 在 .bashrc 中设置环境变量的最佳方法是什么?

  • 如何授予对 Exchange 2007 中每个人的日历的访问权限?

  • Vanilla Powershell 是否足以成为 Windows 和 DB 服务器管理员的语言?

Sidebar

Stats

  • 问题 205573
  • 回答 270741
  • 最佳答案 135370
  • 用户 68524
  • 热门
  • 回答
  • Marko Smith

    SFTP 使用什么端口?

    • 6 个回答
  • Marko Smith

    从 IP 地址解析主机名

    • 8 个回答
  • Marko Smith

    如何按大小对 du -h 输出进行排序

    • 30 个回答
  • Marko Smith

    命令行列出 Windows Active Directory 组中的用户?

    • 9 个回答
  • Marko Smith

    Windows 中执行反向 DNS 查找的命令行实用程序是什么?

    • 14 个回答
  • Marko Smith

    如何检查 Windows 机器上的端口是否被阻塞?

    • 4 个回答
  • Marko Smith

    我应该打开哪个端口以允许远程桌面?

    • 9 个回答
  • Marko Smith

    什么是 Pem 文件,它与其他 OpenSSL 生成的密钥文件格式有何不同?

    • 3 个回答
  • Marko Smith

    如何确定bash变量是否为空?

    • 15 个回答
  • Martin Hope
    MikeN 在 Nginx 中,如何在维护子域的同时将所有 http 请求重写为 https? 2009-09-22 06:04:43 +0800 CST
  • Martin Hope
    Tom Feiner 如何按大小对 du -h 输出进行排序 2009-02-26 05:42:42 +0800 CST
  • Martin Hope
    0x89 bash中的双方括号和单方括号有什么区别? 2009-08-10 13:11:51 +0800 CST
  • Martin Hope
    kch 如何更改我的私钥密码? 2009-08-06 21:37:57 +0800 CST
  • Martin Hope
    Kyle Brandt IPv4 子网如何工作? 2009-08-05 06:05:31 +0800 CST
  • Martin Hope
    Noah Goodrich 什么是 Pem 文件,它与其他 OpenSSL 生成的密钥文件格式有何不同? 2009-05-19 18:24:42 +0800 CST
  • Martin Hope
    Brent 如何确定bash变量是否为空? 2009-05-13 09:54:48 +0800 CST
  • Martin Hope
    cletus 您如何找到在 Windows 中打开文件的进程? 2009-05-01 16:47:16 +0800 CST

热门标签

linux nginx windows networking ubuntu domain-name-system amazon-web-services active-directory apache-2.4 ssh

Explore

  • 主页
  • 问题
    • 最新
    • 热门
  • 标签
  • 帮助

Footer

AskOverflow.Dev

关于我们

  • 关于我们
  • 联系我们

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve