about_Remote

Letzte Aktualisierung: Mai 2014

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

THEMA

about_Remote

KURZE BESCHREIBUNG

Beschreibt das Ausführen von Remote-Befehlen in Windows PowerShell.

LANGE BESCHREIBUNG

Mithilfe einer temporären oder dauerhaften Verbindung können Sie auf einem einzelnen Computer oder auf mehreren Computern Remote-Befehle ausführen. Sie können auch eine interaktive Sitzung mit einem einzelnen Computer starten.

Dieses Thema enthält eine Reihe von Beispielen, wie Sie verschiedene Arten von Remote-Befehlen ausführen können. Nachdem Sie diese grundlegenden Befehlen ausprobiert haben, sollten Sie die Hilfethemen durchlesen, die jedes der in diesen Befehlen verwendeten Cmdlets beschreiben. Die Themen bieten detaillierte Informationen und erläutern, wie Sie die Befehle entsprechend Ihren Bedürfnissen ändern können.

Hinweis

Zur Verwendung des Windows PowerShell®-Remoting müssen der lokale Computer und der Remote-Computer für das Remoting konfiguriert sein. Weitere Informationen finden Sie unter %%amp;quot;about_Remote_Requirements%%amp;quot;.

STARTEN EINER INTERAKTIVEN SITZUNG (ENTER-PSSESSION)

Die einfachste Methode zum Ausführen von Remote-Befehlen ist das Starten einer interaktiven Sitzung mit einem Remote-Computer.

Während die Sitzung gestartet wird, werden die von Ihnen eingegebenen Befehle auf dem Remote-Computer ausgeführt, so als würden Sie sie direkt auf dem Remote-Computer eingeben. In jeder interaktiven Sitzung können Sie nur zu einem Computer die Verbindung herstellen.

Um eine interaktive Sitzung zu starten, verwenden Sie das Enter-PSSession-Cmdlet. Der folgende Befehl startet eine interaktive Sitzung mit dem Computer „Server01“:

        Enter-PSSession Server01

Die Befehlszeile ändert sich, um anzuzeigen, dass Sie mit dem Computer „Server01“ verbunden sind.

        Server01\PS>

Jetzt können Sie die Befehle auf dem Computer „Server01“ eingeben.

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

        Exit-PSSession

Weitere Informationen finden Sie unter „Enter-PSSession“.

VERWENDEN VON CMDLETS MIT EINEM COMPUTERNAME-PARAMETER ZUM ABRUFEN VON REMOTE-DATEN

Mehrere Cmdlets besitzen einen ComputerName-Parameter, mit dem Sie Objekte von Remote-Computern abrufen können.

Da diese Cmdlets nicht das WS-Management-basierte Windows PowerShell-Remoting verwenden, können Sie den ComputerName-Parameter dieser Cmdlets auf jedem Computer verwenden, auf denen Windows PowerShell ausgeführt wird. Die Computer müssen nicht für das Windows PowerShell-Remoting konfiguriert sein, und die Computer müssen auch nicht die Systemanforderungen für das Remoting erfüllen.

Die folgenden Cmdlets besitzen einen ComputerName-Parameter:

        Clear-EventLog    Limit-EventLog
        Get-Counter       New-EventLog
        Get-EventLog      Remove-EventLog
        Get-HotFix        Restart-Computer
        Get-Process       Show-EventLog
        Get-Service       Stop-Computer
        Get-WinEvent      Test-Connection
        Get-WmiObject     Write-EventLog

Der folgende Befehl ruft z. B. die Dienste auf dem Remote-Computer „Server01“ ab:

        Get-Service -ComputerName Server01

In der Regel haben Cmdlets, die Remoting ohne besondere Konfiguration unterstützen, einen Parameter „ComputerName“ und keinen Parameter „Session“. Um diese Cmdlets in Ihrer Sitzung zu finden, geben Sie Folgendes ein:

        Get-Command | where { $_.Parameters.Keys -contains "ComputerName" -and $_.Parameters.Keys -NotContains "Session"}

AUSFÜHREN EINES REMOTE-BEFEHLS

Um andere Befehle auf Remote-Computern auszuführen, verwenden Sie das Invoke-Command-Cmdlet.

Um einen einzelnen Befehl oder einige unabhängige Befehle auszuführen, verwenden Sie den ComputerName-Parameter von Invoke-Command, um die Remote-Computer anzugeben. Verwenden Sie den SriptBlock-Parameter zur Angabe des Befehls.

Der folgende Befehl führt z. B. einen Get-Culture-Befehl auf Computer „Server01“ aus.

        Invoke-Command -ComputerName Server01 -ScriptBlock {Get-Culture}

Der ComputerName-Parameter ist für Situationen vorgesehen, in der Sie einen einzelnen Befehl oder mehrere unabhängige Befehle auf einem oder mehreren Computern ausführen. Um eine dauerhafte Verbindung mit einem Remote-Computer herzustellen, verwenden Sie den Session-Parameter.

HERSTELLEN EINER DAUERHAFTEN VERBINDUNG (PSSESSION)

Wenn Sie den ComputerName-Parameter des Invoke-Command-Cmdlets verwenden, stellt Windows PowerShell eine Verbindung ausschließlich für den Befehl her. Anschließend wird die Verbindung nach Abschluss des Befehls geschlossen. Alle Variablen oder Funktionen, die in dem Befehl definiert sind, gehen verloren.

Um eine dauerhafte Verbindung mit einem Remote-Computer zu erstellen, verwenden Sie das New-PSSession-Cmdlet. Der folgende Befehl erstellt z. B. PSSessions auf den Computern „Server01“ und „Server02“ und speichert diese PSSessions dann in der $s-Variablen.

        $s = New-PSSession -ComputerName Server01, Server02

AUSFÜHREN VON BEFEHLEN IN EINER PSSESSION

Mit einer PSSession können Sie eine Reihe von Remote-Befehle ausführen, die Daten gemeinsam nutzen, wie etwa Funktionen, Aliase und die Werte von Variablen. Um Befehle in einer PSSession auszuführen, verwenden Sie den Session-Parameter des Invoke-Command-Cmdlets.

Beispielsweise verwendet der folgende Befehl das Invoke-Command-Cmdlet zum Ausführen eines Get-Process-Befehls in den PSSessions auf den Computern „Server01“ und „Server02“. Der Befehl speichert die Prozesse in jeder PSSession in einer $p-Variablen.

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

Da die PSSession eine dauerhafte Verbindung verwendet, können Sie einen anderen Befehl in der gleichen PSSession ausführen, die die $p-Variable verwendet. Der folgende Befehl zählt die Prozesse, die in $p gespeichert sind.

        Invoke-Command -Session $s -ScriptBlock {$p.count}

AUSFÜHREN EINES REMOTE-BEFEHLS AUF MEHREREN COMPUTERN

Um einen Remote-Befehl auf mehreren Computern auszuführen, geben Sie alle Computernamen in den Wert des ComputerName-Parameters von Invoke-Command ein. Trennen Sie die Namen durch Kommas.

Der folgende Befehl führt z. B. einen Get-Culture-Befehl auf drei Computern aus:

Invoke-Command -ComputerName S1, S2, S3 -ScriptBlock {Get-Culture}

Sie können auch einen Befehl in mehrere PSSessions ausführen. Die folgenden Befehle erstellen PSSessions auf den Computern „Server01“, „Server02“ und „Server03“ und führen dann einen Get-Culture-Befehl in jeder der PSSessions aus.

        $s = New-PSSession -ComputerName S1, S2, S3
        Invoke-Command -Session $s -ScriptBlock {Get-Culture}

Um die Liste der lokalen Computer einzuschließen, geben Sie den Namen des lokalen Computers ein, geben Sie einen Punkt (.) ein, oder geben Sie „localhost“ ein.

        Invoke-Command -ComputerName S1, S2, S3, localhost -ScriptBlock {Get-Culture}

AUSFÜHREN EINES SKRIPTS AUF REMOTE-COMPUTERN

Um ein lokales Skript auf Remote-Computern auszuführen, verwenden Sie den FilePath-Parameter von Invoke-Command.

Der folgende Befehl führt z. B. das Skript „Sample.ps1“ auf den Computern „S1“ und „S2“aus:Abschnittstext hier einfügen.

        Invoke-Command -ComputerName S1, S2 -FilePath C:\Test\Sample.ps1

Die Ergebnisse des Skripts werden auf dem lokalen Computer zurückgegeben. Sie müssen keine Dateien kopieren.

BEENDEN EINES REMOTE-BEFEHLS

Drücken Sie STRG+C, um einen Befehl zu unterbrechen. Die Abbruchanforderung wird an den Remote-Computer übergeben, wo der Remote-Befehl beendet wird.

WEITERE INFORMATIONEN

– Informationen zu den Systemanforderungen für das Remoting finden Sie unter „about_Remote_Requirements“.

– Hilfe zur Formatierung der Remote-Ausgabe finden Sie in „about_Remote_Output“.

– Informationen zur Funktionsweise von Remoting, zum Verwalten von Remote-Daten, zu speziellen Konfigurationen, zu Sicherheitsprobleme und zu anderen häufig gestellten Fragen finden Sie unter „about_Remote_FAQ“.

– Hilfe zum Beheben von Fehlern beim Remoting finden Sie unter „about_Remote_Troubleshooting“.

– Informationen zu PSSessions und dauerhaften Verbindungen finden Sie unter „about_PSSessions“.

– Informationen zu Windows PowerShell-Hintergrundaufträgen finden Sie unter „about_Jobs“.

SCHLÜSSELWÖRTER

about_Remoting

SIEHE AUCH

about_PSSessions

about_Remote_Disconnected_Sessions

about_Remote_Requirements

about_Remote_FAQ

about_Remote_TroubleShooting

about_Remote_Variables

Enter-PSSession

Invoke-Command

New-PSSession