你目前正处于脱机状态,正在等待 Internet 重新连接

某些 IIS 管理 cmdlet PowerShell 4.0 中的运行速度慢

重要说明:本文是由 Microsoft 机器翻译软件进行的翻译并可能由 Microsoft 社区通过社区翻译机构(CTF)技术进行后期编辑,或可能是由人工进行的翻译。Microsoft 同时向您提供机器翻译、人工翻译及社区后期编辑的文章,以便对我们知识库中的所有文章以多种语言提供访问。翻译的文章可能存在词汇、句法和/或语法方面的错误。Microsoft 对由于内容的误译或客户对内容的使用所导致的任何不准确、错误或损失不承担责任。

点击这里察看该文章的英文版: 3144309
症状

请考虑以下情形:

  • 您正在使用 IIS web 管理模块,用于创建和管理 IIS web 应用程序,使用 PowerShell 的脚本。
  • 您运行的 Windows Server 2008 R2。
  • 您正在使用新的 web 应用程序web 应用程序 ConvertTo 的cmdlet。

在这种情况下,可以比在 PowerShell 2.0 的 PowerShell 4.0 中慢得多运行您的脚本。

如果您运行相同的脚本中 Windows Server 2012 或更高版本,就不会出现此问题。

原因
发生此问题是因为新的 web 应用程序web 应用程序 ConvertTo 的cmdlet 生成大量的 COM 调用。默认情况下,PowerShell 4.0 运行在 STA 线程处理模型。PowerShell 2.0 中运行 MTA 线程处理模型。
解决方案

如果可能,将迁移到 Windows Server 2012 或更高版本。一些 cmdlet 运行得 PowerShell 4.0 中 Windows Server 2012 环境中更快或更高版本。

若要变通解决此问题,请使用mta开关运行 PowerShell:

Powershell.exe mta

作为另一种变通方法,通过运行 PowerShell-2 版切换 ︰

Powershell.exe-2 版

警告:本文已自动翻译

属性

文章 ID:3144309 - 上次审阅时间:04/30/2016 01:18:00 - 修订版本: 1.0

  • kbmt KB3144309 KbMtzh
反馈