2016-06-29 2 views
4

Ich komme auf ein Projekt, das PowerShell verwendet, um den Build zu skripten. Der Build verwendet das Modul WebAdministration zum Verwalten der lokalen IIS-Instanz. Wenn ich das Buildskript ausführe, wird der folgende Fehler beim Importieren von ausgelöst.Import-Module WebAdministration wird nicht vom Skript geladen, sondern von der Befehlszeile

Error: 06/29/2016 17:28:35: At C:\dev\src\nib-ravendb\build\ConfigureIis.ps1:10 char:1 + Import-Module WebAdministration + ~~~~~~~~~~~~~~~~~~~~~~~~ ~~~~~~~ [<<==>>] Exception: The specified module 'WebAdministration' was not loaded because no valid module file was fo und in any module directory. ERROR: 1

Wie auch immer, wenn ich Import-Module WebAdministration am PowerShell Befehlszeile ausführen das Modul importiert wird, und ich kann Features von ihm verwenden. Das Ausführen des Build-Skripts schlägt anschließend fehl.

Ich habe IIS 7.5 und PowerShell 4

Hat jemand eine Idee, warum dieser Import in dem Skript fehlerhaft sein würde, aber nicht in der Befehlszeile, und wie man es beheben?

Antwort

0

Am Ende gab es ein Problem, etwas, möglicherweise schokoladig ?, abgeschnitten $env:PSModulePath zum ersten Eintrag, deshalb das Skript funktionierte, wenn ich es eingegeben, aber nicht im Skript.

Ich fand es durch Protokollierung $env:PSModulePath an verschiedenen Stellen in den Skripten, die ich ausgeführt habe.

Ich arbeitete um es durch Neuordnen der Einträge in $env:PSModulePath.

Werfen Sie einen Blick auf @ Richards Antwort für einige andere gute Vorschläge.

6

Für Server müssen Sie die Rolle Management Tools unter Web Server (IIS) installieren, um das WebAdministration Modul zu verwenden. Um zu sehen, ob Sie das Modul zur Verfügung haben, verwenden Sie Get-Module -ListAvailable.

Für Windows 7 zu 10 müssen Sie das Feature IIS Management Scripts and tools unter Internet Information Services >>Web Management Tools installieren.

Sie könnten versuchen, die Datei WebAdministration .psd1 manuell zu lokalisieren und sie dann zu importieren. Verwenden Sie $env:psmodulepath zu helfen zu lokalisieren, wo Ihre Module gespeichert sind, dann laufen:

Import-Module -Name 'C:\Windows\System32\WindowsPowerShell\v1.0\Modules\WebAdministration\WebAdministration.psd1' 

Wenn Server 2008 Sie folgende versuchen könnte, aber dies auf 2012 möglicherweise nicht und nach oben:

Add-PSSnapin WebAdministration 

Hinweis Sie müssen Führen Sie das Skript mit Administratorrechten aus, um das WebAdministration-Modul mit Import-Module oder Add-PSSnapin laden zu können.

Überprüfen Sie auch, dass Sie PowerShell ‚s-Ausführungsrichtlinie auf Unrestricted haben:

Set-ExecutionPolicy unrestricted 

Vielleicht möchten Sie diese Question sehen.

+0

Vielen Dank für Ihre Antwort @Richard. Leider habe ich die Web-Management-Tools installiert und WebAdministration, wenn ich die verfügbaren Module auflisten. Ich kann es sogar aus der Shell verwenden. Nur wenn ich das Skript ausführe, kann es nicht importiert werden. Irgendeine Idee dazu? – Klee

+0

@Klee Ich habe meine Frage mit einigen Dingen aktualisiert, die Sie versuchen könnten. – Richard

+0

danke. Die erste Antwort hätte wahrscheinlich funktioniert. Die anderen beiden hatte ich schon ausprobiert. Am Ende gab es ein Problem, möglicherweise mit schokoladenbraunen ?, das $ env: PSModulePath auf den ersten Eintrag abgeschnitten hatte, deshalb funktionierte das Skript, wenn ich es eingab, aber nicht im Skript. Ich habe mich darum gekümmert, indem ich die Einträge in $ env: PSModulePath neu geordnet habe. Danke, dass Sie mir geholfen haben. – Klee

Verwandte Themen