Uwaga
Dostęp do tej strony wymaga autoryzacji. Może spróbować zalogować się lub zmienić katalogi.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
Polecenia można uruchamiać na jednym lub setkach komputerów za pomocą jednego polecenia programu PowerShell. Program Windows PowerShell obsługuje zdalne przetwarzanie przy użyciu różnych technologii, w tym WMI, RPC i WS-Management.
Program PowerShell obsługuje komunikacji zdalnej WMI, WS-Management i SSH. W programie PowerShell 7 lub nowszym RPC jest obsługiwana tylko w systemie Windows.
Aby uzyskać więcej informacji na temat zdalnego zarządzania w programie PowerShell, zobacz następujące artykuły:
- Komunikacja zdalna SSH w programie PowerShell
- Komunikacja zdalna programu WSMan w programie PowerShell
Zdalne zarządzanie Windows PowerShell bez konfiguracji
Wiele poleceń cmdlet programu Windows PowerShell ma parametr ComputerName , który umożliwia zbieranie danych i zmienianie ustawień na co najmniej jednym komputerze zdalnym. Te polecenia cmdlet używają różnych protokołów komunikacyjnych i działają we wszystkich systemach operacyjnych Windows bez żadnej specjalnej konfiguracji.
Te polecenia cmdlet obejmują:
- Uruchom ponownie komputer
- Test-Connection
- Clear-EventLog
- Get-EventLog
- Get-HotFix
- Get-Process
- Get-Service
- Set-Service
- Get-WinEvent
- Get-WmiObject
Zazwyczaj polecenia cmdlet, które obsługują zdalne wykonywanie bez specjalnej konfiguracji, mają parametr ComputerName i nie mają parametru Sesja. Aby znaleźć te polecenia cmdlet w swojej sesji, wpisz je:
Get-Command | Where-Object {
$_.Parameters.Keys -contains "ComputerName" -and
$_.Parameters.Keys -notcontains "Session"
}
Zdalne zarządzanie Windows PowerShell
Za pomocą protokołu WS-Management, zdalne działanie w Windows PowerShell umożliwia uruchamianie dowolnego polecenia programu Windows PowerShell na jednym lub więcej komputerach zdalnych. Możesz ustanowić trwałe połączenia, uruchomić sesje interaktywne i uruchamiać skrypty na komputerach zdalnych.
Aby można było używać komunikacji zdalnej programu Windows PowerShell, należy skonfigurować komputer zdalny do zdalnego zarządzania. Aby uzyskać więcej informacji, w tym instrukcje, zobacz Informacje o wymaganiach zdalnych.
Po skonfigurowaniu zdalnej komunikacji programu Windows PowerShell, dostępnych jest wiele strategii zdalnej komunikacji. W tym artykule wymieniono tylko kilka z nich. Aby uzyskać więcej informacji, zobacz Informacje o zdalnym.
Rozpoczynanie sesji interakcyjnej
Aby rozpocząć sesję interaktywną z jednym komputerem zdalnym, użyj polecenia cmdlet Enter-PSSession. Na przykład aby rozpocząć sesję interaktywną z komputerem zdalnym Server01, wpisz:
Enter-PSSession Server01
Wiersz polecenia zmieni się, aby wyświetlić nazwę komputera zdalnego. Wszystkie polecenia wpisywane w wierszu polecenia są uruchamiane na komputerze zdalnym, a wyniki są wyświetlane na komputerze lokalnym.
Aby zakończyć sesję interaktywną, wpisz:
Exit-PSSession
Aby uzyskać więcej informacji na temat poleceń cmdlet Enter-PSSession
i Exit-PSSession
, zobacz:
Uruchamianie zdalnego polecenia
Aby uruchomić polecenie na jednym lub kilku komputerach, użyj cmdletu Invoke-Command. Aby na przykład uruchomić polecenie Get-UICulture na komputerach zdalnych Server01 i Server02, wpisz:
Invoke-Command -ComputerName Server01, Server02 -ScriptBlock {Get-UICulture}
Dane wyjściowe są zwracane do komputera.
LCID Name DisplayName PSComputerName
---- ---- ----------- --------------
1033 en-US English (United States) server01.corp.fabrikam.com
1033 en-US English (United States) server02.corp.fabrikam.com
Uruchamianie skryptu
Aby uruchomić skrypt na jednym lub wielu komputerach zdalnych, użyj parametru FilePath polecenia cmdlet Invoke-Command
. Skrypt musi być włączony lub dostępny dla komputera lokalnego. Wyniki są zwracane na komputer lokalny.
Na przykład następujące polecenie uruchamia skrypt DiskCollect.ps1
na komputerach zdalnych, Server01 i Server02.
Invoke-Command -ComputerName Server01, Server02 -FilePath C:\Scripts\DiskCollect.ps1
Ustanawianie trwałego połączenia
Użyj polecenia cmdlet New-PSSession
, aby utworzyć sesję trwałą na komputerze zdalnym. Poniższy przykład tworzy sesje zdalne na serwerach Server01 i Server02. Obiekty sesji są przechowywane w zmiennej $s
.
$s = New-PSSession -ComputerName Server01, Server02
Gdy sesje zostaną ustanowione, możesz uruchomić dowolne polecenie w sesjach. Ponieważ sesje są trwałe, można zbierać dane z jednego polecenia i używać ich w innym poleceniu.
Na przykład następujące polecenie uruchamia polecenie Get-HotFix
w sesjach w zmiennej $s
i zapisuje wyniki w zmiennej $h
. Zmienna $h
jest tworzona w każdej sesji w $s
, ale nie istnieje w sesji lokalnej.
Invoke-Command -Session $s {$h = Get-HotFix}
Teraz możesz użyć danych w zmiennej $h
z innymi poleceniami w tej samej sesji. Wyniki są wyświetlane na komputerze lokalnym. Na przykład:
Invoke-Command -Session $s {$h | where {$_.InstalledBy -ne "NT AUTHORITY\SYSTEM"}}
Zaawansowana komunikacja zdalna
Program PowerShell zawiera polecenia cmdlet, które umożliwiają:
- Konfiguruj i twórz sesje zdalne zarówno z lokalnych, jak i zdalnych stron.
- Tworzenie niestandardowych i ograniczonych sesji
- Importowanie poleceń z sesji zdalnej, które są uruchamiane niejawnie w sesji zdalnej
- Konfigurowanie zabezpieczeń sesji zdalnej
Program PowerShell w systemie Windows zawiera dostawcę programu WSMan. Dostawca tworzy dysk WSMan:
, który umożliwia przechodzenie przez hierarchię ustawień konfiguracji na komputerze lokalnym i komputerach zdalnych.
Aby uzyskać więcej informacji na temat dostawcy WSMan, zobacz dostawcy programu WSMan i About WS-Management Cmdletslub w konsoli programu Windows PowerShell wpisz Get-Help WSMan
.
Aby uzyskać więcej informacji, zobacz:
- często zadawane pytania dotyczące komunikacji zdalnej programu PowerShell
- Register-PSSessionConfiguration
- Import-PSSession
Aby uzyskać pomoc dotyczącą błędów zdalnego komunikowania się, zobacz about_Remote_Troubleshooting.