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. Externe communicatie via WS Management op basis van PowerShell wordt momenteel alleen ondersteund op het Windows-platform.

Externe communicatie via PowerShell is standaard ingeschakeld op Windows Server-platforms. U kunt Enable-PSRemoting externe communicatie van PowerShell inschakelen in andere ondersteunde versies van Windows en externe communicatie opnieuw inschakelen 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 voor het accepteren van externe verbindingen, is het verstandig om deze alleen uit te voeren waar deze nodig is.

Externe communicatie van PowerShell inschakelen voor clientversies van Windows wanneer de computer zich op een openbaar netwerk bevindt, is normaal gesproken niet toegestaan, 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. Wordt uitgevoerd Enable-PSRemoting configureert een extern eindpunt voor de specifieke installatieversie waarin u de cmdlet uitvoert. Dus als u wordt uitgevoerd Enable-PSRemoting tijdens het uitvoeren van PowerShell 6.2, wordt een extern eindpunt geconfigureerd dat PowerShell 6.2 uitvoert. Als u wordt uitgevoerd Enable-PSRemoting tijdens het uitvoeren van PowerShell 7 preview, wordt een extern eindpunt geconfigureerd dat PowerShell 7-preview uitvoert.

Enable-PSRemoting maakt indien nodig twee externe eindpuntconfiguraties. 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 in PowerShell 6.2 werkt Enable-PSRemoting , krijgt u twee geconfigureerde eindpunten met de naam PowerShell.6, PowerShell.6.2.2. Hiermee kunt u een verbinding maken met de nieuwste hostversie van PowerShell 6 met behulp van de eenvoudige naam PowerShell.6. U kunt ook verbinding maken met een specifieke PowerShell-hostversie met 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-Commandcmdlets ,New-PSSessionEnter-PSSession. Zie voorbeeld 4 voor meer informatie.

De Enable-PSRemoting cmdlet voert de volgende bewerkingen uit:

  • Voert de set-WSManQuickConfig-cmdlet uit, 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.
    • Hiermee maakt u indien nodig de configuraties van het eindpunt voor een eenvoudige en lange naamsessie.
    • 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.

Let op

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.

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 dit 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

Enable-PSRemoting Standaard maakt u netwerkregels waarmee externe toegang vanuit privé- en domeinnetwerken is toegestaan. De opdracht maakt gebruik van de parameter SkipNetworkProfileCheck om externe toegang vanuit openbare netwerken in hetzelfde lokale subnet toe te staan. Met de opdracht geeft u de parameter Force op om bevestigingsberichten te onderdrukken.

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

Met Set-NetFirewallRule de cmdlet in de NetSecurity-module wordt een firewallregel toegevoegd 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 externe communicatie van PowerShell 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 het PowerShell.7-eindpunt op naam wordt opgegeven. 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 Get-NetFirewallRule cmdlet om de namen van de regels op uw systeem weer te geven.

Parameters

-Confirm

Hiermee wordt u 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 voor openbare netwerken hebben. Als de firewallregel voor het lokale subnet is uitgeschakeld op een serverversie, Enable-PSRemoting schakelt u deze opnieuw in, ongeacht de waarde van deze parameter.

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

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

Hiermee wordt weergegeven wat er zou gebeuren als u de cmdlet uitvoert. 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.

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

In clientversies van het Windows-besturingssysteem Enable-PSRemoting maakt u 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 toestaan, gebruikt u de parameter SkipNetworkProfileCheck .

Als u op client- of serverversies van het Windows-besturingssysteem een firewallregel wilt maken voor openbare netwerken die de lokale subnetbeperking verwijdert en externe toegang toestaat, gebruikt u de Set-NetFirewallRule cmdlet 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-PSRemotingverwijdert de Deny_All- en Network_Deny_All-instellingen. Dit biedt externe toegang tot sessieconfiguraties die zijn gereserveerd voor lokaal gebruik.