- 08/21/2020
- 3 minuty do odczytania
-
- j
- s
- d
- c
za pomocą jednego polecenia PowerShell możesz uruchamiać polecenia na jednym lub setkach komputerów. WindowsPowerShell obsługuje zdalne przetwarzanie za pomocą różnych technologii, w tym WMI, RPC, IWS-Management.
PowerShell Core obsługuje WMI, WS-Management i SSH remoting., W PowerShell 6 RPC nie jest dlugo wspierane. W PowerShell 7 i nowszych, RPC jest obsługiwany tylko w systemie Windows.
aby uzyskać więcej informacji na temat remotingu w PowerShell Core, zobacz następujące artykuły:
- Remoting SSH w PowerShell Core
- WSMan Remoting w PowerShell Core
Windows PowerShell Remoting Without Configuration
wiele cmdletów Windows PowerShell posiada parametr ComputerName, który umożliwia zbieranie danych i zmienianie ustawień na jednym lub więcej komputerach zdalnych., Te cmdlety używają różnych protokołów komunikacyjnych i działają na wszystkich systemach operacyjnych Windows bez żadnej specjalnej konfiguracji.
te cmdlety zawierają:
- Restart-Computer
- Test-Connection
- Clear-EventLog
- Get-Eventlog
- Get-HotFix
- get-Process
- Get-Service
- Set-Service
- Get-WinEvent
- Get-WmiObject
zazwyczaj cmdlety obsługujące remotowanie bez specjalnej konfiguracji mają Computernameparameter i nie mają parametru session., Aby znaleźć te cmdlety w sesji, wpisz:
Get-Command | where { $_.parameters.keys -contains "ComputerName" -and $_.parameters.keys -notcontains "Session"}
Windows PowerShell Remoting
korzystając z protokołu WS-Management, Windows PowerShell remoting pozwala uruchomić dowolną komendę Windows PowerShell na jednym lub więcej komputerach zdalnych. Możesz nawiązywać trwałe połączenia, uruchamiać interaktywne połączenia i uruchamiać skrypty na komputerach zdalnych.
aby korzystać z Windows PowerShell remoting, komputer zdalny musi być skonfigurowany do zdalnego zarządzania.Więcej informacji, w tym instrukcje, można znaleźć w sekcji Wymagania zdalne.,
Po skonfigurowaniu remotingu Windows PowerShell dostępnych jest wiele strategii remotingu.Ten artykuł wymienia tylko kilka z nich. Aby uzyskać więcej informacji, zobacz o zdalnym.
Uruchom interaktywną sesję
aby rozpocząć interaktywną sesję z jednym zdalnym komputerem, użyj polecenia Enter-PSSessioncmdlet. Na przykład, aby rozpocząć interaktywną sesję z komputerem zdalnym Server01, wpisz:
Enter-PSSession Server01
wiersz polecenia zmienia się, aby wyświetlić nazwę komputera zdalnego., Wszystkie polecenia, które wpisujesz, są uruchamiane na komputerze zdalnym, a wyniki są wyświetlane na komputerze lokalnym.
aby zakończyć interaktywną sesję, wpisz:
Exit-PSSession
aby uzyskać więcej informacji o cmdletach Enter-PSSession i Exit-PSSession, zobacz:
- Enter-PSSession
- Exit-PSSession
Uruchom zdalne polecenie
aby uruchomić polecenie na jednym lub więcej komputery, użyj invoke-Commandcmdlet., Na przykład, aby uruchomić polecenie Get-UICulturecommand na komputerach zdalnych Server01 i Server02, wpisz:
Invoke-Command -ComputerName Server01, Server02 -ScriptBlock {Get-UICulture}
wyjście zostanie zwrócone do komputera.
Uruchom skrypt
aby uruchomić skrypt na jednym lub wielu komputerach zdalnych, użyj parametru FilePath Invoke-Command
cmdlet. Skrypt musi być włączony lub Dostępny dla twojego komputera lokalnego. Wyniki są zwracane na Twój 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
Utwórz stałe połączenie
użyjNew-PSSession
aby utworzyć trwałą sesję na zdalnym komputerze. Poniższy przykład tworzy sesje zdalne W SERVER01 i Server02. Obiekty sesji są przechowywane w zmiennej $s
.
$s = New-PSSession -ComputerName Server01, Server02
teraz, gdy sesje są już ustawione, możesz uruchomić w nich dowolne polecenie. A ponieważ sesje sąpersistent, można zbierać dane z jednego polecenia i używać go 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żywać 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 "NTAUTHORITY\SYSTEM"}}
zaawansowane Remotowanie
Zdalne zarządzanie Windows PowerShell dopiero zaczyna się tutaj., Korzystając z cmdletów zainstalowanych w WindowsPowerShell, możesz ustanowić i skonfigurować zdalne sesje zarówno z lokalnych, jak i zdalnych końców, tworzyć niestandardowe i ograniczone sesje, zezwalać użytkownikom na import poleceń z sesji zdalnej, które domyślnie działają na sesji zdalnej, konfigurować bezpieczeństwo sesji zdalnej i wiele więcej.
Windows PowerShell zawiera dostawcę WSMan. Dostawca tworzy dysk WSMAN:
, który umożliwia przeglądanie hierarchii ustawień konfiguracyjnych na komputerze lokalnym i komputerach zdalnych.,
aby uzyskać więcej informacji na temat WSMan provider, seeWSMan Provider i Cmdletów zarządzania WS, lub w konsoli Windows PowerShell, wpisz Get-Help wsman
.
aby uzyskać więcej informacji, zobacz:
- o zdalnym FAQ
- Register-PSSessionConfiguration
- Import-PSSession
aby uzyskać pomoc w usuwaniu błędów, zobacz about_Remote_Troubleshooting.,
patrz również
- oout_remote
- oout_remote_faq
- oout_remote_requirements
- oout_remote_troubleshooting
- oout_pssessions
- oout_ws-Management_Cmdlets
- Invoke-Commandli
- import-PSSession
- New-PSSession
- register-pssessionconfiguration
- WSMan provider