Sdílet prostřednictvím


o_vzdáleném

Krátký popis

Popisuje, jak spustit vzdálené příkazy v PowerShellu.

Dlouhý popis

Vzdálené příkazy můžete spouštět v jednom počítači nebo ve více počítačích pomocí dočasného nebo trvalého připojení. Můžete také spustit interaktivní relaci s jedním vzdáleným počítačem.

Toto téma obsahuje řadu příkladů, které vám ukážou, jak spouštět různé typy vzdálených příkazů. Po vyzkoušení těchto základních příkazů si přečtěte témata nápovědy, která popisují jednotlivé rutiny použité v těchto příkazech. Témata poskytují podrobnosti a vysvětlují, jak můžete upravit příkazy tak, aby vyhovovaly vašim potřebám.

Poznámka: Pokud chcete použít vzdálenou komunikaci PowerShellu, musí být místní a vzdálené počítače nakonfigurované pro vzdálenou komunikaci. Další informace naleznete v tématu about_Remote_Requirements.

JAK SPUSTIT INTERAKTIVNÍ RELACI (ENTER-PSSESSION)

Nejjednodušší způsob, jak spustit vzdálené příkazy, je spustit interaktivní relaci se vzdáleným počítačem.

Při spuštění relace se zadané příkazy spustí ve vzdáleném počítači, stejně jako byste je zadali přímo na vzdáleném počítači. V každé interaktivní relaci se můžete připojit jenom k jednomu počítači.

Pokud chcete spustit interaktivní relaci, použijte rutinu Enter-PSSession . Následující příkaz spustí interaktivní relaci s počítačem Server01:

Enter-PSSession Server01

Příkazový řádek se změní a označuje, že jste připojeni k počítači Server01.

Server01\PS>

Teď můžete psát příkazy na počítači Server01.

Chcete-li ukončit interaktivní relaci, zadejte:

Exit-PSSession

Další informace najdete v tématu Enter-PSSession.

JAK POUŽÍVAT RUTINY, KTERÉ MAJÍ PARAMETR COMPUTERNAME K ZÍSKÁNÍ VZDÁLENÝCH DAT

Některé rutiny mají parametr ComputerName, který umožňuje získat objekty ze vzdálených počítačů.

Vzhledem k tomu, že tyto rutiny nepoužívají vzdálenou komunikaci PowerShellu založenou na WS-Management, můžete parametr ComputerName těchto rutin použít na libovolném počítači s PowerShellem. Počítače nemusí být nakonfigurované pro vzdálenou komunikaci PowerShellu a počítače nemusí splňovat systémové požadavky pro vzdálenou komunikaci.

Následující rutiny 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

Například následující příkaz získá služby na vzdáleném počítači Server01:

Get-Service -ComputerName Server01

Rutiny, které podporují vzdálenou komunikaci bez speciální konfigurace, mají obvykle parametr ComputerName a nemají parametr Session . Pokud chcete ve své relaci najít tyto rutiny, zadejte:

Get-Command | Where-Object {
  $_.Parameters.Keys -contains 'ComputerName' -and
  $_.Parameters.Keys -notcontains 'Session'
}

JAK SPUSTIT VZDÁLENÝ PŘÍKAZ

Chcete-li na vzdálených počítačích spouštět další příkazy, použijte rutinu Invoke-Command .

Chcete-li spustit jeden příkaz nebo několik nesouvisejících příkazů, použijte parametr Název_počítače v Invoke-Command k určení vzdálených počítačů. K určení příkazu použijte parametr ScriptBlock.

Následující příkaz například spustí v počítači Server01 příkaz Get-Culture.

Invoke-Command -ComputerName Server01 -ScriptBlock {Get-Culture}

Parametr ComputerName je určen pro situaci, kdy spustíte jeden příkaz nebo několik nesouvisejících příkazů na jednom nebo více počítačích. Chcete-li navázat trvalé připojení ke vzdálenému počítači, použijte parametr Session.

JAK VYTVOŘIT TRVALÉ PŘIPOJENÍ (PSSESSION)

Když použijete parametr ComputerName rutiny Invoke-Command, Windows PowerShell naváže připojení jenom pro tento příkaz. Po dokončení příkazu pak připojení ukončí. Všechny proměnné nebo funkce, které jsou definovány v příkazu, budou ztraceny.

Chcete-li vytvořit trvalé připojení ke vzdálenému počítači, použijte rutinu New-PSSession . Například následující příkaz vytvoří psSession na počítačích Server01 a Server02 a pak uloží psSession do proměnné $s.

$s = New-PSSession -ComputerName Server01, Server02

JAK SPOUŠTĚT PŘÍKAZY V PSSESSION

Pomocí psSession můžete spustit řadu vzdálených příkazů, které sdílejí data, jako jsou funkce, aliasy a hodnoty proměnných. Pokud chcete spouštět příkazy v psSession, použijte parametr Session rutiny Invoke-Command .

Například následující příkaz používá rutinu Invoke-Command ke spuštění příkazu Get-Process v pssessions na počítačích Server01 a Server02. Příkaz uloží procesy do proměnné $p v každé relaci PSSession.

Invoke-Command -Session $s -ScriptBlock {$p = Get-Process}

Vzhledem k tomu, že psSessions používá trvalé připojení, můžete spustit další příkaz ve stejném PSSession, který používá proměnnou $p. Následující příkaz spočítá počet procesů uložených v $p.

Invoke-Command -Session $s -ScriptBlock {$p.count}

JAK SPUSTIT VZDÁLENÝ PŘÍKAZ NA VÍCE POČÍTAČÍCH

Chcete-li spustit vzdálený příkaz na více počítačích, zadejte všechny názvy počítačů do hodnoty parametru ComputerName v příkazu Invoke-Command. Názvy oddělte čárkami.

Následující příkaz například spustí příkaz Get-Culture ve třech počítačích:

Invoke-Command -ComputerName S1, S2, S3 -ScriptBlock {Get-Culture}

Můžete také spustit příkaz ve více psSessions. Následující příkazy vytvoří psSession na počítačích Server01, Server02 a Server03 a poté spustí Get-Culture příkaz v každé z PSSessions.

$s = New-PSSession -ComputerName S1, S2, S3
Invoke-Command -Session $s -ScriptBlock {Get-Culture}

Chcete-li zahrnout seznam počítačů v místním počítači, zadejte název místního počítače, zadejte tečku (.) nebo zadejte "localhost".

Invoke-Command -ComputerName S1, S2, S3, localhost -ScriptBlock {Get-Culture}

JAK SPUSTIT SKRIPT NA VZDÁLENÝCH POČÍTAČÍCH

Chcete-li spustit místní skript na vzdálených počítačích, použijte parametr FilePath příkazu Invoke-Command.

Například následující příkaz spustí skript Sample.ps1 v počítačích S1 a S2:

Invoke-Command -ComputerName S1, S2 -FilePath C:\Test\Sample.ps1

Výsledky skriptu se vrátí do místního počítače. Nemusíte kopírovat žádné soubory.

JAK ZASTAVIT VZDÁLENÝ PŘÍKAZ

Chcete-li příkaz přerušit, stiskněte kombinaci kláves CTRL+C. Požadavek na přerušení je předán vzdálenému počítači, kde ukončí vzdálený příkaz.

DALŠÍ INFORMACE

KLÍČOVÁ SLOVA

about_Remoting

Viz také