Certaines applets de commande d’administration IIS s’exécutent lentement dans PowerShell 4,0

Cet article vous aide à résoudre le problème où les cmdlets d’administration de Microsoft Internet Information Services (IIS) s’exécutent lentement dans PowerShell 4,0.

Version du produit d’origine :   Services Internet (IIS), Windows Server 2008 R2, Windows PowerShell 4,0
Numéro de la base de connaissances initiale :   3144309

Symptômes

Prenons l’exemple du scénario suivant :

  • Vous utilisez le module d’administration Web IIS pour créer et gérer des applications Web IIS avec des scripts PowerShell.
  • Vous exécutez Windows Server 2008 R2.
  • Vous utilisez New-WebApplication ou ConvertTo-WebApplication cmdlets.

Dans ce scénario, vos scripts s’exécutent plus lentement dans PowerShell 4,0 que dans PowerShell 2,0. Ce problème ne se produit pas si vous exécutez les mêmes scripts dans Windows Server 2012 ou une version ultérieure.

Cause

Ce problème se produit car les New-WebApplication   applets de commande et ConvertTo-WebApplication   génèrent un volume élevé d’appels com (Component Object Model). Par défaut, PowerShell 4,0 s’exécute dans le modèle de thread STA et PowerShell 2,0 s’exécute dans le modèle de thread MTA.

Résolution

Dans la mesure du possible, migrez vers Windows Server 2012 ou une version ultérieure. Certaines cmdlets s’exécutent beaucoup plus rapidement dans PowerShell 4,0 dans un environnement Windows Server 2012 ou version ultérieure.

Pour améliorer la vitesse, exécutez PowerShell à l’aide du -mta commutateur :

Powershell.exe -mta

Vous pouvez également exécuter PowerShell à l’aide du -version 2 commutateur :

Powershell.exe -version 2