Sdílet prostřednictvím


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

String

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í.