Windows PowerShell Remoting
Zdalne narzędzie Windows PowerShell, które korzysta z protokołu WS-Management, pozwala uruchomić dowolne polecenie Windows PowerShell na jednym lub wielu komputerach zdalnych. Umożliwia nawiązywanie trwałych połączeń, uruchamianie interaktywnych sesji 1: 1 i uruchamianie skryptów na wielu komputerach. Aby korzystać z usługi Windows PowerShell, komputer zdalny musi być skonfigurowany do zdalnego zarządzania. Po skonfigurowaniu zdalnego programu Windows PowerShell dostępnych jest wiele strategii. W pozostałej części tego dokumentu wymieniono tylko kilka z nich.
Rozpocznij sesję interaktywną
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 zmienia się, aby wyświetlić nazwę komputera, z którym jesteś połączony. Od tego momentu wszelkie polecenia wpisywane po wyświetleniu monitu będą uruchamiane na komputerze zdalnym, a wyniki będą wyświetlane na komputerze lokalnym.
Aby zakończyć sesję interaktywną, wpisz:
Exit-PSSession
Uruchom polecenie zdalne
Aby uruchomić dowolne polecenie na jednym lub wielu komputerach zdalnych, użyj polecenia cmdlet Invoke-Command. Na przykład, aby uruchomić polecenie Get-UICulture na komputerach zdalnych Server01 i Server02, wpisz:
invoke-command -computername Server01, Server02 {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
Uruchom skrypt
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 twojego 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
Nawiąż trwałe połączenie
Aby uruchomić serię powiązanych poleceń, które współużytkują dane, utwórz sesję na komputerze zdalnym, a następnie użyj polecenia cmdlet Invoke-Command, aby uruchomić polecenia w utworzonej sesji. Aby utworzyć sesję zdalną, użyj polecenia cmdlet New-PSSession.
Na przykład następujące polecenie tworzy sesję zdalną na komputerze Server01 i kolejną sesję zdalną na komputerze Server02. Zapisuje obiekty sesji w zmiennej $ s.
$s = new-pssession -computername Server01, Server02
Po ustanowieniu sesji możesz uruchomić w nich dowolne polecenie. A ponieważ sesje są trwałe, możesz gromadzić dane w jednym poleceniu i używać ich w kolejnym 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 w kolejnych poleceniach, takich jak poniższe. Wyniki są wyświetlane na komputerze lokalnym.
invoke-command -session $s {$h | where {$_.installedby -ne "NTAUTHORITY\SYSTEM"} }