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-tekniken. WS-hanteringsbaserad 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 den inaktiveras.

Du behöver bara köra det här kommandot en gång på varje dator som tar 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 finns 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. Om du kör Enable-PSRemoting PowerShell 6.2 konfigureras därför en fjärrkommunikationsslutpunkt som kör PowerShell 6.2. Om du kör Enable-PSRemoting PowerShell 7-preview konfigureras en fjärrkommunikationsslutpunkt som kör PowerShell 7-förhandsversionen.

Enable-PSRemoting skapar två fjärranslutningsslutpunktskonfigurationer 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. Du kan också 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-PSSession.Enter-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 de 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 göra de föregående ändringarna gällande.

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. Det 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 för 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 annorlunda för olika versioner av Windows. Använd Get-NetFirewallRule för att 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 -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

Som standard Enable-PSRemoting skapar du 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 force-parametern för att undertrycka bekräftelsemeddelanden.

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

Cmdleten Set-NetFirewallRulei 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.3.0).

Det sista kommandot använder 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.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

Kommentar

Namnet på brandväggsregeln kan vara olika beroende på vilken version av Windows. 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
Required: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
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-SkipNetworkProfileCheck

Anger att den här cmdleten möjliggör fjärrkommunikation på 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 brandväggsregel för lokala undernät 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 begränsningen för det lokala undernätet och aktivera fjärråtkomst från alla platser i offentliga nätverk använder du cmdleten Set-NetFirewallRulei NetSecurity-modulen .

Den här parametern introducerades i PowerShell 3.0.

Type:SwitchParameter
Position:Named
Default value:None
Required:False
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
Required:False
Accept pipeline input:False
Accept wildcard characters:False

Indata

None

Du kan inte skicka objekt till den här cmdleten.

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 du 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 du 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 köra följande kommando för att skapa en brandväggsregel för offentliga nätverk som tar bort begränsningen för det lokala undernätet 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-PSRemotingtar 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.