Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
Dieser Artikel enthält eine Lösung für ein Problem, das unerwartet beendet wird, Enter-PSSession
wenn ein Netzwerkpfad in PSModulePath angegeben wird.
Ursprüngliche KB-Nummer: 4076842
Symptom
Wenn ein Netzwerkpfad in der PSModulePath-Umgebungsvariable angegeben wird, schlägt das Enter-PSSession
Cmdlet fehl, und Sie erhalten die folgende Fehlermeldung:
Enter-PSSession: Der Befehl "Measure-Object" wurde im Modul "Microsoft.PowerShell.Utility" gefunden, aber das Modul konnte nicht geladen werden. Weitere Informationen finden Sie unter "Import-Module Microsoft.PowerShell.Utility".
Zeile:1 Zeichen:1
+ ENTER-PSSession-server_name
+ ~~~~~~~~~~~~~~~~~~~~~~~~
+ CategoryInfo : ObjectNotFound: (Measure-Object:String) [Enter-PSSession], CommandNotFoundException
+ FullyQualifiedErrorId : CouldNotAutoloadMatchingModule
Ursache
Wenn eine PowerShell-Sitzung erstellt und über Kerberos authentifiziert wird, unterstützt die Sitzung keinen doppelten Hop. Die PowerShell-Sitzung kann sich also nicht mithilfe von Netzwerkressourcen authentifizieren.
Wenn PowerShell versucht, die Module im Netzwerkpfad aufzulisten, schlägt der Vorgang mit dem Fehler "Zugriff verweigert" fehl, und der Befehl wird unerwartet beendet.
Lösung
Um das Problem zu beheben, erstellen Sie die PowerShell-Sitzung, um sich bei CredSSP zu authentifizieren. Es muss im Voraus konfiguriert werden. Führen Sie auf dem Computer, der das Ziel des Enter-PSSession
Befehls ist, den folgenden Befehl aus:
Enable-WSManCredSSP -Role Server
Führen Sie auf dem Computer, auf dem Sie den Enter-PSSession
Befehl ausführen, den folgenden Befehl aus:
Enable-WSManCredSSP -Role Client -DelegateComputer Server_name
Notiz
Server_name ist der Name des Computers, der das Ziel des Enter-PSSession
Befehls ist.
Jedes Mal, wenn dieser Befehl ausgeführt wird, wird der Liste die angegebene Server_name hinzugefügt. Die Liste wird im folgenden Registrierungsunterschlüssel gespeichert:
HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\Windows\CredentialsDelegation\AllowFreshCredentials
Führen Sie den Get-WSManCredSSP
Befehl aus, um den Status der CredSSP-Konfiguration anzuzeigen.
Nachdem CredSSP aktiviert wurde, können Sie sich mithilfe dieses Befehls über CredSSP authentifizieren:
Enter-PSSession server_name -Authentication CredSSP -Credential (Get-Credential user_name)
Problemumgehung
Um dieses Problem zu umgehen, ordnen Sie die Netzwerkfreigabe einem Laufwerkbuchstaben zu, z S:
. B. und legen Sie dann den Laufwerkbuchstaben in den PSModulePath
. Ein Laufwerkbuchstaben, der auf eine Netzwerkfreigabe verweist, führt nicht zum unerwarteten Beenden von Enter-PSSession
.
In der Remote-PowerShell-Sitzung ist der zugeordnete Laufwerkbuchstaben jedoch nicht verfügbar, und die Module in der Netzwerkfreigabe sind weiterhin nicht verfügbar. Nur die lokalen Module sind verfügbar.
Diese Problemumgehung verhindert nur den Enter-PSSession
Absturz, während normale PowerShell-Sitzungen Zugriff auf die Module haben können, die sich in der Netzwerkfreigabe befinden.