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-Command
cmdletarna ,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-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.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.
Typ: | SwitchParameter |
Alias: | cf |
Position: | Named |
Standardvärde: | False |
Obligatorisk: | False |
Godkänn pipeline-indata: | False |
Godkänn jokertecken: | False |
-Force
Tvingar kommandot att köras utan att be om användarbekräftelse.
Typ: | SwitchParameter |
Position: | Named |
Standardvärde: | None |
Obligatorisk: | False |
Godkänn pipeline-indata: | False |
Godkänn jokertecken: | 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-NetFirewallRule
i NetSecurity-modulen .
Den här parametern introducerades i PowerShell 3.0.
Typ: | SwitchParameter |
Position: | Named |
Standardvärde: | None |
Obligatorisk: | False |
Godkänn pipeline-indata: | False |
Godkänn jokertecken: | False |
-WhatIf
Visar vad som skulle hända om cmdleten kördes. Cmdleten körs inte.
Typ: | SwitchParameter |
Alias: | wi |
Position: | Named |
Standardvärde: | False |
Obligatorisk: | False |
Godkänn pipeline-indata: | False |
Godkänn jokertecken: | False |
Indata
None
Du kan inte skicka objekt till den här cmdleten.
Utdata
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-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.