Welcome to Our Website

uruchamianie zdalnych poleceń

  • 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

Dodaj komentarz

Twój adres email nie zostanie opublikowany. Pola, których wypełnienie jest wymagane, są oznaczone symbolem *