Powershell zeigt, dass PSModulePath verdoppelt ist

432
sirdank

Hier ist mein Problem:

PS C:\windows\system32> $env:PSModulePath.Replace(';',"`n") C:\Users\sirdank\Documents\WindowsPowerShell\Modules C:\Program Files\WindowsPowerShell\Modules C:\windows\system32\WindowsPowerShell\v1.0\Modules C:\Program Files (x86)\Microsoft SQLServer\120\Tools\PowerShell\Modules\ C:\Program Files(x86)\Microsoft SDKs\Azure\PowerShell\ResourceManager\AzureResourceManager\ C:\Program Files (x86)\Microsoft SDKs\Azure\PowerShell\ServiceManagement\ C:\Users\sirdank\Documents\WindowsPowerShell\Modules C:\Program Files\WindowsPowerShell\Modules C:\windows\system32\WindowsPowerShell\v1.0\Modules C:\Program Files (x86)\Microsoft SQLServer\120\Tools\PowerShell\Modules\ C:\Program Files(x86)\Microsoft SDKs\Azure\PowerShell\ResourceManager\AzureResourceManager\ C:\Program Files (x86)\Microsoft SDKs\Azure\PowerShell\ServiceManagement\ C:\ProgramFiles (x86)\Microsoft SDKs\Azure\PowerShell\Storage\ 

Dies geschah nach dem Ausführen, Get-Module xWebAdministrationweil ich die Konfiguration des gewünschten Azure-Status verwenden möchte. Seitdem habe ich es versucht

  • Ändern von PSModulePath über die Systemsteuerung
  • Ändern mit SETX
  • Ändern mit [Environment] :: SetEnvironmentVariable ()
  • Überprüfen Sie alle sechs Powershell-Profile, um zu sehen, ob sie es ändern (es existiert keines).
  • Starten Sie meinen Laptop zweimal neu

Keines dieser Dinge hat mein Problem behoben. Wenn ich in der Systemsteuerung nachschaue, scheint PSModulePath richtig eingestellt zu sein. Wenn ich jedoch Powershell öffne, wird oben immer noch die Ausgabe angezeigt, und DSC funktioniert immer noch nicht, da es zweimal versucht, xWebAdministration zu erhalten. Wie repariere ich mein PSModulePath?

1

2 Antworten auf die Frage

0
sirdank

Ich habe wieder Powershell, aber ich musste $Home\Documents\Profile.ps1mit dem Inhalt erstellen

$env:PSModulePath = [string]::join(';', ($env:PSModulePath -Split ';' | % {$_.TrimEnd('\')} | Sort-Object -Unique)) 
0
Ben N

Wenn PSModulePathsowohl eine Benutzervariable als auch eine Systemvariable festgelegt ist, werden die beiden wie auch kombiniert PATH. Seltsamerweise wird nur die Benutzervariable in der Eingabeaufforderung angezeigt, wenn dies echo %PSModulePath%jedoch $env:PSModulePathder Fall ist. In PowerShell wird jedoch der tatsächliche kombinierte Wert angezeigt, genau wie der ursprüngliche Stapelbefehl, wenn Sie cmdvon PowerShell aus starten . Es scheint, dass die Modulordner, die von Ihren Dokumenten und von Programmdateien stammen, zur Laufzeit von PowerShell hinzugefügt werden. Sie müssen daher nicht von Umgebungsvariablen bereitgestellt werden.

Um die Modulpfade zu deduplizieren, entfernen Sie die zusätzliche Umgebungsvariable oder bearbeiten Sie sie, um keine Ordner zu wiederholen.