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 na jednom nebo několika vzdálených 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.

Poznámka:

Pokud chcete používat vzdálenou komunikace PowerShellu, musíte nakonfigurovat místní a vzdálené počítače pro vzdálenou komunikace. Další informace naleznete v tématu about_Remote_Requirements.

Jak spustit interaktivní relaci

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

Po spuštění relace se příkazy, které zadáte na vzdáleném počítači, spustí, jako kdybyste 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.

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

Enter-PSSession Server01

PowerShell změní příkazový řádek tak, aby zahrnoval název vzdáleného počítače.

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 naleznete v tématu Enter-PSSession.

Spuštění vzdáleného příkazu

Pokud chcete na vzdálených počítačích spustit další příkazy, použijte rutinu Invoke-Command.

Pokud chcete spustit jeden příkaz nebo několik nesouvisejících příkazů, zadejte vzdálené počítače pomocí parametru ComputerNameInvoke-Command. K zadání příkazu použijte parametr ScriptBlock.

Například následující příkaz spustí Get-Culture příkaz na počítači Server01.

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

Jak vytvořit trvalé připojení

Pokud použijete parametr ComputerName rutiny Invoke-Command, PowerShell vytvoří dočasné připojení ke vzdálenému počítači. Po dokončení příkazu se připojení zavře. Všechny proměnné nebo funkce definované v této dočasné relaci se ztratí.

Pokud chcete 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ří psSessions na počítačích Server01 a Server02 a potom uloží psSessions do proměnné $s.

$s = New-PSSession -ComputerName Server01, Server02

Spouštění příkazů 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. Ke spouštění příkazů 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 $p proměnné v každé psSession.

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

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

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

Spuštění vzdáleného příkazu 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čů v hodnotě ComputerName parametr Invoke-Command. Názvy oddělte čárkami.

Následující příkaz například spustí příkaz Get-Culture na 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ří psSessions na počítačích Se serverem 01, Server02 a Server03 a potom v každé z verzí PSSession spustí příkaz Get-Culture.

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

Chcete-li zahrnout seznam počítačů místního počítače, 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}

Spuštění skriptu na vzdálených počítačích

Chcete-li spustit místní skript na vzdálených počítačích, použijte parametr FilePath parametr Invoke-Command. Nemusíte kopírovat žádné soubory. Například následující příkaz spustí skript Sample.ps1 na počítačích S1 a S2:

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

PowerShell vrátí výsledky skriptu do místního počítače.

Zastavení vzdáleného příkazu

Pokud chcete příkaz přerušit, stiskněte Ctrl+c. PowerShell předá žádost o přerušení vzdálenému počítači, kde ukončí vzdálený příkaz.

Další informace

Viz také