J'arrive sur un projet qui utilise PowerShell
pour scripter la construction. La construction utilise le module WebAdministration
pour gérer l'instance locale IIS. Lorsque j'exécute le script de génération, l'erreur suivante est générée lors de la tentative d'importation de WebAdministration
.
Erreur: 06/29/2016 17:28:35: à C:\dev\src\nib-ravendb\build\ConfigureIis.ps1: 10 char: 1 + Module WebAdministration du module d'importation + ~~~~~~~~~~~~~~~~~~~~~~~~~ ~~~~~~~ [<< == >>] Exception: Le module spécifié 'WebAdministration' n'a pas été chargé Car aucun fichier de module valide n'était inséré dans un répertoire Du module. ERREUR: 1
Cependant, quand je lance Import-Module WebAdministration
sur la ligne de commande PowerShell
, le module est importé et je peux utiliser ses fonctionnalités. L'exécution ultérieure du script de génération échoue toujours.
J'ai IIS 7.5
et PowerShell 4
Quelqu'un at-il une idée de la raison pour laquelle cette importation échouerait dans le script mais pas en ligne de commande et comment la résoudre?
À la fin, il y avait un problème, éventuellement chocolaté?, Tronquait $env:PSModulePath
à la première entrée, c’est pourquoi le script fonctionnait si je le tapais mais pas dans le script.
Je l'ai trouvé en enregistrant $env:PSModulePath
à différents endroits des scripts que j'exécutais.
J'ai corrigé les entrées dans $env:PSModulePath
.
Regardez la réponse de @ Richard pour d'autres bonnes suggestions.
Pour les serveurs, vous devez installer le rôle Management Tools
sous Web Server (IIS)
pour utiliser le module WebAdministration
. Pour voir si vous avez le module disponible, utilisez Get-Module -ListAvailable
.
Pour Windows 7
à 10
, vous devrez installer la fonctionnalité IIS Management Scripts and tools
sous Internet Information Services
>> Web Management Tools
.
Vous pouvez essayer de localiser manuellement le fichier WebAdministration
.psd1, puis de l'importer. Utilisez $env:psmodulepath
pour localiser vos modules, puis exécutez:
Import-Module -Name 'C:\Windows\System32\WindowsPowerShell\v1.0\Modules\WebAdministration\WebAdministration.psd1'
Si Server 2008
vous pouvez essayer ce qui suit, mais cela pourrait ne pas fonctionner à partir de 2012:
Add-PSSnapin WebAdministration
Note Vous devrez exécuter le script avec les droits d’administrateur pour pouvoir charger le module WebAdministration
avec Import-Module
ou Add-PSSnapin
.
Vérifiez également que vous avez défini la règle d'exécution PowerShell
sur Unrestricted
:
Set-ExecutionPolicy unrestricted
Vous voudrez peut-être voir ceci Question .