Beschreibt die Fehlerbehebung für Remotevorgänge in Windows PowerShell. (about_remote_troubleshooting)
THEMAabout_Remote_TroubleshootingKURZBESCHREIBUNGBeschreibt die Fehlerbehebung für Remotevorgänge in Windows PowerShell.DETAILBESCHREIBUNGIn 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: http://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: http://go.microsoft.com/fwlink/?LinkID=135188 (möglicherweise auf Englisch) about_remote about_remote_requirements C:\Windows>powershell get-help about_requires -full
Microsoft Windows [Version 10.0.19045.3693]
Copyright (c) 2023 Microsoft Corporation.
ColorConsole [Version 3.7.1000] PowerShell 2.0-Export