【问题标题】:Why and when to use 32 or 64-bit PowerShell or ISE?为什么以及何时使用 32 位或 64 位 PowerShell 或 ISE?
【发布时间】:2011-08-21 10:34:35
【问题描述】:

我刚拿到我的第一台 64 位 Windows 笔记本。现在我正在寻找何时以及为何使用 32 位或 64 位版本的 PowerShell 或 ISE 的信息。

我的第一印象是我最好继续使用 32 位,直到我更好地理解事物为止。

我错过或没有找到的是基本教程和实践经验以及此问题的链接。

【问题讨论】:

    标签: powershell powershell-2.0 powershell-ise


    【解决方案1】:

    我正在使用 7 个 64 位和 W2K8 R2 一年,并且,在命令行上,我一直在使用 64 位 Powershell,没有任何问题。

    对我来说,问题不是选择 32 位还是 64 位 PowerShell.exe,而是要知道两者存在,并且 32 位进程将使用 32 位 PowerShell。例如,如果您在 Visual Studio 2010 中使用 PowerShell 作为构建后执行脚本,它将使用 32 位 PoweShell,因为 Visual Studio 2010 是 32 位进程。

    这两个版本在注册表中看到两个不同的位置,因此您必须为两者设置执行策略。

    就脚本而言,我不使用 ISE,而是使用 PowerGUI 脚本编辑器。你可以使用

    [intPtr]::size
    

    在脚本中了解您是在运行 32 位还是 64 位 PowerShell.exe。

    【讨论】:

    • [intPtr]::size 对于 32 位 PowerShell 返回 4,对于 64 位 PowerShell(至少在我的机器上)返回 8。 The docs 说值是字节,所以这是有道理的,但只是想指出这一点。
    【解决方案2】:

    您将使用 64 位版本的 PowerShell 或 PowerShell ISE,其中您尝试解决的问题是唯一的 64 位版本。例如:

    1. 您的 PowerShell 脚本需要消耗比 32 位应用程序允许的更多的内存

    2. 您正在使用仅 64 位或需要在 64 位环境中运行的库。例如,在 Windows 2008R2/IIS7.5 上,如果您通过此库使用 Microsoft.Web.Management 托管包装器 if you need to modify administration.config,那么您的应用程序或脚本需要在 64 位进程中运行。

    【讨论】:

    • 在工作中 (x64) 我将尝试运行一个脚本,它只是请求内存,直到它崩溃并观察内存消耗。我相信限制远低于 4gb;恕我直言,OutOfMemoryExc 会来得更快。
    • 好吧,从旧的 ASP.NET 经验中得出的错误假设 :) 内存最终达到 10GB。所以忘记我的笔记(不要删除它)。
    【解决方案3】:

    我通常坚持使用 64 位 PowerShell,除非我有充分的理由不使用它。 32 位 PowerShell 的一个问题是,您可能会意外发现自己位于注册表的 HKLM:\SOFTWARE\Wow6432Node 位置,而不是您认为的位置。

    我最常遇到的明确需要 32 位的示例是在使用某些 COM 对象时。例如,如果你有一个 64 位操作系统,但 32 位 Office……如果你想实例化一个 Word、Excel 或 Access 对象,你将需要在 32 位 PowerShell 中,否则就像你根本没有安装 Office 一样。

    【讨论】:

      【解决方案4】:

      运行 SharePoint 2013 时,在尝试使用 Windows.SharePoint.PowerShell 管理单元时运行 64 位版本很重要。我花了太多时间没有意识到我打开 32 位 ISE 无法加载 SharePoint 命令。

      【讨论】:

        【解决方案5】:

        我认为你真的不需要关心这个。至于我的 64 位系统,只预装了一个 32 位 PowerShell(在 \system32 中),它可以正常工作。所以就使用它;) 而且,除此之外,它很可能与任何其他应用程序的情况相同:如果您依赖仅在 64 位下可用的功能/属性,则最好使用该应用程序的 64 位版本。

        【讨论】:

        • 在 64 位系统上,我想您会发现 system32\WindowsPowerShell 中的 PowerShell 是 64 位版本。与所有 64 位 Windows 操作系统一样,32 位文件、工具、DLL 等位于 C:\Windows\SysWOW64,而 32 位版本的 PowerShell 位于 C:\Windows\SysWOW64\WindowsPowerShell
        猜你喜欢
        • 2012-10-26
        • 2018-08-04
        • 2015-07-05
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2011-12-15
        • 2019-01-07
        • 1970-01-01
        相关资源
        最近更新 更多