Sdílet prostřednictvím


Enable-PSRemoting

Nakonfiguruje počítač tak, aby přijímal vzdálené příkazy.

Syntax

Default (Výchozí)

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 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 spustí posluchače pro příjem vzdálených připojení, je rozumné ji spouštět pouze tam, kde je to 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 rutina není k dispozici 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. 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

Před spuštěním cmdletu vás vyzve k potvrzení.

Vlastnosti parametru

Typ:SwitchParameter
Default value:False
Podporuje zástupné znaky:False
DontShow:False
Aliasy:viz

Sady parametrů

(All)
Position:Named
Povinné:False
Hodnota z kanálu:False
Hodnota z kanálu podle názvu vlastnosti:False
Hodnota ze zbývajících argumentů:False

-Force

Přinutí příkaz ke spuštění bez výzvy k potvrzení uživatele.

Vlastnosti parametru

Typ:SwitchParameter
Default value:None
Podporuje zástupné znaky:False
DontShow:False

Sady parametrů

(All)
Position:Named
Povinné:False
Hodnota z kanálu:False
Hodnota z kanálu podle názvu vlastnosti:False
Hodnota ze zbývajících argumentů: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é mají ve výchozím nastavení pravidlo brány firewall pro místní podsíť 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.

Vlastnosti parametru

Typ:SwitchParameter
Default value:None
Podporuje zástupné znaky:False
DontShow:False

Sady parametrů

(All)
Position:Named
Povinné:False
Hodnota z kanálu:False
Hodnota z kanálu podle názvu vlastnosti:False
Hodnota ze zbývajících argumentů:False

-WhatIf

Ukazuje, co se stane, když se příkaz spustí. Příkazový modul nebyl spuštěn.

Vlastnosti parametru

Typ:SwitchParameter
Default value:False
Podporuje zástupné znaky:False
DontShow:False
Aliasy:Wi

Sady parametrů

(All)
Position:Named
Povinné:False
Hodnota z kanálu:False
Hodnota z kanálu podle názvu vlastnosti:False
Hodnota ze zbývajících argumentů:False

CommonParameters

Tato rutina podporuje běžné parametry: -Debug, -ErrorAction, -ErrorVariable, -InformationAction, -InformationVariable, -OutBuffer, -OutVariable, -PipelineVariable, -ProgressAction, -Verbose, -WarningAction a -WarningVariable. Další informace najdete v about_CommonParameters.

Vstupy

None

Do tohoto cmdletu nemůžete předávat objekty.

Výstupy

String

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

Poznámky

Tento cmdlet je dostupný pouze 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í.