Enable-PSRemoting

Konfigurerar datorn för att ta emot fjärrkommandon.

Syntax

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

Description

Den här cmdleten är endast tillgänglig på Windows-plattformen.

Cmdleten Enable-PSRemoting konfigurerar datorn för att ta emot PowerShell-fjärrkommandon som skickas med hjälp av WS-Management teknik. WS-Management-baserad PowerShell-fjärrkommunikation stöds för närvarande endast på Windows-plattformen.

PowerShell-fjärrkommunikation är aktiverat som standard på Windows Server-plattformar. Du kan använda Enable-PSRemoting för att aktivera PowerShell-fjärrkommunikation i andra versioner av Windows som stöds och för att återaktivera fjärrkommunikation om det inaktiveras.

Du behöver bara köra det här kommandot en gång på varje dator som ska ta emot kommandon. Du behöver inte köra den på datorer som bara skickar kommandon. Eftersom konfigurationen startar lyssnare för att acceptera fjärranslutningar är det klokt att bara köra den där den behövs.

Det är normalt inte tillåtet att aktivera PowerShell-fjärrkommunikation i klientversioner av Windows när datorn är i ett offentligt nätverk, men du kan hoppa över den här begränsningen med hjälp av parametern SkipNetworkProfileCheck . Mer information finns i beskrivningen av parametern SkipNetworkProfileCheck .

Flera PowerShell-installationer kan finnas sida vid sida på en enda dator. Om du kör Enable-PSRemoting konfigureras en fjärrkommunikationsslutpunkt för den specifika installationsversion som du kör cmdleten i. Så om du kör Enable-PSRemoting PowerShell 6.2 konfigureras en fjärrkommunikationsslutpunkt som kör PowerShell 6.2. Om du kör Enable-PSRemoting PowerShell 7-förhandsversionen konfigureras en fjärrkommunikationsslutpunkt som kör PowerShell 7-förhandsversionen.

Enable-PSRemoting skapar två konfigurationer för fjärrkommunikationsslutpunkter efter behov. Om slutpunktskonfigurationerna redan finns säkerställs de helt enkelt att vara aktiverade. De skapade konfigurationerna är identiska men har olika namn. En har ett enkelt namn som motsvarar den PowerShell-version som är värd för sessionen. Det andra konfigurationsnamnet innehåller mer detaljerad information om PowerShell-versionen som är värd för sessionen. När du till exempel kör Enable-PSRemoting i PowerShell 6.2 får du två konfigurerade slutpunkter med namnet PowerShell.6, PowerShell.6.2.2. På så sätt kan du skapa en anslutning till den senaste PowerShell 6-värdversionen med hjälp av det enkla namnet PowerShell.6. Eller så kan du ansluta till en specifik PowerShell-värdversion med det längre namnet PowerShell.6.2.2.

Om du vill använda de nyligen aktiverade fjärrkommunikationsslutpunkterna måste du ange dem efter namn med parametern ConfigurationName när du skapar en fjärranslutning med Invoke-Commandcmdletarna ,New-PSSessionEnter-PSSession. Mer information finns i Exempel 4.

Cmdleten Enable-PSRemoting utför följande åtgärder:

  • Kör cmdleten Set-WSManQuickConfig , som utför följande uppgifter:
    • Startar WinRM-tjänsten.
    • Anger starttypen för WinRM-tjänsten till Automatisk.
    • Skapar en lyssnare för att acceptera begäranden på alla IP-adresser.
    • Aktiverar ett brandväggsfel för WS-Management kommunikation.
    • Skapar den enkla och långa namnsessionens slutpunktskonfigurationer om det behövs.
    • Aktiverar alla sessionskonfigurationer.
    • Ändrar säkerhetsbeskrivningen för alla sessionskonfigurationer så att fjärråtkomst tillåts.
  • Startar om WinRM-tjänsten för att de föregående ändringarna ska gälla.

Om du vill köra den här cmdleten på Windows-plattformen startar du PowerShell med alternativet Kör som administratör. Den här cmdleten är inte tillgänglig i Linux- eller MacOS-versioner av PowerShell.

Varning

Den här cmdleten påverkar inte fjärrslutpunktskonfigurationer som skapats av Windows PowerShell. Den påverkar bara slutpunkter som skapats med PowerShell version 6 och senare. Om du vill aktivera och inaktivera PowerShell-fjärrkommunikationsslutpunkter som hanteras av Windows PowerShell kör du cmdleten Enable-PSRemoting inifrån en Windows PowerShell session.

Exempel

Exempel 1: Konfigurera en dator för att ta emot fjärrkommandon

Det här kommandot konfigurerar datorn för att ta emot fjärrkommandon.

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.

Exempel 2: Konfigurera en dator att ta emot fjärrkommandon utan en bekräftelsefråga

Det här kommandot konfigurerar datorn för att ta emot fjärrkommandon. Parametern Force undertrycker användarens uppmaningar.

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.

Exempel 3: Tillåt fjärråtkomst på klienter

Det här exemplet visar hur du tillåter fjärråtkomst från offentliga nätverk i klientversioner av Windows-operativsystemet. Namnet på brandväggsregeln kan vara olika för olika versioner av Windows. Använd Get-NetFirewallRule om du vill se en lista över regler. Innan du aktiverar brandväggsregeln kan du visa säkerhetsinställningarna i regeln för att kontrollera att konfigurationen är lämplig för din miljö.

Get-NetFirewallRule -Name 'WINRM*' | Select-Object 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

Som standard Enable-PSRemoting skapar nätverksregler som tillåter fjärråtkomst från privata nätverk och domännätverk. Kommandot använder parametern SkipNetworkProfileCheck för att tillåta fjärråtkomst från offentliga nätverk i samma lokala undernät. Kommandot anger parametern Force för att undertrycka bekräftelsemeddelanden.

Parametern SkipNetworkProfileCheck påverkar inte serverversioner av Windows-operativsystemet, som tillåter fjärråtkomst från offentliga nätverk i samma lokala undernät som standard.

Cmdleten Set-NetFirewallRule i NetSecurity-modulen lägger till en brandväggsregel som tillåter fjärråtkomst från offentliga nätverk från valfri fjärrplats. Detta inkluderar platser i olika undernät.

Exempel 4: Skapa en fjärrsession till den nyligen aktiverade slutpunktskonfigurationen

Det här exemplet visar hur du aktiverar PowerShell-fjärrkommunikation på en dator, hittar de konfigurerade slutpunktsnamnen och skapar en fjärrsession till en av slutpunkterna.

Det första kommandot aktiverar PowerShell-fjärrkommunikation på datorn.

Det andra kommandot visar slutpunktskonfigurationerna.

Det tredje kommandot skapar en PowerShell-fjärrsession till samma dator och anger PowerShell.7-slutpunkten efter namn. Fjärrsessionen körs med den senaste PowerShell 7-versionen (7.2.7).

Det sista kommandot kommer åt variabeln $PSVersionTable i fjärrsessionen för att visa den PowerShell-version som är värd för sessionen.

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.2
StartupScript :
RunAsUser     :
Permission    : NT AUTHORITY\INTERACTIVE AccessAllowed,
                BUILTIN\Administrators AccessAllowed,
                BUILTIN\Remote Management Users AccessAllowed

Name          : PowerShell.7.2.7
PSVersion     : 7.2
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

Anteckning

Namnet på brandväggsregeln kan vara olika beroende på windows-versionen. Använd cmdleten Get-NetFirewallRule för att lista namnen på reglerna i systemet.

Parametrar

-Confirm

Uppmanar dig att bekräfta innan du kör cmdleten.

Type:SwitchParameter
Aliases:cf
Position:Named
Default value:False
Accept pipeline input:False
Accept wildcard characters:False

-Force

Tvingar kommandot att köras utan att be om användarbekräftelse.

Type:SwitchParameter
Position:Named
Default value:None
Accept pipeline input:False
Accept wildcard characters:False

-SkipNetworkProfileCheck

Anger att denna cmdlet aktiverar fjärrkommunikation i klientversioner av Windows-operativsystemet när datorn är i ett offentligt nätverk. Den här parametern aktiverar en brandväggsregel för offentliga nätverk som endast tillåter fjärråtkomst från datorer i samma lokala undernät.

Den här parametern påverkar inte serverversioner av Windows-operativsystemet, som som standard har en lokal brandväggsregel för undernätet för offentliga nätverk. Om brandväggsregeln för det lokala undernätet är inaktiverad på en serverversion Enable-PSRemoting aktiverar du den igen, oavsett värdet för den här parametern.

Om du vill ta bort den lokala undernätsbegränsningen och aktivera fjärråtkomst från alla platser i offentliga nätverk använder du cmdleten Set-NetFirewallRule i NetSecurity-modulen .

Den här parametern introducerades i PowerShell 3.0.

Type:SwitchParameter
Position:Named
Default value:None
Accept pipeline input:False
Accept wildcard characters:False

-WhatIf

Visar vad som skulle hända om cmdleten kördes. Cmdleten körs inte.

Type:SwitchParameter
Aliases:wi
Position:Named
Default value:False
Accept pipeline input:False
Accept wildcard characters:False

Indata

None

Du kan inte skicka indata till denna cmdlet.

Utdata

String

Den här cmdleten returnerar strängar som beskriver dess resultat.

Kommentarer

Den här cmdleten är endast tillgänglig på Windows-plattformar.

På serverversioner av Windows-operativsystemet Enable-PSRemoting skapar brandväggsregler för privata nätverk och domännätverk som tillåter fjärråtkomst och skapar en brandväggsregel för offentliga nätverk som endast tillåter fjärråtkomst från datorer i samma lokala undernät.

I klientversioner av Windows-operativsystemet Enable-PSRemoting skapar brandväggsregler för privata nätverk och domännätverk som tillåter obegränsad fjärråtkomst. Om du vill skapa en brandväggsregel för offentliga nätverk som tillåter fjärråtkomst från samma lokala undernät använder du parametern SkipNetworkProfileCheck .

På klient- eller serverversioner av Windows-operativsystemet använder du cmdleten Set-NetFirewallRule i NetSecurity-modulen för att skapa en brandväggsregel för offentliga nätverk som tar bort den lokala undernätsbegränsningen och tillåter fjärråtkomst: Set-NetFirewallRule -Name "WINRM-HTTP-In-TCP-PUBLIC" -RemoteAddress Any

Enable-PSRemoting aktiverar alla sessionskonfigurationer genom att ange värdet för egenskapen Aktiverad för alla sessionskonfigurationer till $True.

Enable-PSRemoting tar bort inställningarna för Deny_All och Network_Deny_All . Detta ger fjärråtkomst till sessionskonfigurationer som har reserverats för lokal användning.