about_Remote_FAQ

Letzte Aktualisierung: Mai 2014

Betrifft: Windows PowerShell 2.0, Windows PowerShell 3.0, Windows PowerShell 4.0, Windows PowerShell 5.0

THEMA

about_Remote_FAQ

KURZE BESCHREIBUNG

Enthält Fragen und Antworten zum Ausführen von Remote-Befehlen in Windows PowerShell®.

LANGE BESCHREIBUNG

Bei der Remote-Arbeitsweise geben Sie Befehle in Windows PowerShell auf einem Computer (als der „lokale Computer“ bezeichnet) ein, aber die Befehle werden auf einem anderen Computer (als „Remote-Computer“ bezeichnet) ausgeführt. Das Erfahrung bei der Remote-Arbeit sollte so weit wie möglich der Arbeit direkt am Remote-Computer ähneln.

Hinweis: Um das Windows PowerShell-Remoting verwenden zu können, muss der Remote-Computer für das Remoting konfiguriert sein. Weitere Informationen finden Sie unter %%amp;quot;about_Remote_Requirements%%amp;quot;.

MUSS AUF BEIDEN COMPUTERN WINDOWS POWERSHELL INSTALLIERT SEIN?

Ja. Für die Remote-Arbeit müssen sowohl der lokalen als auch der Remote-Computer über Windows PowerShell, Microsoft .NET Framework und das Protokoll „Web Services for Management“ (WS-Management) verfügen. Alle Dateien und andere Ressourcen, die zur Ausführung eines bestimmten Befehls erforderlich sind, müssen auf dem Remote-Computer vorhanden sein.

Zwischen Computern, auf denen Windows PowerShell 3.0 ausgeführt wird, und Computern, auf denen Windows PowerShell 2.0 ausgeführt wird, kann keine Remote-Verbindung hergestellt werden, weshalb auch keine Remote-Befehle ausgeführt werden können. Einige Funktionen, wie z. B. die Möglichkeit, eine Sitzung zu trennen und wiederherzustellen, funktionieren jedoch nur, wenn auf beiden Computern Windows PowerShell 3.0 ausgeführt wird.

Sie benötigen die Berechtigung zum Verbindungsaufbau mit dem Remote-Computer, die Berechtigung zum Ausführen von Windows PowerShell sowie die Berechtigung zum Zugriff auf Datenspeicher (z. B. Dateien und Ordner) und auf die Registrierung auf dem Remote-Computer.

Weitere Informationen finden Sie unter %%amp;quot;about_Remote_Requirements%%amp;quot;.

FUNKTIONSWEISE VON REMOTING

Wenn Sie einen Remote-Befehl senden, wird der Befehl über das Netzwerk an die Windows PowerShell-Engine auf dem Remote-Computer übertragen, und er wird im Windows PowerShell-Client auf dem Remote-Computer ausgeführt. Die Befehlsergebnisse werden zum lokalen Computer zurückgesendet und werden in der Windows PowerShell-Sitzung auf dem lokalen Computer angezeigt.

Zum Übertragen der Befehle und zum Empfangen der Ausgabe verwendet Windows PowerShell das WS-Management-Protokoll. Informationen zum WS-Management-Protokoll finden Sie unter „WS-Management Protocol“ in der MSDN (Microsoft Developer Network)-Bibliothek unter https://go.microsoft.com/fwlink/?LinkId=144634.

Ab Windows PowerShell 3.0 werden die Remote-Sitzungen auf dem Remote-Computer gespeichert. So können Sie die Verbindung zur Sitzung trennen und von einer anderen Sitzung oder einem anderen Computer aus die Verbindung wiederherstellen, ohne die Befehle zu unterbrechen und ohne, dass der Sitzungsstatus verloren geht.

IST DAS WINDOWS POWERSHELL-REMOTING SICHER?

Wenn Sie eine Verbindung zu einem Remote-Computer herstellen, verwendet das System die Anmeldeinformationen (Name und Kennwort des Benutzers) auf dem lokalen Computer oder die Anmeldeinformationen, die Sie im Befehl eingeben, um sich am Remote-Computer anzumelden. Die Anmeldeinformationen und die sonstige Übertragung werden verschlüsselt.

Als zusätzliche Schutzmaßnahme können Sie den Remote-Computer so konfigurieren, dass er zum Empfangen von WinRM-Anfragen (Windows Remote Management) nicht HTTP verwendet, sondern Secure Sockets Layer (SSL). Benutzer können dann die UseSSL-Parameter der Invoke-Command-, New-PSSession- und Enter-PSSession-Cmdlets verwenden, um eine Verbindung herzustellen. Bei dieser Option wird den sicherere HTTPS-Kanal anstelle von HTTP verwendet.

ERFORDERN ALLE REMOTE-BEFEHLE WINDOWS POWERSHELL-REMOTING?

Nein. Mehrere Cmdlets verfügen über einen ComputerName-Parameter, mit dem Sie Objekte vom Remote-Computer abrufen können.

Diese Cmdlets verwenden nicht das Windows PowerShell-Remoting. Daher können sie diese auf jedem Computer verwenden, auf dem Windows PowerShell ausgeführt wird, selbst wenn der Computer nicht für Windows PowerShell-Remoting konfiguriert ist oder wenn der Computer nicht über die Anforderungen für das Windows PowerShell-Remoting erfüllt.

Es handelt sich dabei um die folgenden Cmdlets:

       Get-Process
       Get-Service
       Get-WinEvent
       Get-EventLog
       Get-WmiObject
       Test-Connection

Um eine Liste aller Cmdlets mit einem ComputerName-Parameter zu finden, geben Sie Folgendes ein:

        Get-Help * -Parameter ComputerName
        or 
        Get-Command -ParameterName ComputerName

Um festzustellen, ob der ComputerName-Parameter eines bestimmten Cmdlets das Windows PowerShell-Remoting erfordert, müssen Sie die Parameterbeschreibung überprüfen. Zum Anzeigen der Parameterbeschreibung geben Sie Folgendes ein:

        Get-Help <cmdlet-name> -Parameter ComputerName

Beispiel:

        Get-Help Get-Process -Parameter Computername

Für alle anderen Befehle verwenden Sie das Invoke-Cmdlet.

WIE FÜHRE ICH EINEN BEFEHL AUF EINEM REMOTE-COMPUTER AUS?

Um einen Befehl auf einem Remote-Computer auszuführen, verwenden Sie das Invoke-Command-Cmdlet.

Der eigentliche Befehl wird in geschweifte Klammern ({}) eingeschlossen, um ihn in einen Skriptblock zu verwandeln. Verwenden Sie den SkriptBlock-Parameter von Invoke-Command, um den Befehl anzugeben.

Mit dem ComputerName-Parameter von Invoke-Command können Sie einen Remote-Computer angeben. Oder Sie können eine dauerhafte Verbindung mit einem Remote-Computer (eine Sitzung) erstellen und dann den Session-Parameter von Invoke-Command verwenden, um den Befehls in der Sitzung auszuführen.

Zum Beispiel wird mit den folgenden Befehlen einen Get-Process-Befehl auf einem Remote-Computer ausgeführt.

      Invoke-Command -ComputerName Server01, Server02 -ScriptBlock {Get-Process}

        - OR -

      Invoke-Command -Session $s -ScriptBlock {Get-Process}

Um einen Remote-Befehl zu unterbrechen, drücken Sie STRG+C. Die Unterbrechungsanforderung wird an den Remote-Computer übergeben, wo der Remote-Befehl beendet wird.

Weitere Informationen über Remote-Befehle finden Sie unter „about_Remote“ und in den Hilfethemen für die Cmdlets, die das Remoting unterstützen.

KANN ICH EINFACH EINE TELNET-VERBINDUJNG ZU EINEM REMOTE-COMPUTER HERSTELLEN?

Sie das können das Enter-PSSession-Cmdlet verwenden, um eine interaktive Sitzung mit einem Remote-Computer zu starten.

Geben Sie an der Windows PowerShell-Befehlszeile ein:

        Enter-PSSession <ComputerName>

Die Befehlszeile ändert sich, um anzuzeigen, dass Sie mit dem Remote-Computer verbunden sind.

        <ComputerName>\C:>

Jetzt werden die von Ihnen eingegebenen Befehle auf dem Remote-Computer ausgeführt, als würden Sie sie direkt auf dem Remote-Computer eingeben.

Um die interaktive Sitzung zu beenden, geben Sie Folgendes ein:

        Exit-PSSession

Eine interaktive Sitzung ist eine dauerhafte Sitzung, die das WS-Managementprotokoll verwendet. Es ist nicht identisch mit dem Verwenden von Telnet, aber es bietet ein ähnliches Verhalten.

Weitere Informationen finden Sie unter „Enter-PSSession“.

KANN ICH EINE DAUERHAFTE VERBINDUNG ERSTELLEN?

Ja. Sie können Remote-Befehle ausführen, indem Sie den Namen des Remote-Computers, seinen NetBIOS-Namen oder seine IP-Adresse angeben. Oder Sie können Remote-Befehle ausführen, indem Sie eine Windows PowerShell-Sitzung (PSSession) angeben, die mit dem Remote-Computer verbunden ist.

Bei Verwendung des ComputerName-Parameters von Invoke-Command oder Enter-PSSession stellt Windows PowerShell eine temporäre Verbindung her. Windows PowerShell verwendet diese Verbindung nur zur Ausführung des aktuellen Befehls und schließt danach die Verbindung wieder. Dies ist eine sehr effiziente Methode, um einen einzelnen Befehl oder mehrere unabhängige Befehle auszuführen, selbst auf vielen Remote-Computern.

Wenn Sie das New-PSSession-Cmdlet verwenden, um eine PSSession zu erstellen, richtet Windows PowerShell eine dauerhafte Verbindung für die PSSession ein. Anschließend können Sie mehrere Befehle in der PSSession ausführen, einschließlich Befehle, die Daten gemeinsam nutzen.Abschnittstext hier einfügen.

Üblicherweise verwenden Sie eine PSSession, um eine Reihe verwandter Befehle auszuführen, die Daten gemeinsam nutzen. Ansonsten ist die temporäre Verbindung, die durch den ComputerName-Parameter erstellt wird, für die meisten Befehle ausreichend.

Weitere Informationen über Sitzungen finden Sie unter „about_PSSessions“.

KANN ICH BEFEHLE AUF MEHREREN COMPUTERN GLEICHZEITIG AUSFÜHREN?

Ja. Der ComputerName-Parameter des Invoke-Command-Cmdlets akzeptiert mehrere Computernamen, und der Session-Parameter akzeptiert mehrere PSSessions.

Wenn Sie einen Invoke-Command-Befehl ausführen, führt Windows PowerShell die Befehle auf allen angegebenen Computern oder in allen angegebenen PSSessions aus.

Windows PowerShell ist in der Lage, Hunderte von gleichzeitigen Remote-Verbindungen zu verwalten. Allerdings kann die Anzahl der remote-Befehle, die Sie senden können, durch die Ressourcen des Computers und seine Kapazität zum Einrichten und Verwalten von mehreren Netzwerkschnittstellen beschränkt sein.

Weitere Informationen finden Sie im Beispiel des Hilfethemas zu „Invoke-Command“.

WO SIND MEINE PROFILE?

Windows PowerShell-Profile werden in Remote-Sitzungen nicht automatisch ausgeführt, sodass die Befehle, die vom Profil hinzugefügt werden, in der Sitzung nicht vorhanden sind. Darüber hinaus wird die automatische Variable „$profile“ in Remote-Sitzungen nicht aufgefüllt.

Um ein Profil in einer Sitzung auszuführen, verwenden Sie das Invoke-Command-Cmdlet.

Der folgende Befehl führt beispielsweise das CurrentUserCurrentHost-Profil vom lokalen Computer in der Sitzung in $s aus.

        Invoke-Command -Session $s -FilePath $profile

Der folgende Befehl führt das CurrentUserCurrentHost-Profil vom Remote-Computer in der Sitzung in $s aus. Da die $profile-Variable nicht aufgefüllt wird, verwendet der Befehl den expliziten Pfad zum Profil.

        Invoke-Command -Session $s {. "$home\Documents\WindowsPowerShell\Microsoft.PowerShell_profile.ps1"}

Nach der Ausführung dieses Befehls sind die Befehle, die der Sitzung durch das Profil hinzugefügt werden, in $s verfügbar.

Sie können auch ein Startskript in einer Sitzungskonfiguration verwenden, um ein Profil in jeder Remote-Sitzung auszuführen, die diese Sitzungskonfiguration verwendet.

Weitere Informationen zu Windows PowerShell-Profilen finden Sie unter „about_Profiles“. Weitere Informationen zu Sitzungskonfigurationen finden Sie unter „Register-PSSessionConfiguration“.

WIE FUNKTIONIERT DIE DROSSELUNG BEI REMOTE-BEFEHLEN?

Zur besseren Verwaltung der Ressourcen auf dem lokalen Computer verfügt Windows PowerShell über eine befehlsbasierte Drosselungsfunktion, mit der Sie die Anzahl gleichzeitiger Remote-Verbindungen begrenzen können, die für jeden Befehl eingerichtet werden.

Der Standardwert sind 32 gleichzeitige Verbindungen, jedoch können Sie mit dem ThrottleLimit-Parameter der Cmdlets eine benutzerdefinierte Drosselungsgrenze für bestimmte Befehle festlegen.

Wenn Sie die Drosselungsfunktion verwenden, sollten Sie daran denken, dass diese zwar für jeden Befehl gilt, nicht jedoch für die gesamte Sitzung oder den Computer. Wenn Sie Befehle gleichzeitig in mehreren Sitzungen oder PSSessions ausführen, entspricht die Anzahl der gleichzeitigen Verbindungen der Summe der gleichzeitigen Verbindungen in allen Sitzungen.

Um die Cmdlets mit einem ThrottleLimit-Parameter zu finden, geben Sie Folgendes ein:

      Get-Help * -Parameter ThrottleLimit
      -or-
      Get-Command -ParameterName ThrottleLimit

UNTERSCHEIDET SICH DIE AUSGABE VON REMOTE-BEFEHLEN VON DER LOKALEN AUSGABE?

Wenn Sie Windows PowerShell lokal verwenden, senden und empfangen Sie „aktive“ .NET Framework-Objekte. Aktive Objekte sind Objekte, die tatsächlichen Programmen oder Systemkomponenten zugeordnet sind. Wenn Sie die Methoden aufrufen oder die Eigenschaften von aktiven Objekten ändern, wirken sich die Änderungen auf die tatsächliche Anwendung oder Komponente aus. Und wenn sich die Eigenschaften eines Programms oder einer Komponente ändern, ändern sich auch die Eigenschaften des Objekts, das das Programm bzw. die Komponente repräsentiert,.

Da jedoch die meisten live Objekte können nicht über das Netzwerk übertragen werden können, „serialisiert“ Windows PowerShell die meisten in Remote-Befehle gesendeten Objekte, d. h. es wandelt jedes Objekt für die Übertragung in eine Reihe von XML-Datenelementen (Constraint Language in XML [CLiXML]) um.

Wenn Windows PowerShell ein serialisiertes Objekt empfängt, wandelt es den XML-Code wieder in einen deserialisierten Objekttyp um. Das deserialisierte Objekt ist eine exakte Aufzeichnung der Eigenschaften des Programms bzw. der Komponente zu einem früheren Zeitpunkt, aber diese sind nicht mehr „aktiv“, d. h. sie sind nicht mehr direkt der Komponente zugeordnet. Und die Methoden werden entfernt, da sie nicht mehr wirksam sind.

In der Regel können Sie deserialisierten Objekte genau wie aktive Objekte verwenden, aber Sie müssen sich ihrer Einschränkungen bewusst sein. Außerdem verfügen die Objekte, die vom Invoke-Command-Cmdlet zurückgegeben werden, über zusätzliche Eigenschaften, mit denen Sie einfach den Ursprung des Befehls ermittel können.

Einige Objekttypen, z. B. DirectoryInfo-Objekten und GUIDs, werden wieder in aktive Objekte umgewandelt, wenn sie empfangen werden. Diese Objekte bedürfen keiner besonderen Behandlung oder Formatierung.

Informationen zum Interpretieren und Formatieren der Remote-Ausgabe finden Sie unter „about_Remote_Output“.

KANN ICH HINTERGRUNDAUFTRÄGE REMOTE AUSFÜHREN?

Ja. Ein Windows PowerShell-Hintergrundauftrag ist ein Windows PowerShell-Befehl, der asynchron ausgeführt wird, ohne mit der Sitzung zu interagieren. Wenn Sie einen Hintergrundauftrag starten, wird sofort die Befehlszeile zurückgegeben, und können Sie weiter in der Sitzung arbeiten, während der Auftrag ausgeführt wird, auch wenn seine Ausführung einen längeren Zeitraum in Anspruch nimmt.

Sie können sogar einen Hintergrundauftrag starten, während andere Befehle ausgeführt werden, da Hintergrundaufträge immer asynchron in eine temporären Sitzung ausgeführt werden.Abschnittstext hier einfügen.

Sie können Hintergrundaufträge auf einem lokalen Computer oder einem Remote-Computer ausführen. Ein Hintergrundauftrag wird standardmäßig auf dem lokalen Computer ausgeführt. Allerdings können Sie den AsJob-Parameter des Invoke-Command-Cmdlets verwenden, um jeden Remote-Befehl als Hintergrundauftrag auszuführen. Und Sie können Invoke-Command verwenden, um einen Start-Job-Befehl remote auszuführen.

Weitere Informationen zu Hintergrundaufträgen in Windows PowerShell finden Sie unter „about_Jobs“ und „about_Remote_Jobs“.

KANN ICH WINDOWS-PROGRAMME AUF EINEM REMOTE-COMPUTER AUSFÜHREN?

Sie können Windows PowerShell-Remote-Befehle verwenden, um Windows-basierte Programme auf Remote-Computern auszuführen. Sie können z. B. Shutdown.exe oder Ipconfig auf einem Remote-Computer ausführen.

Allerdings können Sie keine Windows PowerShell-Befehle ausführen, um die Benutzeroberfläche für ein Programm auf einem Remote-Computer zu öffnen.

Wenn Sie ein Windows-Programm auf einem Remote-Computer starten, wird der Befehl nicht abgeschlossen, und die Windows PowerShell-Befehlszeile wird nicht zurückgegeben, bis das Programm beendet wird oder bis Sie STRG+C drücken, um den Befehl zu unterbrechen. Wenn Sie z. B. das Programm IpConfig auf einem Remote-Computer ausführen, wird die Befehlszeile erst zurückgegeben, wenn IpConfig abgeschlossen ist.

Wenn Sie Remote-Befehle verwenden, um ein Programm zu starten, das über eine Benutzeroberfläche verfügt, wird zwar der Programmprozess gestartet, die Benutzeroberfläche jedoch wird nicht angezeigt. Der Windows PowerShell-Befehl wird nicht abgeschlossen, und die Befehlszeile wird nicht zurückgegeben, bis Sie den Programmprozess anhalten oder bis Sie STRG+C drücken, wodurch der Befehl unterbrochen und der Prozess gestoppt wird.

Angenommen, Sie verwenden einen Windows PowerShell-Befehl zum Ausführen von Notepad auf einem Remote-Computer, wird zwar der Notepad-Prozess auf dem Remote-Computer gestartet, aber die Notepad-Benutzeroberfläche wird nicht angezeigt. Um den Befehl zu unterbrechen und die Befehlszeile wiederherzustellen, drücken Sie STRG+C.

KANN ICH DIE BEFEHLE EINSCHRÄNKEN, DIE BENUTZER AUF MEINEM COMPUTER REMOTE AUSFÜHREN KÖNNEN?

Ja. Für jede Remote-Sitzung muss eine der Sitzungskonfigurationen auf dem Remote-Computer verwendet werden. Sie können die Sitzungskonfigurationen (und die Berechtigungen für diese Sitzungskonfigurationen) auf Ihrem Computer verwalten und damit bestimmen, wer Befehle remote auf Ihrem Computer ausführen darf und welche Befehle ausgeführt werden können.

Durch eine Sitzungskonfiguration wird die Umgebung für die Sitzung konfiguriert. Sie können zum Definieren der Konfiguration eine Assembly verwenden, die eine neue Konfigurationsklasse implementiert, oder Sie können ein Skript verwenden, das in der Sitzung ausgeführt wird. Die Konfiguration kann die Befehle festlegen, die in der Sitzung verfügbar sind. Außerdem kann die Konfiguration Einstellungen enthalten, die den Computer schützen, beispielsweise Einstellungen, die die Datenmenge begrenzen, die von der Sitzung in einem einzelnen Objekt oder einem einzelnen Befehl remote empfangen werden können. Sie können auch eine Sicherheitsbeschreibung angeben, die die Berechtigungen bestimmt, die erforderlich sind, um die Konfiguration zu verwenden.

Das Enable-PSRemoting-Cmdlet erstellt die standardmäßigen Sitzungskonfigurationen auf Ihrem Computer: Microsoft.PowerShell, Microsoft.PowerShell.Workflow und Microsoft.Powershell32 (nur für 64-Bit-Betriebssysteme). Enable-PSRemoting legt den Sicherheitsdeskriptor für die Konfiguration so fest, dass diese nur durch Mitglieder der Gruppe „Administratoren“ auf dem Computer verwendet werden können.

Sie können mithilfe der Sitzungskonfigurations-Cmdlets die Standard-Sitzungskonfigurationen bearbeiten, neue Sitzungskonfigurationen erstellen und die Sicherheitsdeskriptoren aller Sitzungskonfigurationen ändern.

Ab Windows PowerShell 3.0 können Sie mit dem New-SessionConfigurationFile-Cmdlet benutzerdefinierte Sitzungskonfigurationen mithilfe einer Textdatei erstellen. Die Datei enthält Optionen zum Festlegen des Sprachmodus und zum Angeben des Cmdlets und Module, die in Sitzungen verfügbar sind, welche die Sitzungskonfiguration verwenden.

Wenn Benutzer die Invoke-Command-, New-PSSession- oder Enter-PSSession-Cmdlets verwenden, können sie den ConfigurationName-Parameter verwenden, um die Sitzungskonfiguration anzugeben, die für die Sitzung verwendet wird. Und sie können die Standardkonfiguration ändern, die ihre Sitzungen verwenden, indem sie den Wert der $PSSessionConfigurationName-Voreinstellungsvariablen in der Sitzung ändern.

Weitere Informationen zu Sitzungskonfigurationen finden Sie in der Hilfe zu den Sitzungskonfigurations-Cmdlets. Um die Sitzungskonfigurations-Cmdlets zu finden, geben Sie Folgendes ein:

        Get-Command *PSSessionConfiguration

WAS SIND FAN-IN UND FAN-OUT KONFIGURATIONEN?THEMA

Das am häufigsten verwendete Windows PowerShell-Remoting-Szenario unter Beteiligung mehrerer Computern ist die 1:n-Konfiguration, bei der ein lokaler Computer (der Computer des Administrators) Windows PowerShell-Befehle auf zahlreichen Remote-Computern ausführt. Dies wird als „Fan-out“-Szenario bezeichnet.

In einigen Unternehmen wird jedoch eine n:1-Konfiguration verwendet. Dabei stellen viele Client-Computer die Verbindung zu einem Remote-Computer her, auf dem Windows PowerShell ausgeführt wird, etwa zu einem Dateiserver oder einem Kiosk. Dies wird als „Fan-in“-Konfiguration bezeichnet.

Das Windows PowerShell-Remoting unterstützt sowohl Fan-out- als auch Fan-in-Konfigurationen.

Für die Fan-out-Konfiguration verwendet Windows PowerShell das Protokoll „Web Services for Management“ (WS-Management) und den WinRM-Dienst, der die Microsoft-Implementierung von WS-Management unterstützt. Wenn ein lokaler Computer eine Verbindung zu einem Remote-Computer herstellt, richtet WS-Management eine Verbindung ein und verwendet ein Plug-in, damit Windows PowerShell den Windows PowerShell-Host-Prozess (Wsmprovhost.exe) auf dem Remote-Computer starten kann. Der Benutzer kann einen alternativen Port, eine alternative Sitzungskonfiguration und andere Features angeben, um die Remote-Verbindung anzupassen.

Zur Unterstützung der „Fan-in“-Konfigurationen verwendet Windows PowerShell Internet Information Services (IIS) zum Hosten von WS-Management, zum Laden des Windows PowerShell-Plug-ins und zum Starten von Windows PowerShell. In diesem Szenario wird nicht jede Windows PowerShell-Sitzung in einem separaten Prozess gestartet, sondern alle Windows PowerShell-Sitzungen werden im selben Host-Prozess ausgeführt.

Das IIS-Hosting und das Fan-in-Remote-Management werden weder unter Windows XP noch unter Windows Server 2003 unterstützt.

In einer Fan-in-Konfiguration kann der Benutzer einen Verbindungs-URI und einen HTTP-Endpunkt festlegen, einschließlich der Angabe von Transport, Computername, Port und Anwendungsnamen. IIS leitet alle Anfragen mit einem angegebenen Anwendungsnamen an die Anwendung weiter. Die Standardvorgabe ist WS-Management, das Windows PowerShell hosten kann.

Sie können auch einen Authentifizierungsmechanismus angeben und die Umleitung von HTTP- und HTTPS-Endpunkte unterbinden oder zulassen.

KANN ICH DAS REMOTING AUF EINEM EINZELNEN COMPUTER (NICHT IN EINER DOMÄNE) TESTEN?

Ja. Das Windows PowerShell-Remoting ist sogar verfügbar, wenn sich der lokale Computer nicht in einer Domäne befindet. Sie können die Remoting-Features verwenden, um Sitzungen auf demselben Computer zu erstellen und um Verbindungen zu diesen Sitzungen herzustellen. Die Features funktionieren genauso wie beim Herstellen einer Verbindung zu einem Remote-Computer.

Zum Ausführen von Remote-Befehlen auf einem Computer in einer Arbeitsgruppe ändern Sie die folgenden Windows-Einstellungen.

Vorsicht: Diese Einstellungen wirken sich auf alle Benutzer des Systems aus, und sie können das System anfälliger für böswillige Angriffe machen. Gehen Sie mit größter Vorsicht vor, wenn Sie diese Änderungen vornehmen.

– Windows XP mit SP2:

Verwenden Sie „Lokale Sicherheitseinstellungen“ (Secpol.msc), um die Einstellungen der Richtlinie „Netzwerkzugriff: Modell für gemeinsame Nutzung und Sicherheitsmodell für lokale Konten“ unter „Sicherheitseinstellungen\Lokale Richtlinien\Sicherheitsoptionen“ in „Klassisch“ zu ändern.

– Windows Vista, Windows 7 und Windows 8:

Erstellen Sie den folgenden Registrierungseintrag, und legen Sie seinen Wert auf 1: LocalAccountTokenFilterPolicy in HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System

Sie können den folgenden Windows PowerShell-Befehl ausführen, um diesen Eintrag hinzuzufügen:

        New-ItemProperty `
        –Path HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System `
        –Name LocalAccountTokenFilterPolicy –propertyType DWord –Value 1

– Windows Server 2003, WindowsServer 2008, WindowsServer 2012, Windows Server 2012 R2:

Es sind keine Änderungen nötig, weil die Standardeinstellung der Richtlinie „Netzwerkzugriff: Modell für gemeinsame Nutzung und Sicherheitsmodell für lokale Konten“ bereits „Klassisch“ ist. Überprüfen Sie die Einstellung für den Fall, dass sie sich geändert hat.

KANN ICH REMOTE-BEFEHLE AUF EINEM COMPUTER IN EINER ANDEREN DOMÄNE AUSFÜHREN?

Ja. Normalerweise lassen sich die Befehle fehlerfrei ausführen; Sie müssen aber möglicherweise den Credential-Parameter der Invoke-Command-, New-PSSession- oder Enter-PSSession-Cmdlets verwenden, um die Anmeldeinformationen eines Mitglieds der Gruppe „Administratoren“ auf dem Remote-Computer anzugeben. Dies ist manchmal erforderlich, selbst wenn der aktuelle Benutzer Mitglied der Gruppe „Administratoren“ auf dem lokalen Computer und dem Remote-Computer ist.

Wenn sich jedoch der Remote-Computer nicht in einer Domäne befindet, die für den lokalen Computer als vertrauenswürdig gilt, ist der Computer womöglich nicht in der Lage, die Anmeldeinformationen des Benutzers zu authentifizieren.

Um die Authentifizierung zu aktivieren, verwenden Sie folgenden Befehl, um den Remote-Computer in WinRM zur Liste der vertrauenswürdigen Hosts für den lokalen Computer hinzuzufügen. Geben Sie den Befehl in der Windows PowerShell-Befehlszeile ein.

        Set-Item WSMan:\localhost\Client\TrustedHosts -Value <Remote-computer-name>

Um z. B. den Server01-Computer zur Liste der vertrauenswürdigen Hosts auf dem lokalen Computer hinzuzufügen, geben Sie den folgenden Befehl in der Windows PowerShell-Befehlszeile ein:

        Set-Item WSMan:\localhost\Client\TrustedHosts -Value Server01

SIEHE AUCH

about_Remote

about_Profiles

about_PSSessions

about_Remote_Jobs

about_Remote_Variables

Invoke-Command

New-PSSession