Enable-PSRemoting
Nakonfiguruje počítač tak, aby přijímal vzdálené příkazy.
Syntaxe
Enable-PSRemoting
[-Force]
[-SkipNetworkProfileCheck]
[-WhatIf]
[-Confirm]
[<CommonParameters>]
Description
Tato rutina je dostupná jenom na platformě Windows.
Rutina Enable-PSRemoting
nakonfiguruje počítač tak, aby přijímal vzdálené příkazy PowerShellu odesílané pomocí technologie WS-Management. WS-Management založené vzdálené ovládání PowerShellu je v současné době podporováno pouze v prostředí Windows.
Vzdálená komunikace PowerShellu je ve výchozím nastavení povolena na platformách Windows Server. Pomocí Enable-PSRemoting
můžete povolit vzdálené ovládání PowerShellu v jiných podporovaných verzích Windows a znovu povolit vzdálené ovládání, pokud bylo deaktivováno.
Tento příkaz musíte spustit jenom jednou na každém počítači, který přijímá příkazy. Nemusíte ho spouštět na počítačích, které odesílají jenom příkazy. Vzhledem k tomu, že konfigurace spouští naslouchací procesy, je vhodné ji spustit jenom tam, kde je potřeba.
Povolení vzdálené komunikace PowerShellu v klientských verzích Windows, když je počítač připojen k veřejné síti, je obvykle zakázáno, ale toto omezení můžete obejít pomocí parametru SkipNetworkProfileCheck. Další informace najdete v popisu parametru SkipNetworkProfileCheck.
Na jednom počítači může existovat několik instalací PowerShellu vedle sebe. Spuštění Enable-PSRemoting
nakonfiguruje koncový bod vzdálené komunikace pro konkrétní verzi instalace, ve které spouštíte příkaz cmdlet. Pokud tedy spustíte Enable-PSRemoting
při spuštění PowerShellu 6.2, nakonfiguruje se koncový bod vzdálené komunikace, na kterém běží PowerShell 6.2. Pokud spustíte Enable-PSRemoting
při spuštění PowerShellu 7-Preview, nakonfiguruje se koncový bod vzdálené komunikace, na kterém běží PowerShell 7-Preview.
Enable-PSRemoting
podle potřeby vytvoří dvě konfigurace koncového bodu vzdáleného přístupu. Pokud konfigurace koncových bodů už existují, jednoduše se zajistí, aby byly povolené. Vytvořené konfigurace jsou identické, ale mají různé názvy. Jeden bude mít jednoduchý název odpovídající verzi PowerShellu, která hostuje relaci. Druhý název konfigurace obsahuje podrobnější informace o verzi PowerShellu, která hostuje relaci. Například při spuštění Enable-PSRemoting
v PowerShellu 6.2 získáte dva nakonfigurované koncové body s názvem PowerShell.6, PowerShell.6.2.2. To vám umožní vytvořit připojení k nejnovější verzi hostitele PowerShellu 6 pomocí jednoduchého názvu PowerShell.6. Nebo se můžete připojit ke konkrétní verzi hostitele PowerShellu pomocí delšího názvu PowerShell.6.2.2.
Pokud chcete použít nově povolené koncové body vzdálené komunikace, musíte je zadat podle názvu pomocí parametru ConfigurationName při vytváření vzdáleného připojení pomocí rutin Invoke-Command
,New-PSSession
,Enter-PSSession
. Další informace naleznete v příkladu 4.
Cmdlet Enable-PSRemoting
provádí následující operace:
- Spustí rutinu Set-WSManQuickConfig, která provádí následující úlohy:
- Spustí službu WinRM.
- Nastaví typ spuštění ve službě WinRM na automaticky.
- Vytvoří naslouchací program pro příjem požadavků na libovolnou IP adresu.
- Povolí výjimku brány firewall pro komunikaci WS-Management.
- Vytvoří konfigurace koncových bodů relace s jednoduchým a dlouhým názvem, pokud je to potřeba.
- Povolí všechny konfigurace relací.
- Změní popisovač zabezpečení všech konfigurací relací tak, aby umožňoval vzdálený přístup.
- Restartuje službu WinRM, aby se předchozí změny projevily.
Pokud chcete tuto rutinu spustit na platformě Windows, spusťte PowerShell pomocí možnosti Spustit jako správce. Tato cmdlet není dostupná na systémech PowerShellu pro Linux nebo macOS.
Opatrnost
Tato rutina nemá vliv na konfigurace vzdálených koncových bodů vytvořených prostředím Windows PowerShell.
Týká se to jenom koncových bodů vytvořených pomocí PowerShellu verze 6 a vyšší. Pokud chcete povolit a zakázat koncové body vzdálené komunikace PowerShellu hostované prostředím Windows PowerShell, spusťte rutinu Enable-PSRemoting
z relace Prostředí Windows PowerShell.
Další informace o používání vzdálené správy pomocí PowerShellu najdete v následujících článcích:
Příklady
Příklad 1: Konfigurace počítače pro příjem vzdálených příkazů
Tento příkaz nakonfiguruje počítač tak, aby přijímal vzdálené příkazy.
Enable-PSRemoting
WARNING: PowerShell remoting has been enabled only for PowerShell Core configurations and
does not affect Windows PowerShell remoting configurations. Run this cmdlet in Windows
PowerShell to affect all PowerShell remoting configurations.
Příklad 2: Konfigurace počítače pro příjem vzdálených příkazů bez výzvy k potvrzení
Tento příkaz nakonfiguruje počítač tak, aby přijímal vzdálené příkazy. Parametr Force potlačí výzvy uživatele.
Enable-PSRemoting -Force
WARNING: PowerShell remoting has been enabled only for PowerShell Core configurations and
does not affect Windows PowerShell remoting configurations. Run this cmdlet in Windows
PowerShell to affect all PowerShell remoting configurations.
Příklad 3: Povolení vzdáleného přístupu na klientech
Tento příklad ukazuje, jak povolit vzdálený přístup z veřejných sítí v klientských verzích operačního systému Windows. Název pravidla brány firewall se může lišit pro různé verze Windows.
Seznam pravidel můžete zobrazit pomocí Get-NetFirewallRule
. Před povolením pravidla brány firewall zkontrolujte nastavení zabezpečení v pravidle a ověřte, že je konfigurace vhodná pro vaše prostředí.
Get-NetFirewallRule -Name 'WINRM*' | Select-Object -Property Name
Name
----
WINRM-HTTP-In-TCP-NoScope
WINRM-HTTP-In-TCP
WINRM-HTTP-Compat-In-TCP-NoScope
WINRM-HTTP-Compat-In-TCP
Enable-PSRemoting -SkipNetworkProfileCheck -Force
Set-NetFirewallRule -Name 'WINRM-HTTP-In-TCP' -RemoteAddress Any
Ve výchozím nastavení Enable-PSRemoting
vytváří pravidla sítě, která umožňují vzdálený přístup z privátních a doménových sítí. Příkaz používá parametr SkipNetworkProfileCheck k povolení vzdáleného přístupu z veřejných sítí ve stejné místní podsíti. Příkaz určuje parametr Force k potlačení potvrzovací zprávy.
Parametr SkipNetworkProfileCheck nemá vliv na verze serveru operačního systému Windows, které ve výchozím nastavení umožňují vzdálený přístup z veřejných sítí ve stejné místní podsíti.
Rutina Set-NetFirewallRule
v modulu NetSecurity přidá pravidlo brány firewall, které umožňuje vzdálený přístup z veřejných sítí z libovolného vzdáleného umístění. To zahrnuje umístění v různých podsítích.
Příklad 4: Vytvoření vzdálené relace s nově povolenou konfigurací koncového bodu
Tento příklad ukazuje, jak povolit vzdálenou komunikaci PowerShellu na počítači, najít nakonfigurované názvy koncových bodů a vytvořit vzdálenou relaci s jedním z těchto koncových bodů.
První příkaz povolí vzdálenou správu pomocí PowerShellu na počítači.
Druhý příkaz zobrazí seznam konfigurací koncových bodů.
Třetí příkaz vytvoří vzdálenou relaci PowerShellu do stejného zařízení s určením koncového bodu PowerShell.7 podle jména. Vzdálená relace bude hostovaná s nejnovější verzí PowerShellu 7 (7.3.0).
Poslední příkaz přistupuje k proměnné $PSVersionTable
ve vzdálené relaci, aby se zobrazila verze PowerShellu, která je hostitelem relace.
Enable-PSRemoting -Force
Get-PSSessionConfiguration
$session = New-PSSession -ComputerName localhost -ConfigurationName PowerShell.7
Invoke-Command -Session $session -ScriptBlock { $PSVersionTable }
WARNING: PowerShell remoting has been enabled only for PowerShell Core configurations and
does not affect Windows PowerShell remoting configurations. Run this cmdlet in Windows
PowerShell to affect all PowerShell remoting configurations.
Name : PowerShell.7
PSVersion : 7.3
StartupScript :
RunAsUser :
Permission : NT AUTHORITY\INTERACTIVE AccessAllowed,
BUILTIN\Administrators AccessAllowed,
BUILTIN\Remote Management Users AccessAllowed
Name : PowerShell.7.3.0
PSVersion : 7.3
StartupScript :
RunAsUser :
Permission : NT AUTHORITY\INTERACTIVE AccessAllowed,
BUILTIN\Administrators AccessAllowed,
BUILTIN\Remote Management Users AccessAllowed
Name Value
---- -----
PSCompatibleVersions {1.0, 2.0, 3.0, 4.0…}
PSEdition Core
PSRemotingProtocolVersion 2.3
Platform Win32NT
SerializationVersion 1.1.0.1
GitCommitId 6.2.2
WSManStackVersion 3.0
PSVersion 6.2.2
OS Microsoft Windows 10.0.18363
Poznámka
Název pravidla brány firewall se může lišit v závislosti na verzi Windows. Pomocí rutiny Get-NetFirewallRule
vypíšete názvy pravidel ve vašem systému.
Parametry
-Confirm
Vyzve vás k potvrzení před spuštěním cmdletu.
Typ: | SwitchParameter |
Aliasy: | cf |
Position: | Named |
Default value: | False |
Vyžadováno: | False |
Přijmout vstup kanálu: | False |
Přijmout zástupné znaky: | False |
-Force
Přinutí příkaz ke spuštění bez výzvy k potvrzení uživatele.
Typ: | SwitchParameter |
Position: | Named |
Default value: | None |
Vyžadováno: | False |
Přijmout vstup kanálu: | False |
Přijmout zástupné znaky: | False |
-SkipNetworkProfileCheck
Označuje, že tato rutina povoluje vzdálený přístup v klientských verzích operačního systému Windows, když je počítač ve veřejné síti. Tento parametr povolí pravidlo brány firewall pro veřejné sítě, které povolí vzdálený přístup jenom z počítačů ve stejné místní podsíti.
Tento parametr nemá vliv na serverové verze operačního systému Windows, které ve výchozím nastavení mají pravidlo brány firewall místní podsítě pro veřejné sítě. Pokud je pravidlo brány firewall místní podsítě zakázané na verzi serveru, Enable-PSRemoting
jej znovu povolí bez ohledu na hodnotu tohoto parametru.
Pokud chcete odebrat omezení místní podsítě a povolit vzdálený přístup ze všech umístění ve veřejných sítích, použijte rutinu Set-NetFirewallRule
v modulu NetSecurity.
Tento parametr byl představen v PowerShellu 3.0.
Typ: | SwitchParameter |
Position: | Named |
Default value: | None |
Vyžadováno: | False |
Přijmout vstup kanálu: | False |
Přijmout zástupné znaky: | False |
-WhatIf
Ukazuje, co by se stalo, kdyby se rutina spustila. Cmdlet se nespustil.
Typ: | SwitchParameter |
Aliasy: | wi |
Position: | Named |
Default value: | False |
Vyžadováno: | False |
Přijmout vstup kanálu: | False |
Přijmout zástupné znaky: | False |
Vstupy
None
Do tohoto příkazu nemůžete přesměrovat objekty.
Výstupy
Tato rutina vrátí řetězce, které popisují výsledky.
Poznámky
Tento cmdlet je dostupný jenom na platformách Windows.
Ve verzích serveru operačního systému Windows Enable-PSRemoting
vytvoří pravidla brány firewall pro privátní a doménové sítě, které umožňují vzdálený přístup, a pravidlo pro veřejné sítě, které umožňuje vzdálený přístup pouze z počítačů ve stejné místní podsíti.
V klientských verzích operačního systému Windows Enable-PSRemoting
vytvoří pravidla brány firewall pro privátní a doménové sítě, které umožňují neomezený vzdálený přístup. Pokud chcete vytvořit pravidlo brány firewall pro veřejné sítě, které umožňuje vzdálený přístup ze stejné místní podsítě, použijte parametr SkipNetworkProfileCheck.
Na klientských nebo serverových verzích operačního systému Windows vytvořte pravidlo brány firewall pro veřejné sítě, které odebere omezení místní podsítě a povolí vzdálený přístup , pomocí rutiny Set-NetFirewallRule
v modulu NetSecurity spusťte následující příkaz: Set-NetFirewallRule -Name "WINRM-HTTP-In-TCP-PUBLIC" -RemoteAddress Any
Enable-PSRemoting
povolí všechny konfigurace relací tím, že nastaví hodnotu vlastnosti Enabled u všech konfigurací relací na $True
.
Enable-PSRemoting
odebere nastavení Deny_All a Network_Deny_All. To poskytuje vzdálený přístup ke konfiguracím relací, které byly vyhrazeny pro místní použití.