- 21.08.2020
- 3 Minuten zum Lesen
-
- j
- s
- D
- c
Sie können Befehle auf einem oder Hunderten von Computern mit einem einzigen PowerShell-Befehl ausführen. WindowsPowerShell unterstützt Remote Computing mit verschiedenen Technologien, einschließlich WMI, RPC und E-Management.
PowerShell Core unterstützt WMI, WS-Management-und SSH-remoting., In PowerShell 6 wird RPC nicht mehr unterstützt. In PowerShell 7 und höher wird RPC nur in Windows unterstützt.
Weitere Informationen zum Remoting in PowerShell Core finden Sie in den folgenden Artikeln:
- SSH Remoting in PowerShell Core
- WSMan Remoting in PowerShell Core
Windows PowerShell Remoting ohne Konfiguration
Viele Windows PowerShell Cmdlets verfügen über den ComputerName-Parameter, mit dem Sie Daten sammeln und Einstellungen auf einem oder mehreren Remote-Computern ändern können., Diese Cmdlets verwenden unterschiedliche Kommunikationsprotokolleund arbeiten auf allen Windows-Betriebssystemen ohne spezielle Konfiguration.
Diese Cmdlets umfassen:
- Restart-Computer
- Test-Connection
- Clear-EventLog
- Get-EventLog
- Get-HotFix
- Get-Process
- Get-Service
- Set-Service
- Get-WinEvent
- Get-WmiObject
Normalerweise verfügen Cmdlets, die Remoting ohne spezielle Konfiguration unterstützen, über den ComputerNameparameter und nicht über den Sitzungsparameter., Um diese Cmdlets in Ihrer Sitzung zu finden, geben Sie Folgendes ein:
Get-Command | where { $_.parameters.keys -contains "ComputerName" -and $_.parameters.keys -notcontains "Session"}
Windows PowerShell Remoting
Mit dem WS-Management-Protokoll können Sie mit Windows PowerShell Remoting einen beliebigen Windows PowerShellcommand auf einem oder mehreren Remotecomputern ausführen. Sie können persistente Verbindungen herstellen, Interactivesessions starten und Skripts auf Remotecomputern ausführen.
Um Windows PowerShell Remoting zu verwenden, muss der Remotecomputer für die Remoteverwaltung konfiguriert sein.Weitere Informationen, einschließlich Anweisungen, finden Sie unter Remote-Anforderungen.,
Sobald Sie Windows PowerShell Remoting konfiguriert haben, stehen Ihnen viele Remoting-Strategien zur Verfügung.Dieser Artikel listet nur einige davon auf. Weitere Informationen finden Sie unter Über Remote.
Starten Sie eine interaktive Sitzung
Um eine interaktive Sitzung mit einem einzelnen Remotecomputer zu starten, verwenden Sie das Enter-PSSessioncmdlet. Um beispielsweise eine interaktive Sitzung mit dem Remotecomputer des Servers zu starten, geben Sie Folgendes ein:
Enter-PSSession Server01
Die Eingabeaufforderung ändert sich, um den Namen des Remotecomputers anzuzeigen., Alle Befehle, die Sie eintippendie Eingabeaufforderung wird auf dem Remotecomputer ausgeführt und die Ergebnisse werden auf dem lokalen Computer angezeigt.
Um die interaktive Sitzung zu beenden, geben Sie Folgendes ein:
Exit-PSSession
Weitere Informationen zu den Cmdlets Enter-PSSession und Exit-PSSession finden Sie unter:
- Enter-PSSession
- Exit-PSSession
Führen Sie einen Remote-Befehl aus
Um einen Befehl auf einem oder mehreren Computern auszuführen, verwenden Sie Commandcmdlet., Um beispielsweise einen Get-UICulturecommand auf den Remote-Computern Server01 und Server02 auszuführen, geben Sie Folgendes ein:
Invoke-Command -ComputerName Server01, Server02 -ScriptBlock {Get-UICulture}
Die Ausgabe wird an Ihren Computer zurückgegeben.
Skript ausführen
Um ein Skript auf einem oder mehreren Remotecomputern auszuführen, verwenden Sie den Parameter filePath des Cmdlets Invoke-Command
. Das Skript muss auf Ihrem lokalen Computer installiert oder für diesen zugänglich sein. Die Ergebnisse werden an Ihren lokalen Computer zurückgegeben.
Mit dem folgenden Befehl wird beispielsweise das Skript DiskCollect.ps1 auf den Remotecomputern Server01 und Server02 ausgeführt.,
Invoke-Command -ComputerName Server01, Server02 -FilePath c:\Scripts\DiskCollect.ps1
Eine dauerhafte Verbindung herstellen
Verwenden Sie das Cmdlet New-PSSession
, um eine persistente Sitzung auf einem Remotecomputer zu erstellen. Das folgende Beispiel erstellt Remote-Sitzungen auf Server01 und Server02. Die Sitzungsobjekte werden in der Variablen $s
gespeichert.
$s = New-PSSession -ComputerName Server01, Server02
Nachdem die Sitzungen eingerichtet sind, können Sie einen beliebigen Befehl darin ausführen. Und weil die Sitzungen sindbeständig, können Sie Daten von einem Befehl sammeln und in einem anderen Befehl verwenden.,
Der folgende Befehl führt beispielsweise einen Get-HotFix-Befehl in den Sitzungen in der Variablen $s aus und speichert die Ergebnisse in der Variablen $h. Die Variable $h wird in jeder Sitzung in $s erstellt,ist jedoch in der lokalen Sitzung nicht vorhanden.
Invoke-Command -Session $s {$h = Get-HotFix}
Jetzt können Sie die Daten in der Variablen $h
mit anderen Befehlen in derselben Sitzung verwenden. Die Ergebnisse werden auf dem lokalen Computer angezeigt. Zum Beispiel:
Invoke-Command -Session $s {$h | where {$_.InstalledBy -ne "NTAUTHORITY\SYSTEM"}}
Erweitert-Remoting
Windows PowerShell-Remoteverwaltung gerade beginnt hier., Mithilfe der mit WindowsPowerShell installierten Cmdlets können Sie Remote-Sitzungen sowohl vom lokalen als auch vom Remote-Ende aus einrichten und konfigurieren,benutzerdefinierte und eingeschränkte Sitzungen erstellen, Benutzern erlauben, Befehle aus einer Remote-Sitzung zu importieren, dieaktiv implizit auf der Remote-Sitzung ausgeführt werden, Konfigurieren Sie die Sicherheit einer Remote-Sitzung und vieles mehr.
Windows PowerShell enthält einen WSMan-Anbieter. Der Anbieter erstellt einWSMAN:
– Laufwerk, mit dem younavigate eine Hierarchie von Konfigurationseinstellungen auf dem lokalen Computer und Remote-Computern durchlaufen kann.,
Weitere Informationen zum WSMan-Anbieter, zum WSMAN-Anbieter und zu WS-Management-Cmdlets oder in der Windows PowerShell-Konsole finden Sie unter Get-Help wsman
.
Weitere Informationen finden Sie unter:
- Über Remote-FAQ
- Register-PSSessionConfiguration
- Import-PSSession
Hilfe bei Remoting-Fehlern finden Sie unter about_Remote_Troubleshooting.,
Siehe Auch
- about_Remote
- about_Remote_FAQ
- „about_Remote_Requirements“
- about_Remote_Troubleshooting
- „about_PSSessions“
- about_WS-Management_Cmdlets
- Invoke-Command
- Import-PSSession
- New-PSSession
- Register-PSSessionConfiguration
- WSMan Provider