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, které se odesílají pomocí technologie WS-Management. Vzdálené komunikace PowerShellu založené na WS-Management je aktuálně podporována pouze na platformě Windows.

Vzdálenou komunikace PowerShellu je ve výchozím nastavení povolená na platformách Windows Serveru. Můžete použít Enable-PSRemoting k povolení vzdálené komunikace PowerShellu v jiných podporovaných verzích Windows a k opětovnému povolení vzdálené komunikace, pokud je zakázaná.

Tento příkaz musíte spustit pouze jednou na každém počítači, který bude přijímat 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, aby přijímala vzdálená připojení, je vhodné ji spustit pouze tam, kde je potřeba.

Povolení vzdálené komunikace PowerShellu v klientských verzích Windows, pokud je počítač ve veřejné síti obvykle zakázán, ale toto omezení můžete přeskočit 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 rutinu. Pokud tedy spustíte Enable-PSRemoting PowerShell 6.2, nakonfiguruje se koncový bod vzdálené komunikace, na kterém běží PowerShell 6.2. Pokud spustíte Enable-PSRemoting PowerShell 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é komunikace. Pokud konfigurace koncových bodů už existují, jsou jednoduše zajištěno, 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í Invoke-CommandNew-PSSessionEnter-PSSession rutin ,. Další informace naleznete v příkladu 4.

Rutina 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 Hodnotu Automaticky.
    • Vytvoří naslouchací proces pro příjem požadavků na libovolnou IP adresu.
    • Povolí výjimku brány firewall pro komunikaci WS-Management.
    • V případě potřeby vytvoří jednoduché a dlouhé konfigurace koncových bodů relace s dlouhým názvem.
    • 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 rutina není dostupná ve verzích PowerShellu pro Linux nebo MacOS.

Upozornění

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.

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. Umožňuje Get-NetFirewallRule zobrazit seznam pravidel. 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í vytvoří pravidla sítě, Enable-PSRemoting 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 pro 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 vzdálenou komunikace PowerShellu na počítači, najít nakonfigurované názvy koncových bodů a vytvořit vzdálenou relaci s jedním z koncových bodů.

První příkaz povolí vzdálené komunikace PowerShellu v počítači.

Druhý příkaz zobrazí seznam konfigurací koncových bodů.

Třetí příkaz vytvoří vzdálenou relaci PowerShellu na stejném počítači a určí koncový bod PowerShell.7 podle názvu. Vzdálená relace bude hostovaná s nejnovější verzí PowerShellu 7 (7.3.0).

Poslední příkaz přistupuje k $PSVersionTable proměnné 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 můžete vypsat názvy pravidel ve vašem systému.

Parametry

-Confirm

Před spuštěním rutiny zobrazí výzvu k potvrzení.

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

Vynutí spuštění příkazu 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 umožňuje vzdálené komunikace 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 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ě na verzi serveru zakázané, Enable-PSRemoting znovu ho 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

Zobrazuje, co by se stalo při spuštění rutiny. Rutina není spuštěna.

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 této rutiny nemůžete roušit objekty.

Výstupy

String

Tato rutina vrátí řetězce, které popisují výsledky.

Poznámky

Tato rutina je dostupná jenom na platformách Windows.

Na serverových verzích operačního systému Enable-PSRemoting Windows vytvoří pravidla brány firewall pro privátní a doménové sítě, které umožňují vzdálený přístup, a vytvoří pravidlo brány firewall pro veřejné sítě, které umožňují vzdálený přístup pouze z počítačů ve stejné místní podsíti.

Ve verzích operačního systému Enable-PSRemoting Windows 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í Set-NetFirewallRule rutiny 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í nastavením hodnoty Povoleno vlastnost všech konfigurací relace na $Truehodnotu .

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