1

Meine Module können nicht in den Standardmodulverzeichnissen auf unseren Servern verwendet werden. Sie müssen auf dem E leben: fahren.Automatisches Hinzufügen des Modulpfads mit -NoProfile über die Befehlszeile

Für die Entwicklung kann ich mein Profil ändern, um die Variable $ ENV: PSModulePath zu ändern. Wenn ich jedoch ein Skript einplane und PowerShell über die Befehlszeile aufruft, werden wir angewiesen, den Schalter -NOProfile zu verwenden. Ein typisches Beispiel wäre:

New-ScheduledTaskAction -Execute 'C:\Windows\System32\WindowsPowerShell\v1.0\powershell.exe' -Argument "-windowstyle hidden -NonInteractive -NoLogo -NoProfile -File `"<Path to Script>`"" 

Wie kann ich schließen die Module Pfad von der Befehlszeile ändern, sodass meine Skripte ihre Module ohne Angabe, dass der Pfad in jedem Skript finden kann?

+1

Sie könnten permanent die Umgebungsvariable auf der lokalen Maschine ändern, wie die nur als Schlüssel in der Registry gespeichert wird . Das heißt, es ist besser, in Ihrem Skript die Ressourcen zu definieren, die ausgeführt werden müssen, ohne die externen Problemumgehungen zu verwenden. – BenH

Antwort

0

Sie könnten aufhören, den -NoProfile Schalter zu verwenden, da in diesem Fall Sie es verwenden möchten.

könnten Sie verwenden den -Command Schalter statt -File (und Punkt dann das Skript) Quelle:

powershell.exe -windowstyle hidden -NonInteractive -NoLogo -NoProfile -Command "$env:PSModulePath = (($env:PSModulePath -split ';') + 'E:\Your\Module\Path') -join ';' ; . '<Path to Script>' 
+0

Ich habe Ihren Vorschlag für die Option "Command" verwendet und es funktioniert großartig. Vielen Dank! –

Verwandte Themen