Delen via


Enable-PSRemoting

Hiermee configureert u de computer voor het ontvangen van externe opdrachten.

Syntaxis

Enable-PSRemoting
      [-Force]
      [-SkipNetworkProfileCheck]
      [-WhatIf]
      [-Confirm]
      [<CommonParameters>]

Description

Deze cmdlet is alleen beschikbaar op het Windows-platform.

De Enable-PSRemoting-cmdlet configureert de computer voor het ontvangen van externe PowerShell-opdrachten die worden verzonden met behulp van de WS-Management-technologie. WS-Management op basis van externe communicatie via PowerShell wordt momenteel alleen ondersteund op het Windows-platform.

PowerShell-verbindingen op afstand zijn standaard ingeschakeld op Windows Server-platforms. U kunt Enable-PSRemoting gebruiken om externe communicatie van PowerShell in te schakelen voor andere ondersteunde versies van Windows en om externe communicatie opnieuw in te schakelen als deze wordt uitgeschakeld.

U moet deze opdracht slechts één keer uitvoeren op elke computer die opdrachten ontvangt. U hoeft deze niet uit te voeren op computers die alleen opdrachten verzenden. Omdat de configuratie listeners start, is het verstandig om deze alleen uit te voeren waar deze nodig is.

Op afstand beheren van PowerShell inschakelen in clientversies van Windows is normaal gesproken niet toegestaan wanneer de computer zich op een openbaar netwerk bevindt, maar u kunt deze beperking overslaan met behulp van de parameter SkipNetworkProfileCheck. Zie de beschrijving van de parameter SkipNetworkProfileCheck voor meer informatie.

Meerdere PowerShell-installaties kunnen naast elkaar bestaan op één computer. Als u Enable-PSRemoting uitvoert, configureert u een externe eindpunt voor de specifieke installatieversie waarin u de cmdlet uitvoert. Dus als u Enable-PSRemoting uitvoert tijdens het uitvoeren van PowerShell 6.2, wordt een extern eindpunt geconfigureerd dat PowerShell 6.2 uitvoert. Als u Enable-PSRemoting uitvoert tijdens het uitvoeren van PowerShell 7 preview, wordt een extern eindpunt geconfigureerd dat PowerShell 7-preview uitvoert.

Enable-PSRemoting maakt indien nodig twee configuraties voor externe eindpunten. Als de eindpuntconfiguraties al bestaan, worden ze gewoon ingeschakeld. De gemaakte configuraties zijn identiek, maar hebben verschillende namen. Eén heeft een eenvoudige naam die overeenkomt met de PowerShell-versie die als host fungeert voor de sessie. De andere configuratienaam bevat meer gedetailleerde informatie over de PowerShell-versie die als host fungeert voor de sessie. Wanneer u bijvoorbeeld Enable-PSRemoting uitvoert in PowerShell 6.2, krijgt u twee geconfigureerde eindpunten met de naam PowerShell.6, PowerShell.6.2.2. Hiermee kunt u een verbinding maken met de nieuwste PowerShell 6-hostversie met behulp van de eenvoudige naam PowerShell.6. U kunt ook verbinding maken met een specifieke PowerShell-hostversie met behulp van de langere naam PowerShell.6.2.2.

Als u de nieuw ingeschakelde externe eindpunten wilt gebruiken, moet u deze op naam opgeven met de parameter ConfigurationName bij het maken van een externe verbinding met behulp van de Invoke-Command,New-PSSession,Enter-PSSession cmdlets. Zie voorbeeld 4 voor meer informatie.

De Enable-PSRemoting cmdlet voert de volgende bewerkingen uit:

  • Hiermee wordt de Set-WSManQuickConfig cmdlet uitgevoerd, waarmee de volgende taken worden uitgevoerd:
    • Start de WinRM-service.
    • Hiermee stelt u het opstarttype in de WinRM-service in op Automatisch.
    • Hiermee maakt u een listener voor het accepteren van aanvragen op elk IP-adres.
    • Hiermee schakelt u een firewall-uitzondering in voor WS-Management-communicatie.
    • Maakt indien nodig de configuraties voor sessie-eindpunten met eenvoudige en lange namen aan.
    • Hiermee schakelt u alle sessieconfiguraties in.
    • Hiermee wijzigt u de beveiligingsdescriptor van alle sessieconfiguraties om externe toegang toe te staan.
  • Start de WinRM-service opnieuw om de voorgaande wijzigingen effectief te maken.

Als u deze cmdlet wilt uitvoeren op het Windows-platform, start u PowerShell met behulp van de optie Als administrator uitvoeren. Deze cmdlet is niet beschikbaar in Linux- of macOS-versies van PowerShell.

Voorzichtigheid

Deze cmdlet heeft geen invloed op externe eindpuntconfiguraties die zijn gemaakt door Windows PowerShell. Dit is alleen van invloed op eindpunten die zijn gemaakt met PowerShell versie 6 en hoger. Als u externe powerShell-eindpunten wilt in- en uitschakelen die worden gehost door Windows PowerShell, voert u de Enable-PSRemoting cmdlet uit vanuit een Windows PowerShell-sessie.

Zie de volgende artikelen voor meer informatie over het gebruik van PowerShell Remoting:

Voorbeelden

Voorbeeld 1: Een computer configureren voor het ontvangen van externe opdrachten

Met deze opdracht configureert u de computer voor het ontvangen van externe opdrachten.

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.

Voorbeeld 2: Een computer configureren voor het ontvangen van externe opdrachten zonder bevestigingsprompt

Met deze opdracht configureert u de computer voor het ontvangen van externe opdrachten. De parameter Force onderdrukt de gebruikersprompts.

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.

Voorbeeld 3: Externe toegang toestaan op clients

In dit voorbeeld ziet u hoe u externe toegang vanuit openbare netwerken op clientversies van het Windows-besturingssysteem toestaat. De naam van de firewallregel kan verschillen voor verschillende versies van Windows. Gebruik Get-NetFirewallRule om een lijst met regels weer te geven. Voordat u de firewallregel inschakelt, bekijkt u de beveiligingsinstellingen in de regel om te controleren of de configuratie geschikt is voor uw omgeving.

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

Standaard maakt Enable-PSRemoting netwerkregels die externe toegang vanuit privé- en domeinnetwerken toestaan. De opdracht maakt gebruik van de parameter SkipNetworkProfileCheck om externe toegang vanuit openbare netwerken in hetzelfde lokale subnet toe te staan. De opdracht specificeert de Force parameter om bevestigingsberichten te onderdrukken.

De parameter SkipNetworkProfileCheck heeft geen invloed op serverversies van het Windows-besturingssysteem, waardoor externe toegang van openbare netwerken in hetzelfde lokale subnet standaard is toegestaan.

De cmdlet Set-NetFirewallRule in de module NetSecurity voegt een firewallregel toe waarmee externe toegang vanuit openbare netwerken vanaf elke externe locatie mogelijk is. Dit omvat locaties in verschillende subnetten.

Voorbeeld 4: Een externe sessie maken voor de zojuist ingeschakelde eindpuntconfiguratie

In dit voorbeeld ziet u hoe u externe communicatie van PowerShell op een computer inschakelt, de geconfigureerde eindpuntnamen zoekt en een externe sessie maakt naar een van de eindpunten.

Met de eerste opdracht kunt u PowerShell-remotegebruik op de computer inschakelen.

Met de tweede opdracht worden de eindpuntconfiguraties weergegeven.

Met de derde opdracht maakt u een externe PowerShell-sessie op dezelfde computer, waarbij u de PowerShell.7 eindpunt op naam opgeeft. De externe sessie wordt gehost met de nieuwste Versie van PowerShell 7 (7.3.0).

De laatste opdracht opent de $PSVersionTable variabele in de externe sessie om de PowerShell-versie weer te geven die als host fungeert voor de sessie.

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

Notitie

De naam van de firewallregel kan verschillen, afhankelijk van de versie van Windows. Gebruik de cmdlet Get-NetFirewallRule om de namen van de regels op uw systeem weer te geven.

Parameters

-Confirm

U wordt gevraagd om bevestiging voordat u de cmdlet uitvoert.

Type:SwitchParameter
Aliassen:cf
Position:Named
Default value:False
Vereist:False
Pijplijninvoer accepteren:False
Jokertekens accepteren:False

-Force

Hiermee dwingt u de opdracht uit te voeren zonder dat u om bevestiging van de gebruiker wordt gevraagd.

Type:SwitchParameter
Position:Named
Default value:None
Vereist:False
Pijplijninvoer accepteren:False
Jokertekens accepteren:False

-SkipNetworkProfileCheck

Geeft aan dat deze cmdlet externe communicatie mogelijk maakt op clientversies van het Windows-besturingssysteem wanneer de computer zich op een openbaar netwerk bevindt. Met deze parameter wordt een firewallregel ingeschakeld voor openbare netwerken die externe toegang alleen vanaf computers in hetzelfde lokale subnet toestaat.

Deze parameter heeft geen invloed op serverversies van het Windows-besturingssysteem, die standaard een lokale subnetfirewallregel hebben voor openbare netwerken. Als de firewallregel voor het lokale subnet is uitgeschakeld op een serverversie, Enable-PSRemoting deze opnieuw inschakelt, ongeacht de waarde van deze parameter.

Als u de beperking van het lokale subnet wilt verwijderen en externe toegang vanaf alle locaties in openbare netwerken wilt inschakelen, gebruikt u de cmdlet Set-NetFirewallRule in de module NetSecurity.

Deze parameter is geïntroduceerd in PowerShell 3.0.

Type:SwitchParameter
Position:Named
Default value:None
Vereist:False
Pijplijninvoer accepteren:False
Jokertekens accepteren:False

-WhatIf

Toont wat er zou gebeuren als de cmdlet wordt uitgevoerd. De cmdlet wordt niet uitgevoerd.

Type:SwitchParameter
Aliassen:wi
Position:Named
Default value:False
Vereist:False
Pijplijninvoer accepteren:False
Jokertekens accepteren:False

Invoerwaarden

None

U kunt geen objecten doorsluisen naar deze cmdlet.

Uitvoerwaarden

String

Deze cmdlet retourneert tekenreeksen die de resultaten beschrijven.

Notities

Deze cmdlet is alleen beschikbaar op Windows-platforms.

Op serverversies van het Windows-besturingssysteem maakt Enable-PSRemoting firewallregels voor privé- en domeinnetwerken die externe toegang toestaan en maakt u een firewallregel voor openbare netwerken die externe toegang alleen vanaf computers in hetzelfde lokale subnet toestaat.

Op clientversies van het Windows-besturingssysteem maakt Enable-PSRemoting firewallregels voor privé- en domeinnetwerken die onbeperkte externe toegang toestaan. Als u een firewallregel wilt maken voor openbare netwerken die externe toegang vanaf hetzelfde lokale subnet toestaat, gebruikt u de parameter SkipNetworkProfileCheck.

Als u op client- of serverversies van het Windows-besturingssysteem een firewallregel wilt maken voor openbare netwerken die de beperking van het lokale subnet verwijdert en externe toegang toestaat, gebruikt u de cmdlet Set-NetFirewallRule in de NetSecurity-module om de volgende opdracht uit te voeren: Set-NetFirewallRule -Name "WINRM-HTTP-In-TCP-PUBLIC" -RemoteAddress Any

Enable-PSRemoting schakelt alle sessieconfiguraties in door de waarde van de eigenschap Ingeschakeld van alle sessieconfiguraties in te stellen op $True.

Enable-PSRemoting verwijdert de Deny_All- en Network_Deny_All-instellingen. Dit biedt externe toegang tot sessieconfiguraties die zijn gereserveerd voor lokaal gebruik.