THEMA
about_Remote_Troubleshooting
KURZBESCHREIBUNG
Beschreibt die Fehlerbehebung für Remotevorgänge in Windows PowerShell.
DETAILBESCHREIBUNG
In diesem Abschnitt werden einige der Probleme beschrieben, die
beim Verwenden der auf WS-Verwaltungstechnologie basierenden
Remotingfeatures von Windows PowerShell auftreten können, und es werden
Lösungsansätze für diese Probleme bereitgestellt.
Bevor Sie Windows PowerShell-Remoting verwenden, finden Sie unter
"about_Remote" und "about_Remote_Requirements" Hinweise zur Konfiguration
und Verwendung. Außerdem finden Sie in den Hilfethemen für die einzelnen
Remoting-Cmdlets, insbesondere in den Parameterbeschreibungen, hilfreiche
Informationen, wie Sie Probleme vermeiden können.
Aktualisierte Versionen dieses Themas und anderer Windows
PowerShell-Hilfethemen finden Sie online in der Microsoft TechNet Library.
Fügen Sie zum Anzeigen der Onlineversion dieses Hilfethemas die folgende
URL im Internetbrowser ein:
https://go.microsoft.com/fwlink/?LinkID=135188 (möglicherweise
auf Englisch)
HINWEIS: Wenn Sie unter Windows Vista, Windows Server 2008 und höheren
Versionen von Windows Einstellungen für den lokalen Computer im Laufwerk
"WSMan:" anzeigen oder ändern möchten, einschließlich Änderungen an den
Sitzungskonfigurationen, vertrauenswürdigen Hosts, Ports oder Listenern,
starten Sie Windows PowerShell mit der Option "Als Administrator ausführen".
PROBLEMBEHANDLUNG BEI BERECHTIGUNGS- UND AUTHENTIFIZIERUNGSPROBLEMEN
In diesem Abschnitt werden Remotingprobleme behandelt, die im Zusammenhang
mit Benutzer- und Computerberechtigungen und Remotinganforderungen stehen.
AUSFÜHREN ALS ADMINISTRATOR
---------------------------
FEHLER: Zugriff verweigert. Sie müssen dieses Cmdlet aus einem
Prozess mit erhöhten Berechtigungen ausführen.
Wenn Sie eine Remotesitzung auf dem lokalen Computer starten oder
Einstellungen für den lokalen Computer im Laufwerk "WSMan:" anzeigen oder
ändern möchten, einschließlich Änderungen an den Sitzungskonfigurationen,
vertrauenswürdigen Hosts, Ports oder Listenern, starten Sie Windows
PowerShell mit der Option "Als Administrator ausführen".
So starten Sie Windows PowerShell mit der Option "Als Administrator
ausführen"
-- Klicken Sie mit der rechten Maustaste auf ein Windows PowerShell-Symbol
(bzw. Windows PowerShell ISE-Symbol), und klicken Sie dann auf
"Als Administrator ausführen".
So starten Sie Windows PowerShell in Windows 7 und Windows Server 2008 R2
mit der Option "Als Administrator ausführen"
-- Klicken Sie mit der rechten Maustaste auf der Windows-Taskleiste auf
das Windows PowerShell-Symbol, und klicken Sie dann auf "Als
Administrator ausführen".
Hinweis: In Windows Server 2008 R2 ist das Windows PowerShell
-Symbol standardmäßig auf der Taskleiste fixiert.
AKTIVIEREN VON REMOTING
----------------------
FEHLER: ZUGRIFF VERWEIGERT
- oder -
FEHLER: Die Verbindung mit dem angegebenen Remotehost wurde
zurückgewiesen. Vergewissern Sie sich, dass der WS-Verwaltungsdienst
auf dem Remotehost ausgeführt wird und zum Überwachen der
Anforderungen am korrekten Port und für die entsprechende HTTP-URL
konfiguriert ist.
Es ist keine Konfiguration erforderlich, damit ein Computer Remotebefehle
senden kann. Zum Empfangen von Remotebefehlen muss der Computer jedoch für
Remoting konfiguriert sein. Die Konfiguration umfasst das Starten des
WinRM-Diensts, Festlegen des Starttyps für den WinRM-Dienst auf
"Automatic", Erstellen von Listenern für HTTP- und HTTPS-Verbindungen und
das Erstellen von Standardsitzungskonfigurationen.
Verwenden Sie zum Konfigurieren eines Computers zum Empfangen von
Remotebefehlen das Cmdlet "Enable-PSRemoting". Mit dem folgenden Befehl
werden alle erforderlichen Remoteeinstellungen aktiviert, die
Sitzungskonfigurationen aktiviert und der WinRM-Dienst neu gestartet,
damit die Änderungen wirksam werden.
enable-psremoting
Geben Sie zum Unterdrücken aller Benutzeraufforderungen Folgendes ein:
enable-psremoting -force
Weitere Informationen finden Sie unter "Enable-PSRemoting".
AKTIVIEREN VON REMOTING IN EINEM UNTERNEHMEN
---------------------------------------
FEHLER: ZUGRIFF VERWEIGERT
- oder -
FEHLER: Die Verbindung mit dem angegebenen Remotehost wurde
zurückgewiesen. Vergewissern Sie sich, dass der WS-Verwaltungsdienst
auf dem Remotehost ausgeführt wird und zum Überwachen der
Anforderungen am korrekten Port und für die entsprechende HTTP-URL
konfiguriert ist.
Verwenden Sie die Enable-PSRemoting-Cmdlets, um das Empfangen von
Windows PowerShell-Remotebefehlen und das Annehmen von Verbindungen auf
einem einzelnen Computer zu aktivieren.
Sie können die folgenden skalierten Optionen verwenden, um Remoting für
mehrere Computer in einem Unternehmen zu aktivieren.
-- Aktivieren Sie zum Konfigurieren von Listenern für das Remoting die
Gruppenrichtlinie "Automatische Konfiguration von Listenern zulassen".
Anweisungen finden Sie unter "Aktivieren von Listenern mithilfe von
Gruppenrichtlinien" (siehe unten).
-- Verwenden Sie zum Festlegen des Starttyps von Windows Remote
Management (WinRM) auf "Automatic" auf mehreren Computern das Cmdlet
"Set-Service". Anweisungen finden Sie unter "Festlegen des Starttyps
für den WinRM-Dienst" (siehe unten).
-- Verwenden Sie zum Aktivieren einer Firewallausnahme die
Gruppenrichtlinie "Windows Firewall: Ausnahmen für lokale Ports
zulassen". Anweisungen finden Sie unter "Erstellen einer
Firewallausnahme mithilfe von Gruppenrichtlinien" (siehe unten).
AKTIVIEREN VON LISTENERN MITHILFE VON GRUPPENRICHTLINIEN.
------------------------------------------------
FEHLER: ZUGRIFF VERWEIGERT
- oder -
FEHLER: Die Verbindung mit dem angegebenen Remotehost wurde
zurückgewiesen. Vergewissern Sie sich, dass der WS-Verwaltungsdienst
auf dem Remotehost ausgeführt wird und zum Überwachen der
Anforderungen am korrekten Port und für die entsprechende HTTP-URL
konfiguriert ist.
Wenn Sie die Listener für alle Computer in einer Domäne konfigurieren
möchten, aktivieren Sie die Richtlinie "Automatische Konfiguration von
Listenern zulassen" unter dem folgenden Gruppenrichtlinienpfad:
Computerkonfiguration\Administrative Vorlagen\Windows-Komponente
\Windows Remote Management (WinRM)\WinRM-Dienst
Aktivieren Sie die Richtlinie, und geben Sie die Filter für IPv4
und IPv6 an. Platzhalter (*) sind zulässig.
ERSTELLEN EINER FIREWALLAUSNAHME MITHILFE VON GRUPPENRICHTLINIEN
----------------------------------------------------------
FEHLER: ZUGRIFF VERWEIGERT
- oder -
FEHLER: Die Verbindung mit dem angegebenen Remotehost wurde
zurückgewiesen. Vergewissern Sie sich, dass der WS-Verwaltungsdienst
auf dem Remotehost ausgeführt wird und zum Überwachen der
Anforderungen am korrekten Port und für die entsprechende HTTP-URL
konfiguriert ist.
Wenn Sie eine Firewallausnahme für alle Computer in einer Domäne
aktivieren möchten, aktivieren Sie die Richtlinie "Windows Firewall:
Ausnahmen für lokale Ports zulassen" unter dem folgenden
Gruppenrichtlinienpfad:
Computerkonfiguration\Administrative Vorlagen\Netzwerk
\Netzwerkverbindungen\Windows-Firewall\Domänenprofil
Mit dieser Richtlinie können Mitglieder der Administratorgruppe auf dem
Computer mit der Windows-Firewall in der Systemsteuerung eine
Firewallausnahme für den Windows-Remoteverwaltungsdienst erstellen.
FESTLEGEN DES STARTTYPS FÜR DEN WINRM-DIENST
------------------------------------------------
FEHLER: ZUGRIFF VERWEIGERT
Windows PowerShell-Remoting ist abhängig vom
Windows-Remoteverwaltungsdienst (WinRM). Der Dienst muss ausgeführt
werden, um Remotebefehle zu unterstützen.
Unter Windows Server 2003, Windows Server 2008 und Windows Server 2008 R2
lautet der Starttyp des Windows-Remoteverwaltungsdiensts (WinRM) Automatic.
Unter Windows XP, Windows Vista und Windows 7 ist der WinRM-Dienst
jedoch standardmäßig deaktiviert.
Legen Sie den Starttyp eines Diensts auf einem Remotecomputer mit dem
Cmdlet "Set-Service" fest.
Zum Ausführen des Befehls auf mehreren Computern können Sie eine Textdatei
oder CSV-Datei mit den Computernamen erstellen.
Mit den folgenden Befehlen wird z. B. eine Liste der Computernamen
aus der Datei "Servers.txt" abgerufen und dann der Starttyp des
WinRM-Diensts auf allen Computern auf "Automatic" festgelegt.
C:\PS> $servers = get-content servers.txt
C:\PS> set-service WinRM -computername $servers -startuptype Automatic
Sie können die Ergebnisse mit dem Cmdlet "Get-WMIObject" mit dem
Win32_Service-Objekt anzeigen.
Weitere Informationen finden Sie unter "Set-Service".
ERSTELLEN DER STANDARDSITZUNGSKONFIGURATIONEN
--------------------------------------------------
FEHLER: ZUGRIFF VERWEIGERT
Zum Herstellen einer Verbindung mit dem lokalen Computer und zur
Remoteausführung von Befehlen müssen auf dem lokalen Computer
Sitzungskonfigurationen für Remotebefehle vorhanden sein.
Wenn Sie Enable-PSRemoting verwenden, werden die
Standardsitzungskonfigurationen auf dem lokalen Computer erstellt.
Remotebenutzer verwenden diese Sitzungskonfigurationen, wenn ein
Remotebefehl nicht den ConfigurationName-Parameter einschließt.
Wenn die Standardkonfigurationen auf einem Computer nicht
registriert oder gelöscht wurden, erstellen Sie sie mit dem
Cmdlet "Enable-PSRemoting" neu. Sie können dieses Cmdlet
mehrmals verwenden. Es werden keine Fehler generiert, wenn ein
Feature bereits konfiguriert wurde.
Wenn Sie die Standardsitzungskonfigurationen ändern und die
ursprünglichen Standardsitzungskonfigurationen wiederherstellen möchten,
löschen Sie mit dem Cmdlet "Unregister-PSSessionConfiguration" die
geänderten Sitzungskonfigurationen, und stellen Sie sie dann mit
dem Cmdlet "Enable-PSRemoting" wieder her. Mit Enable-PSRemoting
werden keine vorhandenen Sitzungskonfigurationen geändert.
Hinweis: Wenn Enable-PSRemoting die Standardsitzungskonfiguration
wiederherstellt, werden keine expliziten Sicherheitsbeschreibungen für
die Konfigurationen erstellt. Stattdessen erben die Konfigurationen
die Sicherheitsbeschreibung von RootSDDL, die standardmäßig sicher ist.
Geben Sie zum Anzeigen der RootSDDL-Sicherheitsbeschreibung Folgendes ein:
get-item wsman:\localhost\Service\RootSDDL
Verwenden Sie zum Ändern von RootSDDL das Cmdlet "Set-Item" auf dem
Laufwerk "WSMan:". Verwenden Sie zum Ändern der Sicherheitsbeschreibung
einer Sitzungskonfiguration das Cmdlet "Set-PSSessionConfiguration"
mit dem SecurityDescriptorSDDL-Parameter oder dem
ShowSecurityDescriptorUI-Parameter.
Weitere Informationen zum Laufwerk "WSMan:" finden Sie im
Hilfethema zum WS-Verwaltungsanbieter ("get-help wsman").
BEREITSTELLEN VON ADMINISTRATORANMELDEINFORMATIONEN
----------------------------------------
FEHLER: ZUGRIFF VERWEIGERT
Zum Erstellen einer PSSession oder zum Ausführen von Befehlen auf
einem Remotecomputer muss der aktuelle Benutzer standardmäßig
Mitglied der Gruppe "Administratoren" auf dem Remotecomputer
sein. Anmeldeinformationen sind in einigen Fällen auch dann
erforderlich, wenn der aktuelle Benutzer bei einem Konto
angemeldet ist, das Mitglied der Gruppe "Administratoren" ist.
Wenn der aktuelle Benutzer Mitglied der Administratorgruppe auf
dem Remotecomputer ist oder die Anmeldeinformationen eines Mitglieds
der Administratorgruppe bereitstellen kann, verwenden Sie den
Credential-Parameter des Cmdlets "New-PSSession", "Enter-PSSession"
oder "Invoke-Command" zum Herstellen einer Remoteverbindung.
Mit dem folgenden Befehl werden z. B. die Anmeldeinformationen eines
Administrators bereitgestellt.
Invoke-Command -ComputerName Server01 -Credential Domain01\Admin01
Weitere Informationen zum Credential-Parameter finden Sie unter
"New-PSSession", "Enter-PSSession" oder "Invoke-Command".
AKTIVIEREN VON REMOTING FÜR BENUTZER OHNE ADMINISTRATORRECHTE
---------------------------------------------------
FEHLER: ZUGRIFF VERWEIGERT
Zum Einrichten einer PSSession oder Ausführen eines Befehls auf
einem Remotecomputer muss der Benutzer über die Berechtigung zum
Verwenden der Sitzungskonfigurationen auf dem Remotecomputer
verfügen.
Standardmäßig verfügen nur Mitglieder der Gruppe "Administratoren"
auf einem Computer über die Berechtigung zum Verwenden der
Standardsitzungskonfigurationen. Daher können nur Mitglieder der Gruppe
"Administratoren" eine Remoteverbindung mit dem Computer herstellen.
Damit andere Benutzer eine Verbindung mit dem lokalen Computer
herstellen können, erteilen Sie dem Benutzer Ausführungsberechtigungen
für die Standardsitzungskonfigurationen auf dem lokalen Computer.
Mit dem folgenden Befehl wird ein Eigenschaftenblatt geöffnet, auf dem
Sie die Sicherheitsbeschreibung für die
Microsoft.PowerShell-Standardsitzungskonfiguration auf dem lokalen
Computer ändern können.
Set-PSSessionConfiguration Microsoft.Powershell -ShowSecurityDescriptorUI
Weitere Informationen finden Sie unter "about_Session_Configurations".
AKTIVIEREN VON REMOTING FÜR ADMINISTRATOREN IN ANDEREN DOMÄNEN
----------------------------------------------------------
FEHLER: ZUGRIFF VERWEIGERT
Wenn ein Benutzer in einer anderen Domäne Mitglied der Gruppe
"Administratoren" auf dem lokalen Computer ist, kann der Benutzer mit
Administratorrechten keine Remoteverbindung mit dem lokalen Computer
herstellen. Standardmäßig werden Remoteverbindungen von anderen Domänen
nur mit Berechtigungstoken für Standardbenutzer ausgeführt.
Sie können jedoch mit dem LocalAccountTokenFilterPolicy
-Registrierungseintrag das Standardverhalten ändern und für
Remotebenutzer, die Mitglied der Administratorengruppe sind, das
Ausführen mit Administratorrechten zulassen.
Vorsicht: Mit dem LocalAccountTokenFilterPolicy-Eintrag werden
Remoteeinschränkungen für die Benutzerkontensteuerung
(User Account Control, UAC) für alle Benutzer der entsprechenden
Computer deaktiviert. Machen Sie sich die Auswirkungen dieser
Einstellung bewusst, bevor Sie die Richtlinie ändern.
Legen Sie zum Ändern der Richtlinie mit dem folgenden Befehl den
Wert des LocalAccountTokenFilterPolicy-Registrierungseintrags
auf 1 fest.
C:\PS> new-itemproperty -name LocalAccountTokenFilterPolicy -path `
HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System
-propertyType `DWord -value 1
VERWENDEN EINER IP-ADRESSE IN EINEM REMOTEBEFEHL
-----------------------------------------------------
FEHLER: Der WinRM-Client kann die Anforderung nicht verarbeiten.
Wenn das Authentifizierungsschema nicht Kerberos lautet oder wenn
der Clientcomputer nicht Mitglied einer Domäne ist, muss der
HTTPS-Transport verwendet werden, oder der Zielcomputer muss zur
TrustedHosts-Konfigurationseinstellung hinzugefügt werden.
Die ComputerName-Parameter der Cmdlets "New-PSSession", "Enter
-PSSession" und "Invoke-Command" nehmen eine IP-Adresse als gültigen
Wert an. Da die Kerberos-Authentifizierung jedoch keine IP-Adressen
unterstützt, wird standardmäßig die NTLM-Authentifizierung verwendet,
sobald Sie eine IP-Adresse angeben.
Bei Verwendung der NTLM-Authentifizierung ist für das Remoting das
folgende Verfahren erforderlich.
1. Konfigurieren Sie den Computer für den HTTPS-Transport, oder
fügen Sie die IP-Adressen der Remotecomputer der TrustedHosts-Liste
auf dem lokalen Computer hinzu.
Anweisungen finden Sie unten unter "Hinzufügen eines Computers
zur Liste der vertrauenswürdigen Hosts".
2. Verwenden Sie den Credential-Parameter in allen Remotebefehlen.
Dies ist auch erforderlich, wenn Sie die Anmeldeinformationen
des aktuellen Benutzers senden.
HERSTELLEN EINER REMOTEVERBINDUNG VON EINEM COMPUTER IN EINER ARBEITSGRUPPE
-------------------------------------------------------
FEHLER: Der WinRM-Client kann die Anforderung nicht verarbeiten.
Wenn das Authentifizierungsschema nicht Kerberos lautet oder wenn
der Clientcomputer nicht Mitglied einer Domäne ist, muss der
HTTPS-Transport verwendet werden, oder der Zielcomputer muss zur
TrustedHosts-Konfigurationseinstellung hinzugefügt werden.
Wenn sich der lokale Computer nicht in einer Domäne befindet, ist das
folgende Verfahren für das Remoting erforderlich.
1. Konfigurieren Sie den Computer für den HTTPS-Transport, oder
fügen Sie die Namen der Remotecomputer der TrustedHosts-Liste
auf dem lokalen Computer hinzu.
Anweisungen finden Sie unten unter "Hinzufügen eines Computers
zur Liste der vertrauenswürdigen Hosts".
2. Überprüfen Sie, dass ein Kennwort für den Computer in der Arbeitsgruppe
festgelegt wurde. Wenn kein Kennwort festgelegt wird oder der
Kennwortwert leer ist, können Sie keine Remotebefehle ausführen.
Legen Sie ein Kennwort für das Benutzerkonto über
"Benutzerkonten" in der Systemsteuerung fest.
3. Verwenden Sie den Credential-Parameter in allen Remotebefehlen.
Dies ist auch erforderlich, wenn Sie die Anmeldeinformationen
des aktuellen Benutzers senden.
HINZUFÜGEN EINES COMPUTERS ZUR LISTE DER VERTRAUENSWÜRDIGEN HOSTS
-----------------------------------------------
Das TrustedHosts-Element kann eine durch Trennzeichen getrennte Liste
von Computernamen, IP-Adressen und vollqualifizierten Domänennamen
enthalten. Platzhalter sind zulässig.
Verwenden Sie zum Anzeigen oder Ändern der Liste der vertrauenswürdigen
Hosts das Laufwerk "WSMan:". Das TrustedHost-Element befindet sich im
Knoten "WSMan:\localhost\Client".
Nur Mitglieder der Gruppe "Administratoren" auf dem Computer
verfügen über die Berechtigung zum Ändern der Liste von
vertrauenswürdigen Hosts auf dem Computer.
Vorsicht: Der für das TrustedHosts-Element festgelegte Wert hat
Auswirkungen für alle Benutzer auf dem Computer.
Verwenden Sie den folgenden Befehl, um die Liste der vertrauenswürdigen
Hosts anzuzeigen:
get-item wsman:\localhost\Client\TrustedHosts
Außerdem können Sie mit dem Cmdlet "Set-Location" (Alias = cd)
über das Laufwerk "WSMan:" zum Speicherort navigieren.
Beispiel: "cd WSMan:\localhost\Client; dir".
Wenn Sie alle Computer der Liste der vertrauenswürdigen Hosts
hinzufügen möchten, verwenden Sie den folgenden Befehl, in dem
als ComputerName der Wert "*" (alle) angegeben wird.
set-item wsman:localhost\client\trustedhosts -value *
Sie können auch ein Platzhalterzeichen verwenden, um alle Computer
in einer bestimmten Domäne der Liste der vertrauenswürdigen
Hosts hinzuzufügen. Mit dem folgenden Befehl werden z. B. alle
Computer in der Domäne "Fabrikam" der Liste der vertrauenswürdigen
Hosts hinzugefügt.
set-item wsman:localhost\client\trustedhosts *.fabrikam.com
Wenn Sie die Namen bestimmter Computer der Liste von vertrauenswürdigen
Hosts hinzufügen möchten, verwenden Sie das folgende Befehlsformat:
set-item wsman:\localhost\Client\TrustedHosts -value <Computername>
[,<Computername>]
Dabei muss der Wert <Computername> jeweils das folgende Format aufweisen:
<Computer>.<Domäne>.<Unternehmen>.<Domäne der obersten Ebene>
Beispiel:
set-item wsman:\localhost\Client\TrustedHosts -value
Server01.Domain01.Fabrikam.com
Wenn Sie einen Computernamen einer vorhandenen Liste von
vertrauenswürdigen Hosts hinzufügen möchten, speichern Sie zunächst
den aktuellen Wert in einer Variablen, und legen Sie dann den Wert
auf eine durch Trennzeichen getrennte Liste fest, die die aktuellen
und die neuen Werte enthält.
Wenn Sie z. B. den Computer "Server01" einer vorhandenen Liste von
vertrauenswürdigen Hosts hinzufügen möchten, verwenden Sie den
folgenden Befehl:
$curValue = (get-item wsman:\localhost\Client\TrustedHosts).value
set-item wsman:\localhost\Client\TrustedHosts -value "$curValue,
Server01.Domain01.Fabrikam.com"
Wenn Sie die IP-Adressen von bestimmten Computern der Liste von
vertrauenswürdigen Hosts hinzufügen möchten, verwenden Sie das folgende
Befehlsformat:
set-item wsman:\localhost\Client\TrustedHosts -value <IP-Adresse>
Beispiel:
set-item wsman:\localhost\Client\TrustedHosts -value 172.16.0.0
Wenn Sie einen Computer der TrustedHosts-Liste einer Remotecomputers
hinzufügen möchten, fügen Sie mit dem Cmdlet "Connect-WSMan" einen
Knoten für den Remotecomputer auf dem Laufwerk "WSMan:" auf dem lokalen
Computer hinzu. Fügen Sie dann den Computer mit einem Set-Item-Befehl
hinzu.
Weitere Informationen zum Cmdlet "Connect-WSMan" finden Sie unter
"Connect-WSMan".
PROBLEMBEHANDLUNG BEI PROBLEMEN MIT DER COMPUTERKONFIGURATION
In diesem Abschnitt werden Remotingprobleme behandelt, die im Zusammenhang
mit bestimmten Konfigurationen eines Computer, einer Domäne oder eines
Unternehmens stehen.
KONFIGURIEREN VON REMOTING AUF ALTERNATIVPORTS
--------------------------------------------
FEHLER: Die Verbindung mit dem angegebenen Remotehost wurde
zurückgewiesen. Vergewissern Sie sich, dass der WS-Verwaltungsdienst
auf dem Remotehost ausgeführt wird und zum Überwachen der
Anforderungen am korrekten Port und für die entsprechende HTTP-URL
konfiguriert ist.
Windows PowerShell-Remoting verwendet standardmäßig Port 80 für den
HTTP-Transport. Der Standardport wird immer dann verwendet, wenn der
Benutzer den ConnectionURI-Parameter oder den Port-Parameter in einem
Remotebefehl nicht angibt.
Wenn Sie den von Windows PowerShell verwendeten Standardport ändern
möchten, ändern Sie mit dem Cmdlet "Set-Item" auf dem Laufwerk "WSMan:"
den Port-Wert im Listener-Blattknoten.
Mit dem folgenden Befehl wird beispielsweise der Standardport in
8080 geändert:
set-item wsman:\localhost\listener\listener*\port -value 8080
KONFIGURIEREN VON REMOTING MIT EINEM PROXYSERVER
---------------------------------------------
FEHLER: Der Client kann keine Verbindung mit dem in der Anforderung
angegebenen Ziel herstellen. Stellen Sie sicher, dass der Dienst auf
dem Ziel ausgeführt wird und die Anforderungen akzeptiert.
HTTP-Proxyeinstellungen haben Auswirkungen auf das Windows
PowerShell-Remoting, da hierbei das HTTP-Protokoll verwendet wird. In
Unternehmen mit Proxyservern können Benutzer nicht direkt auf einen
Windows PowerShell-Remotecomputer zugreifen.
Beheben Sie dieses Problem, indem Sie Optionen für Proxyeinstellungen
im Remotebefehl verwenden. Die folgenden Einstellungen sind verfügbar:
- ProxyAccessType
- ProxyAuthentication
- ProxyCredential
Verwenden Sie das folgende Verfahren, um diese Optionen für einen
bestimmten Befehl festzulegen:
1. Erstellen Sie mit den Parametern "ProxyAccessType",
"ProxyAuthentication" und "ProxyCredential" des Cmdlets
"New-PSSessionOption" ein Sitzungsoptionsobjekt mit den
Proxyeinstellungen für das Unternehmen. Speichern Sie das
Optionsobjekt in einer Variablen.
2. Verwenden Sie die Variable mit dem Optionsobjekt als Wert
für den SessionOption-Parameter des Befehls "New
-PSSession", "Enter-PSSession" oder "Invoke-Command".
Mit dem folgenden Befehl erstellen Sie z. B. ein Sitzungsoptionsobjekt
mit Proxysitzungsoptionen. Danach wird mithilfe des Objekts eine
Remotesitzung erstellt.
C:\PS> $SessionOption = New-PSSessionOption -ProxyAccessType
IEConfig ` -ProxyAuthentication Negotiate -ProxyCredential
Domain01\User01
C:\PS> New-PSSession -ConnectionURI https://www.fabrikam.com
Weitere Informationen zum Cmdlet "New-PSSessionOption" finden Sie
unter "New-PSSessionOption".
Wenn Sie diese Optionen für alle Remotebefehle in der aktuellen
Sitzung festlegen möchten, verwenden Sie das von New-PSSessionOption
erstellte Optionsobjekt im Wert der $PSSessionOption-Einstellungsvariablen.
Weitere Informationen über die Einstellungsvariable "$PSSessionOption"
finden Sie unter "about_Preference_Variables".
Wenn Sie diese Optionen für alle Remotebefehle in allen Windows
PowerShell-Sitzungen auf dem lokalen Computer festlegen möchten, fügen
Sie dem Windows PowerShell-Profil die Einstellungsvariable
"$PSSessionOption" hinzu. Weitere Informationen über die Windows
PowerShell-Profile finden Sie unter "about_Profiles".
ERKENNEN EINER 32-BIT-SITZUNG AUF EINEM 64-BIT-COMPUTER
---------------------------------------------------
FEHLER: Die Benennung "<Toolname>" wurde nicht als Name eines Cmdlet,
einer Funktion, einer Skriptdatei oder eines ausführbaren Programms
erkannt. Überprüfen Sie die Schreibweise des Namens, oder ob der
Pfad korrekt ist (sofern enthalten), und wiederholen Sie den Vorgang.
Wenn auf dem Remotecomputer eine 64-Bit-Version von Windows
ausgeführt wird und im Remotebefehl eine 32-Bit-Sitzungskonfiguration
verwendet wird, z. B. Microsoft.PowerShell32, lädt die
Windows-Remoteverwaltung (WinRM) einen WOW64-Prozess, und Windows leitet
automatisch alle Verweise auf das Verzeichnis "%Windir%\System32" zum
Verzeichnis "%windir%\SysWOW64" um.
Wenn Sie daher versuchen, Tools im System32-Verzeichnis zu verwenden,
für die keine Entsprechung im SysWow64-Verzeichnis vorhanden ist, z. B.
"Defrag.exe", können die Tools nicht im Verzeichnis gefunden werden.
Ermitteln Sie mit dem Wert der PROCESSOR_ARCHITECTURE-Umgebungsvariablen
die in der Sitzung verwendete Prozessorarchitektur. Mit dem folgenden
Befehl wird die Prozessorarchitektur der Sitzung in der Variablen "$s"
ermittelt:
C:\PS> $s = new-pssession -computername Server01 -configurationName
CustomShell
C:\PS> invoke-command -session $s {$env:PROCESSOR_ARCHITECTURE} x86
Weitere Informationen zu Sitzungskonfigurationen finden Sie unter
"about_session_configurations".
PROBLEMBEHANDLUNG BEI PROBLEMEN MIT RICHTLINIEN UND EINSTELLUNGEN
In diesem Abschnitt werden Remotingprobleme behandelt, die im
Zusammenhang mit Richtlinien und Einstellungen stehen, die auf
dem lokalen Computer oder Remotecomputern festgelegt wurden.
ÄNDERN DER AUSFÜHRUNGSRICHTLINIE FÜR IMPORT-PSSESSION UND IMPORT-MODULE
-------------------------------------------------------------------------
FEHLER: Import-Module: Die Datei <Dateiname> kann nicht
geladen werden, da die Ausführung von Skripts auf diesem
System deaktiviert ist.
Mit den Cmdlets "Import-PSSession" und "Export-PSSession" werden
Module erstellt, die nicht signierte Skriptdateien und
Formatierungsdateien enthalten.
Zum Importieren der von diesen Cmdlets erstellten Module mit
Import-PSSession oder Import-Module darf die Ausführungsrichtlinie in der
aktuellen Sitzung nicht "Restricted" oder "AllSigned" lauten.
(Informationen über Windows PowerShell-Ausführungsrichtlinien finden Sie
unter "about_Execution_Policies".)
Wenn die Module importiert werden sollen, ohne die in der Registrierung
festgelegte Ausführungsrichtlinie für den lokalen Computer zu ändern,
verwenden Sie den Scope-Parameter von Set-ExecutionPolicy, um eine weniger
restriktive Ausführungsrichtlinie für einen einzelnen Prozess festzulegen.
Mit dem folgenden Befehl wird z. B. ein Prozess mit der
Ausführungsrichtlinie "RemoteSigned" gestartet. Diese Änderung der
Ausführungsrichtlinie hat nur Auswirkungen auf den aktuellen Prozess.
Die Windows PowerShell-Registrierungseinstellung "ExecutionPolicy" wird
nicht geändert.
set-executionpolicy -scope process -executionpolicy RemoteSigned
Sie können mit dem ExecutionPolicy-Parameter von "PowerShell.exe" auch
eine einzelne Sitzung mit einer weniger restriktiven
Ausführungsrichtlinie starten.
powershell.exe -executionpolicy RemoteSigned
Weitere Informationen zu den Cmdlets finden Sie unter "Import-PSSession",
"Export-PSSession" und "Import-Module". Weitere Informationen über
Ausführungsrichtlinien finden Sie unter "about_Execution_Policies". Weitere
Informationen über die Hilfeoptionen für die PowerShell.exe-Konsole
erhalten Sie mit folgendem Befehl: "powershell.exe -?".
FESTLEGEN UND ÄNDERN VON KONTINGENTEN
----------------------------
FEHLER: Die Gesamtmenge der Daten, die vom Remoteclient empfangen
wurden, überschreiten das zulässige Maximum.
Sie können mit Kontingenten den lokalen Computer und den Remotecomputer
vor unbeabsichtigter oder böswilliger übermäßiger Ressourcenauslastung
schützen.
In der grundlegenden Konfiguration sind die folgenden Kontingente
verfügbar.
-- Der WS-Verwaltungsanbieter (WSMan:) stellt eine Reihe von
Kontingenteinstellungen bereit, z. B. die MaxEnvelopeSizeKB-Einstellung
und die MaxProviderRequests-Einstellung im Knoten
"WSMan:\<Computername>" sowie die Einstellungen
"MaxConcurrentOperations", "MaxConcurrentOperationsPerUser" und
"MaxConnections" im Knoten "WSMan:\<Computername>\Service".
-- Sie können den lokalen Computer mithilfe des
MaximumReceivedDataSizePerCommandMB-Parameters und des
MaximumReceivedObjectSizeMB-Parameters des Cmdlets
"New-PSSessionOption" und der Einstellungsvariablen "$PSSessionOption"
schützen.
-- Sie können den Remotecomputer durch das Hinzufügen von Einschränkungen
in Sitzungskonfigurationen schützen, z. B. mithilfe des
MaximumReceivedDataSizePerCommandMB-Parameters und des
MaximumReceivedObjectSizeMB-Parameters des Cmdlets
"Register-PSSessionConfiguration".
Wenn Kontingente zu Konflikten mit einem Befehl führen, generiert
Windows PowerShell einen Fehler.
Ändern Sie zum Beheben des Fehlers den Remotebefehl so, dass er
mit dem Kontingent übereinstimmt. Sie können auch die Quelle des
Kontingents ermitteln und dann das Kontingent so erhöhen, dass
der Befehl ausgeführt werden kann.
Mit dem folgenden Befehl wird beispielsweise das Objektgrößenkontingent
in der Microsoft.PowerShell-Sitzungskonfiguration auf dem Remotecomputer
von 10 MB (dem Standardwert) auf 11 MB erhöht.
Set-PSSessionConfiguration -name microsoft.powershell `
-MaximumReceivedObjectSizeMB 11 -Force
Weitere Informationen über das Cmdlet "New-PSSessionOption" finden
Sie unter "New-PSSessionOption".
Weitere Informationen zu den WS-Verwaltungskontingenten finden Sie
im Hilfethema für den WS-Verwaltungsanbieter (geben Sie "get-help WSMan"
ein).
BEHEBEN VON TIMEOUTFEHLERN
-----------------------------
ERROR: Der WS-Verwaltungsdienst kann den Vorgang nicht innerhalb der
in "OperationTimeout" angegebenen Zeit abschließen.
Sie können mit Timeouts den lokalen Computer und den Remotecomputer vor
unbeabsichtigter oder böswilliger übermäßiger Ressourcenauslastung
schützen. Wenn auf dem lokalen und auf dem Remotecomputer Timeouts
festgelegt werden, verwendet Windows PowerShell den kürzeren Timeoutwert.
In der grundlegenden Konfiguration sind die folgenden Timeouts verfügbar.
-- Der WS-Verwaltungsanbieter (WSMan:) stellt eine Reihe von
clientseitigen und dienstseitigen Timeouteinstellungen bereit, z. B.
die Einstellung "MaxTimeoutms" im Knoten "WSMan:\<Computername>" und
die Einstellungen "EnumerationTimeoutms" und
"MaxPacketRetrievalTimeSeconds" im Knoten
"WSMan:\<Computername>\Service".
-- Sie können den lokalen Computer mithilfe der Parameter
"CancelTimeout", "IdleTimeout", "OpenTimeout" und "OperationTimeout"
des Cmdlets "New-PSSessionOption" und der Einstellungsvariablen
"$PSSessionOption" schützen.
-- Sie können den Remotecomputer auch schützen, indem Sie Timeoutwerte
programmgesteuert in der Sitzungskonfiguration für die Sitzung
festlegen.
Wenn ein Timeoutwert das Abschließen eines Vorgangs nicht zulässt,
beendet Windows PowerShell den Vorgang und generiert einen Fehler.
Ändern Sie zum Beheben des Fehlers den Befehl, sodass er innerhalb
des Timeouts abgeschlossen werden kann, oder bestimmen Sie die Quelle des
Timeoutlimits, und erhöhen Sie den Timeoutwert so, dass der Befehl
abgeschlossen werden kann.
In den folgenden Befehlen wird z. B. mit dem Cmdlet "New-PSSessionOption"
ein Sitzungsoptionsobjekt mit einem OperationTimeout-Wert von 4 Minuten
(in ms) angegeben. Danach wird mit dem Sitzungsoptionsobjekt eine
Remotesitzung erstellt.
C:\PS> $pso = new-pssessionoption -operationtimeout 240000
C:\PS> new-pssession -computername Server01 -sessionOption $pso
Weitere Informationen zu den WS-Verwaltungstimeouts finden Sie im
Hilfethema für den WS-Verwaltungsanbieter (geben Sie "get-help WSMan" ein).
Weitere Informationen über das Cmdlet "New-PSSessionOption" finden
Sie unter "New-PSSessionOption".
PROBLEMBEHANDLUNG BEI NICHT MEHR REAGIERENDEN REMOTINGVORGÄNGEN
In diesem Abschnitt werden Remotingprobleme behandelt, durch die verhindert
wird, dass ein Befehl abgeschlossen wird, und die das Zurückkehren zur
Windows PowerShell-Eingabeaufforderung verhindern oder verzögern.
UNTERBRECHEN EINES BEFEHLS
--------------------------
Einige systemeigene Windows-Programme, z. B. Programme mit einer
Benutzeroberfläche, Konsolenanwendungen mit Eingabeaufforderungen und
Konsolenanwendungen, die die Win32-Konsolen-API verwenden, funktionieren
im Windows PowerShell-Remotehost nicht ordnungsgemäß.
Wenn Sie diese Programme verwenden, kommt es möglicherweise zu
unerwartetem Verhalten, z. B. fehlende Ausgabe, teilweise Ausgabe oder
nicht abgeschlossene Remotebefehle.
Drücken Sie zum Beenden eines nicht reagierenden Programms STRG+C.
Wenn Sie Fehler anzeigen möchten, die möglicherweise gemeldet wurden,
geben Sie auf dem lokalen Host und in der Remotesitzung "$error" ein.
SIEHE AUCH
Onlineversion: https://go.microsoft.com/fwlink/?LinkID=135188
(möglicherweise auf Englisch)
about_remote
about_remote_requirements