Poznámka:
Přístup k této stránce vyžaduje autorizaci. Můžete se zkusit přihlásit nebo změnit adresáře.
Přístup k této stránce vyžaduje autorizaci. Můžete zkusit změnit adresáře.
Pomocí jednoho příkazu PowerShellu můžete spouštět příkazy na jednom nebo stovkách počítačů. Windows PowerShell podporuje vzdálené výpočty pomocí různých technologií, včetně rozhraní WMI, RPC a WS-Management.
PowerShell podporuje WMI, WS-Management a SSH pro vzdálený přístup. V PowerShellu 7 a novějším se rpc podporuje jenom ve Windows.
Další informace o vzdálené komunikaci v PowerShellu najdete v následujících článcích:
Vzdálené ovládání Windows PowerShellu bez konfigurace
Mnoho rutin Prostředí Windows PowerShell má parametr ComputerName , který umožňuje shromažďovat data a měnit nastavení na jednom nebo více vzdálených počítačích. Tyto rutiny používají různé komunikační protokoly a pracují na všech operačních systémech Windows bez jakékoli zvláštní konfigurace.
Mezi tyto rutiny patří:
- Restartování počítače
- Test připojení
- Clear-EventLog
- Get-EventLog
- Get-HotFix
- Get-Process
- Get-Service
- Set-Service
- Get-WinEvent
- Get-WmiObject
Cmdlety, které obvykle podporují vzdálenou komunikaci bez speciální konfigurace, mají 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"
}
Vzdálená správa Windows PowerShell
Pomocí protokolu WS-Management umožňuje prostředí Windows PowerShell pro vzdálenou správu spustit jakýkoli příkaz Windows PowerShell na jednom nebo více vzdálených počítačích. Můžete navázat trvalá připojení, spouštět interaktivní relace a spouštět skripty na vzdálených počítačích.
Pokud chcete používat vzdálenou správu Windows PowerShellu, musí být vzdálený počítač nakonfigurovaný pro vzdálenou správu. Další informace, včetně pokynů, naleznete v tématu O vzdálených požadavcích.
Jakmile nakonfigurujete Windows PowerShell pro vzdálenou správu, máte k dispozici řadu strategií vzdálené správy. Tento článek uvádí jen několik z nich. Další informace naleznete v tématu O vzdáleném.
Spuštění interaktivní relace
Pokud chcete spustit interaktivní relaci s jedním vzdáleným počítačem, použijte rutinu Enter-PSSession. Pokud chcete například spustit interaktivní relaci se vzdáleným počítačem Server01, zadejte:
Enter-PSSession Server01
Příkazový řádek se změní tak, aby zobrazoval název vzdáleného počítače. Všechny příkazy, které zadáte na příkazovém řádku, se spustí ve vzdáleném počítači a výsledky se zobrazí v místním počítači.
Chcete-li ukončit interaktivní relaci, zadejte:
Exit-PSSession
Další informace o rutinách Enter-PSSession a Exit-PSSession najdete tady:
- Enter-PSSession
- ukončit relaci PSSession
Spuštění vzdáleného příkazu
Pokud chcete spustit příkaz na jednom nebo více počítačích, použijte rutinu Invoke-Command. Pokud chcete například spustit příkaz Get-UICulture na vzdálených počítačích Server01 a Server02, zadejte:
Invoke-Command -ComputerName Server01, Server02 -ScriptBlock {Get-UICulture}
Výstup se vrátí do počítače.
LCID Name DisplayName PSComputerName
---- ---- ----------- --------------
1033 en-US English (United States) server01.corp.fabrikam.com
1033 en-US English (United States) server02.corp.fabrikam.com
Spuštění skriptu
Pokud chcete spustit skript na jednom nebo mnoha vzdálených počítačích, použijte parametr FilePath rutiny Invoke-Command. Skript musí být zapnutý nebo přístupný pro místní počítač. Výsledky se vrátí do místního počítače.
Například následující příkaz spustí skript DiskCollect.ps1 na vzdálených počítačích, Server01 a Server02.
Invoke-Command -ComputerName Server01, Server02 -FilePath C:\Scripts\DiskCollect.ps1
Vytvoření trvalého připojení
Pomocí příkazu New-PSSession vytvořte trvalou relaci na vzdáleném počítači. Následující příklad vytvoří vzdálené relace na Serveru01 a Server02. Objekty relace jsou uloženy v proměnné $s.
$s = New-PSSession -ComputerName Server01, Server02
Teď, když jsou relace založeny, můžete v nich spustit libovolný příkaz. A protože relace jsou trvalé, můžete shromažďovat data z jednoho příkazu a používat je v jiném příkazu.
Následující příkaz například spustí příkaz Get-HotFix v relacích v proměnné $s a výsledky uloží do proměnné $h. Proměnná $h se vytvoří v každé z relací v $s, ale v místní relaci neexistuje.
Invoke-Command -Session $s {$h = Get-HotFix}
Nyní můžete použít data v proměnné $h s dalšími příkazy ve stejné relaci. Výsledky se zobrazí v místním počítači. Například:
Invoke-Command -Session $s {$h | where {$_.InstalledBy -ne "NT AUTHORITY\SYSTEM"}}
Pokročilý vzdálený přístup
PowerShell obsahuje rutiny, které umožňují:
- Konfigurace a vytvoření vzdálených relací z místních i vzdálených konců
- Vytvořte přizpůsobené a omezené relace
- Import příkazů ze vzdálené relace, která ve skutečnosti běží implicitně ve vzdálené relaci
- Nakonfigurujte zabezpečení vzdálené relace
PowerShell ve Windows obsahuje zprostředkovatele WSMan. Zprostředkovatel vytvoří disk WSMan:, který umožňuje procházet hierarchií nastavení konfigurace na místním a vzdálených počítačích.
Další informace o zprostředkovateli WSMan naleznete v tématu Zprostředkovatel WSMan a O rutinách WS-Managementnebo v konzole Windows PowerShell zadejte Get-Help WSMan.
Další informace najdete tady:
- Nejčastější dotazy ke vzdálené správě pomocí PowerShellu
- Register-PSSessionConfiguration
- Import-PSSession
Pokud potřebujete pomoc s chybami při vzdálené komunikaci, podívejte se na about_Remote_Troubleshooting.