about_Remote
Krótki opis
Opisuje sposób uruchamiania poleceń zdalnych w programie PowerShell.
Długi opis
Polecenia zdalne można uruchamiać na jednym lub wielu komputerach zdalnych przy użyciu tymczasowego lub trwałego połączenia. Możesz również rozpocząć sesję interaktywną z jednym komputerem zdalnym.
Uwaga
Aby używać komunikacji zdalnej programu PowerShell, należy skonfigurować komputery lokalne i zdalne na potrzeby komunikacji zdalnej. Aby uzyskać więcej informacji, zobacz about_Remote_Requirements.
Jak rozpocząć sesję interaktywną
Najprostszym sposobem uruchamiania poleceń zdalnych jest uruchomienie sesji interaktywnej z komputerem zdalnym.
Po rozpoczęciu sesji polecenia uruchamiane na komputerze zdalnym, tak jakby były wpisywane bezpośrednio na komputerze zdalnym. W każdej sesji interakcyjnej można nawiązać połączenie tylko z jednym komputerem.
Aby rozpocząć sesję interaktywną, użyj Enter-PSSession
polecenia cmdlet . Następujące polecenie uruchamia interaktywną sesję z komputerem Server01:
Enter-PSSession Server01
Program PowerShell zmienia wiersz polecenia, aby uwzględnić nazwę komputera zdalnego.
Server01\PS>
Teraz możesz wpisać polecenia na komputerze Server01.
Aby zakończyć sesję interaktywną, wpisz:
Exit-PSSession
Aby uzyskać więcej informacji, zobacz Enter-PSSession.
Jak używać poleceń cmdlet, które mają parametr ComputerName
Kilka poleceń cmdlet ma parametr ComputerName , który umożliwia pobieranie obiektów z komputerów zdalnych.
Ponieważ te polecenia cmdlet nie używają komunikacji zdalnej programu PowerShell opartej na usłudze WS, można użyć parametru ComputerName tych poleceń cmdlet na dowolnym komputerze z uruchomionym programem PowerShell. Komputery nie muszą być skonfigurowane do komunikacji zdalnej programu PowerShell, a komputery nie muszą spełniać wymagań systemowych dotyczących komunikacji zdalnej.
Następujące polecenia cmdlet mają parametr ComputerName:
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
Na przykład następujące polecenie pobiera usługi na komputerze zdalnym Server01:
Get-Service -ComputerName Server01
Zazwyczaj polecenia cmdlet, które obsługują komunikacja zdalną bez specjalnej konfiguracji, mają parametr ComputerName i nie mają parametru Sesja . Aby znaleźć te polecenia cmdlet w sesji, wpisz:
Get-Command | Where-Object {
$_.Parameters.Keys -contains 'ComputerName' -and
$_.Parameters.Keys -notcontains 'Session'
}
Jak uruchomić zdalne polecenie
Aby uruchomić inne polecenia na komputerach zdalnych, użyj Invoke-Command
polecenia cmdlet .
Aby uruchomić jedno polecenie lub kilka niepowiązanych poleceń, użyj parametru ComputerName , Invoke-Command
aby określić komputery zdalne. Użyj parametru ScriptBlock , aby określić polecenie .
Na przykład następujące polecenie uruchamia Get-Culture
polecenie na komputerze Server01.
Invoke-Command -ComputerName Server01 -ScriptBlock {Get-Culture}
Jak utworzyć trwałe połączenie
W przypadku korzystania z parametru Invoke-Command
ComputerName polecenia cmdlet program PowerShell ustanawia tymczasowe połączenie z komputerem zdalnym. Zamyka połączenie po zakończeniu wykonywania polecenia. Wszystkie zmienne lub funkcje zdefiniowane w tej sesji tymczasowej zostaną utracone.
Aby utworzyć trwałe połączenie z komputerem zdalnym, użyj New-PSSession
polecenia cmdlet . Na przykład następujące polecenie tworzy pssessions na komputerach Server01 i Server02, a następnie zapisuje psSessions w zmiennej $s
.
$s = New-PSSession -ComputerName Server01, Server02
Jak uruchamiać polecenia w programie PSSession
Za pomocą programu PSSession można uruchomić serię poleceń zdalnych, które udostępniają dane, takie jak funkcje, aliasy i wartości zmiennych. Aby uruchomić polecenia w programie PSSession, użyj parametru Invoke-Command
Sesja polecenia cmdlet.
Na przykład następujące polecenie używa Invoke-Command
polecenia cmdlet do uruchomienia Get-Process
polecenia w psSessions na komputerach Server01 i Server02.
Polecenie zapisuje procesy w zmiennej $p
w każdej psSession.
Invoke-Command -Session $s -ScriptBlock {$p = Get-Process}
Ponieważ program PSSession używa trwałego połączenia, można uruchomić inne polecenie w tym samym programie PSSession, które używa zmiennej $p
. Następujące polecenie zlicza liczbę procesów zapisanych w pliku $p
.
Invoke-Command -Session $s -ScriptBlock {$p.count}
Jak uruchomić zdalne polecenie na wielu komputerach
Aby uruchomić zdalne polecenie na wielu komputerach, wpisz wszystkie nazwy komputerów w wartości parametru ComputerName .Invoke-Command
Rozdziel nazwy przecinkami.
Na przykład następujące polecenie uruchamia Get-Culture
polecenie na trzech komputerach:
Invoke-Command -ComputerName S1, S2, S3 -ScriptBlock {Get-Culture}
Można również uruchomić polecenie w wielu psSessions. Następujące polecenia umożliwiają utworzenie serwerów PSSessions na komputerach Server01, Server02 i Server03, a następnie uruchomienie Get-Culture
polecenia w każdym z serwerów PSSessions.
$s = New-PSSession -ComputerName S1, S2, S3
Invoke-Command -Session $s -ScriptBlock {Get-Culture}
Aby dołączyć listę komputerów lokalnych, wpisz nazwę komputera lokalnego, wpisz kropkę (.
) lub wpisz localhost
.
Invoke-Command -ComputerName S1, S2, S3, localhost -ScriptBlock {Get-Culture}
Jak uruchomić skrypt na komputerach zdalnych
Aby uruchomić skrypt lokalny na komputerach zdalnych, użyj parametru FilePath polecenia Invoke-Command
. Nie musisz kopiować żadnych plików. Na przykład następujące polecenie uruchamia Sample.ps1
skrypt na komputerach S1 i S2:
Invoke-Command -ComputerName S1, S2 -FilePath C:\Test\Sample.ps1
Program PowerShell zwraca wyniki skryptu na komputerze lokalnym.
Jak zatrzymać zdalne polecenie
Aby przerwać polecenie, naciśnij Ctrl+c. Program PowerShell przekazuje żądanie przerwania do komputera zdalnego, na którym kończy zdalne polecenie.
Więcej informacji
Aby uzyskać informacje o wymaganiach systemowych dotyczących komunikacji wirtualnej, zobacz about_Remote_Requirements.
Aby uzyskać pomoc dotyczącą formatowania zdalnych danych wyjściowych, zobacz about_Remote_Output.
Aby uzyskać informacje o sposobie działania komunikacji zdalnej, sposobie zarządzania danymi zdalnymi, specjalnymi konfiguracjami, problemami z zabezpieczeniami i innymi często zadawanymi pytaniami, zobacz Często zadawane pytania dotyczące komunikacji zdalnej programu PowerShell.
Aby uzyskać pomoc dotyczącą rozwiązywania błędów komunikacji zdalnie, zobacz about_Remote_Troubleshooting.
Aby uzyskać informacje o połączeniach PSSessions i trwałych, zobacz about_PSSessions.
Aby uzyskać informacje o zadaniach w tle programu PowerShell, zobacz about_Jobs.