Dela via


Disable-PSRemoting

Förhindrar att PowerShell-slutpunkter tar emot fjärranslutningar.

Syntax

Disable-PSRemoting
       [-Force]
       [-WhatIf]
       [-Confirm]
       [<CommonParameters>]

Description

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

Cmdleten Disable-PSRemoting blockerar fjärråtkomst till alla PowerShell version 6- och senare sessionsslutpunktskonfigurationer på den lokala datorn. Det påverkar inte Windows PowerShell-slutpunktskonfigurationer. Om du vill inaktivera windows PowerShell-sessionsslutpunktskonfigurationer kör du kommandot Disable-PSRemoting inifrån en Windows PowerShell-session.

Använd cmdleten Enable-PSRemoting för att återaktivera fjärråtkomst till alla PowerShell version 6- och senare sessionsslutpunktskonfigurationer. Om du vill återaktivera fjärråtkomst till alla Windows PowerShell-sessionsslutpunktskonfigurationer kör du Enable-PSRemoting inifrån en Windows PowerShell-session.

Not

Om du vill inaktivera all PowerShell-fjärråtkomst till en lokal Windows-dator måste du köra det här kommandot både från en session i PowerShell version 6 eller senare och inifrån en Windows PowerShell-session. Windows PowerShell är installerat på alla Windows-datorer som standard.

Om du vill inaktivera och återaktivera fjärråtkomst till specifika sessionsslutpunktskonfigurationer använder du cmdletarna Enable-PSSessionConfiguration och Disable-PSSessionConfiguration. Om du vill ange specifika åtkomstkonfigurationer för enskilda slutpunkter använder du cmdleten Set-PSSessionConfiguration tillsammans med parametern AccessMode. Mer information om sessionskonfigurationer finns i about_Session_Configurations.

Not

Även när du har kört Disable-PSRemoting kan du fortfarande göra loopback-anslutningar på den lokala datorn. En loopback-anslutning är en PowerShell-fjärrsession som kommer från och ansluter till samma lokala dator. Fjärrsessioner från externa källor är fortfarande blockerade. För loopback-anslutningar måste du använda implicita autentiseringsuppgifter längs parametern EnableNetworkAccess. Mer information om loopback-anslutningar finns i New-PSSession.

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

Exempel

Exempel 1: Förhindra fjärråtkomst till alla PowerShell-sessionskonfigurationer

Det här exemplet förhindrar fjärråtkomst till alla PowerShell-sessionsslutpunktskonfigurationer på datorn.

Disable-PSRemoting

WARNING: PowerShell remoting has been disabled only for PowerShell 6+ configurations and does not affect
 Windows PowerShell remoting configurations. Run this cmdlet in Windows PowerShell to affect all PowerShell
 remoting configurations.

WARNING: Disabling the session configurations does not undo all the changes made by the Enable-PSRemoting
 or Enable-PSSessionConfiguration cmdlet. You might have to manually undo the changes by following these steps:
    1. Stop and disable the WinRM service.
    2. Delete the listener that accepts requests on any IP address.
    3. Disable the firewall exceptions for WS-Management communications.
    4. Restore the value of the LocalAccountTokenFilterPolicy to 0, which restricts remote access to
       members of the Administrators group on the computer.

Exempel 2: Förhindra fjärråtkomst till alla PowerShell-sessionskonfigurationer utan bekräftelse

Det här exemplet förhindrar fjärråtkomst till alla PowerShell-sessionsslutpunktskonfigurationer på datorn utan att fråga.

Disable-PSRemoting -Force

WARNING: PowerShell remoting has been disabled only for PowerShell 6+ configurations and does not affect
 Windows PowerShell remoting configurations. Run this cmdlet in Windows PowerShell to affect all PowerShell
 remoting configurations.

WARNING: Disabling the session configurations does not undo all the changes made by the Enable-PSRemoting
 or Enable-PSSessionConfiguration cmdlet. You might have to manually undo the changes by following these steps:
    1. Stop and disable the WinRM service.
    2. Delete the listener that accepts requests on any IP address.
    3. Disable the firewall exceptions for WS-Management communications.
    4. Restore the value of the LocalAccountTokenFilterPolicy to 0, which restricts remote access to
       members of the Administrators group on the computer.

Exempel 3: Effekter av att köra den här cmdleten

Det här exemplet visar effekten av att använda cmdleten Disable-PSRemoting. Om du vill köra den här kommandosekvensen startar du PowerShell med alternativet Kör som administratör.

När du har inaktiverat sessionskonfigurationerna försöker New-PSSession-cmdleten skapa en fjärrsession till den lokala datorn (kallas även "loopback"). Eftersom fjärråtkomst är inaktiverat på den lokala datorn misslyckas kommandot.

Disable-PSRemoting -Force
New-PSSession -ComputerName localhost -ConfigurationName PowerShell.6

WARNING: Disabling the session configurations does not undo all the changes made by the Enable-PSRemoting
 or Enable-PSSessionConfiguration cmdlet. You might have to manually undo the changes by following these steps:
    1. Stop and disable the WinRM service.
    2. Delete the listener that accepts requests on any IP address.
    3. Disable the firewall exceptions for WS-Management communications.
    4. Restore the value of the LocalAccountTokenFilterPolicy to 0, which restricts remote access to
       members of the Administrators group on the computer.

New-PSSession : [localhost] Connecting to remote server localhost failed with the following error
 message : Access is denied. For more information, see the about_Remote_Troubleshooting Help topic.
At line:1 char:1
+ New-PSSession -ComputerName localhost -ConfigurationName PowerShell.6
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ CategoryInfo          : OpenError: (System.Management.A\u2026tion.RemoteRunspace:RemoteRunspace)
 [New-PSSession], PSRemotingTransportException
+ FullyQualifiedErrorId : AccessDenied,PSSessionOpenFailed

Exempel 4: Effekter av att köra den här cmdleten och Enable-PSRemoting

Det här exemplet visar effekten på sessionskonfigurationerna för att använda cmdletarna Disable-PSRemoting och Enable-PSRemoting.

Disable-PSRemoting används för att inaktivera fjärråtkomst till alla PowerShell-sessionsslutpunktskonfigurationer. Parametern Force undertrycker alla användarprompter. Cmdletarna Get-PSSessionConfiguration och Format-Table visar sessionskonfigurationerna på datorn.

Utdata visar att alla fjärranvändare med en nätverkstoken nekas åtkomst till slutpunktskonfigurationerna. Gruppen Administratörer på den lokala datorn får åtkomst till slutpunktskonfigurationerna så länge de ansluter lokalt (kallas även loopback) och använder implicita autentiseringsuppgifter.

Disable-PSRemoting -Force
Get-PSSessionConfiguration | Format-Table -Property Name, Permission -AutoSize

Enable-PSRemoting -Force
Get-PSSessionConfiguration | Format-Table -Property Name, Permission -AutoSize

Name               Permission
----               ----------
PowerShell.6       NT AUTHORITY\NETWORK AccessDenied, NT AUTHORITY\INTERACTIVE AccessAllowed, BUILTIN\Administrators AccessAllowed ...
PowerShell.6.2.0   NT AUTHORITY\NETWORK AccessDenied, NT AUTHORITY\INTERACTIVE AccessAllowed, BUILTIN\Administrators AccessAllowed ...

Name               Permission
----               ----------
PowerShell.6       NT AUTHORITY\INTERACTIVE AccessAllowed, BUILTIN\Administrators AccessAllowed ...
PowerShell.6.2.0   NT AUTHORITY\INTERACTIVE AccessAllowed, BUILTIN\Administrators AccessAllowed ...

Cmdleten Enable-PSRemoting återaktiver fjärråtkomst till alla PowerShell-sessionsslutpunktskonfigurationer på datorn. Parametern Force undertrycker alla användarprompter och startar om WinRM-tjänsten utan att fråga. De nya utdata visar att AccessDenied säkerhetsbeskrivningar har tagits bort från alla sessionskonfigurationer.

Exempel 5: Loopback-anslutningar med inaktiverade sessionsslutpunktskonfigurationer

Det här exemplet visar hur slutpunktskonfigurationer inaktiveras och visar hur du gör en lyckad loopback-anslutning till en inaktiverad slutpunkt. Disable-PSRemoting inaktiverar alla PowerShell-sessionsslutpunktskonfigurationer.

Disable-PSRemoting -Force

WARNING: PowerShell remoting has been disabled only for PowerShell 6+ configurations and does not affect
 Windows PowerShell remoting configurations. Run this cmdlet in Windows PowerShell to affect all PowerShell
 remoting configurations.

WARNING: Disabling the session configurations does not undo all the changes made by the Enable-PSRemoting
 or Enable-PSSessionConfiguration cmdlet. You might have to manually undo the changes by following these steps:
    1. Stop and disable the WinRM service.
    2. Delete the listener that accepts requests on any IP address.
    3. Disable the firewall exceptions for WS-Management communications.
    4. Restore the value of the LocalAccountTokenFilterPolicy to 0, which restricts remote access to
       members of the Administrators group on the computer.

New-PSSession -ComputerName localhost -ConfigurationName powershell.6 -Credential (Get-Credential)

PowerShell credential request
Enter your credentials.
User: UserName
Password for user UserName: ************

New-PSSession: [localhost] Connecting to remote server localhost failed with the following error message
 : Access is denied. For more information, see the about_Remote_Troubleshooting Help topic.

New-PSSession -ComputerName localhost -ConfigurationName powershell.6 -EnableNetworkAccess

Id Name       Transport ComputerName  ComputerType   State   ConfigurationName   Availability
 -- ----       --------- ------------  ------------   -----   -----------------   ------------
 1  Runspace1  WSMan     localhost     RemoteMachine  Opened  powershell.6           Available

Den första användningen av New-PSSession försöker skapa en fjärrsession till den lokala datorn. Parametern ConfigurationName används för att ange en inaktiverad PowerShell-slutpunkt. Autentiseringsuppgifter skickas uttryckligen till kommandot via parametern Credential. Den här typen av anslutning går via nätverksstacken och är inte en loopback. Anslutningsförsöket till den inaktiverade slutpunkten misslyckas därför med ett Åtkomst nekas fel.

Den andra användningen av New-PSSession försöker också skapa en fjärrsession till den lokala datorn. I det här fallet lyckas det eftersom det är en loopback-anslutning som kringgår nätverksstacken.

En loopback-anslutning skapas när följande villkor uppfylls:

  • Datornamnet som ska anslutas till är "localhost".
  • Inga autentiseringsuppgifter skickas in. Aktuell inloggad användare (implicita autentiseringsuppgifter) används för anslutningen.
  • Parametern EnableNetworkAccess switch används.

Mer information om loopback-anslutningar finns i dokumentet New-PSSession.

Exempel 6: Inaktivera alla PowerShell-fjärrkommunikationsslutpunktskonfigurationer

Det här exemplet visar hur körning av kommandot Disable-PSRemoting inte påverkar Windows PowerShell-slutpunktskonfigurationer. Get-PSSessionConfiguration som körs i Windows PowerShell visar alla slutpunktskonfigurationer. Vi ser att Windows PowerShell-slutpunktskonfigurationerna inte är inaktiverade.

Disable-PSRemoting -Force
powershell.exe -command 'Get-PSSessionConfiguration'

WARNING: PowerShell remoting has been disabled only for PowerShell 6+ configurations and does not affect
 Windows PowerShell remoting configurations. Run this cmdlet in Windows PowerShell to affect all PowerShell
 remoting configurations.

WARNING: Disabling the session configurations does not undo all the changes made by the Enable-PSRemoting
 or Enable-PSSessionConfiguration cmdlet. You might have to manually undo the changes by following these steps:
    1. Stop and disable the WinRM service.
    2. Delete the listener that accepts requests on any IP address.
    3. Disable the firewall exceptions for WS-Management communications.
    4. Restore the value of the LocalAccountTokenFilterPolicy to 0, which restricts remote access to
       members of the Administrators group on the computer.

Name          : microsoft.powershell
PSVersion     : 5.1
StartupScript :
RunAsUser     :
Permission    : NT AUTHORITY\INTERACTIVE AccessAllowed, BUILTIN\Administrators AccessAllowed, BUILTIN\Remote
                Management Users AccessAllowed

Name          : microsoft.powershell.workflow
PSVersion     : 5.1
StartupScript :
RunAsUser     :
Permission    : BUILTIN\Administrators AccessAllowed, BUILTIN\Remote Management Users AccessAllowed

Name          : microsoft.powershell32
PSVersion     : 5.1
StartupScript :
RunAsUser     :
Permission    : NT AUTHORITY\INTERACTIVE AccessAllowed, BUILTIN\Administrators AccessAllowed, BUILTIN\Remote
                Management Users AccessAllowed

Name          : PowerShell.6
PSVersion     : 6.2
StartupScript :
RunAsUser     :
Permission    : NT AUTHORITY\NETWORK AccessDenied, NT AUTHORITY\INTERACTIVE AccessAllowed, BUILTIN\Administrators
                AccessAllowed, BUILTIN\Remote Management Users AccessAllowed

Name          : PowerShell.6.2.2
PSVersion     : 6.2
StartupScript :
RunAsUser     :
Permission    : NT AUTHORITY\NETWORK AccessDenied, NT AUTHORITY\INTERACTIVE AccessAllowed, BUILTIN\Administrators
                AccessAllowed, BUILTIN\Remote Management Users AccessAllowed

powershell.exe -command 'Disable-PSRemoting -Force'
powershell.exe -command 'Get-PSSessionConfiguration'

WARNING: Disabling the session configurations does not undo all the changes made by the Enable-PSRemoting or
Enable-PSSessionConfiguration cmdlet. You might have to manually undo the changes by following these steps:
    1. Stop and disable the WinRM service.
    2. Delete the listener that accepts requests on any IP address.
    3. Disable the firewall exceptions for WS-Management communications.
    4. Restore the value of the LocalAccountTokenFilterPolicy to 0, which restricts remote access to members of the
Administrators group on the computer.

Name          : microsoft.powershell
PSVersion     : 5.1
StartupScript :
RunAsUser     :
Permission    : NT AUTHORITY\NETWORK AccessDenied, NT AUTHORITY\INTERACTIVE AccessAllowed, BUILTIN\Administrators
                AccessAllowed, BUILTIN\Remote Management Users AccessAllowed

Name          : microsoft.powershell.workflow
PSVersion     : 5.1
StartupScript :
RunAsUser     :
Permission    : NT AUTHORITY\NETWORK AccessDenied, BUILTIN\Administrators AccessAllowed, BUILTIN\Remote Management
                Users AccessAllowed

Name          : microsoft.powershell32
PSVersion     : 5.1
StartupScript :
RunAsUser     :
Permission    : NT AUTHORITY\NETWORK AccessDenied, NT AUTHORITY\INTERACTIVE AccessAllowed, BUILTIN\Administrators
                AccessAllowed, BUILTIN\Remote Management Users AccessAllowed

Name          : PowerShell.6
PSVersion     : 6.2
StartupScript :
RunAsUser     :
Permission    : NT AUTHORITY\NETWORK AccessDenied, NT AUTHORITY\INTERACTIVE AccessAllowed, BUILTIN\Administrators
                AccessAllowed, BUILTIN\Remote Management Users AccessAllowed

Name          : PowerShell.6.2.2
PSVersion     : 6.2
StartupScript :
RunAsUser     :
Permission    : NT AUTHORITY\NETWORK AccessDenied, NT AUTHORITY\INTERACTIVE AccessAllowed, BUILTIN\Administrators
                AccessAllowed, BUILTIN\Remote Management Users AccessAllowed

Om du vill inaktivera dessa slutpunktskonfigurationer måste kommandot Disable-PSRemoting köras inifrån en Windows PowerShell-session. Nu visar Get-PSSessionConfiguration som körs inifrån Windows PowerShell att alla slutpunktskonfigurationer är inaktiverade.

Exempel 7: Förhindra fjärråtkomst till sessionskonfigurationer som har anpassade säkerhetsbeskrivningar

Det här exemplet visar att cmdleten Disable-PSRemoting inaktiverar fjärråtkomst till alla sessionskonfigurationer som innehåller sessionskonfigurationer med anpassade säkerhetsbeskrivningar.

Register-PSSessionConfiguration skapar Test sessionskonfiguration. Parametern FilePath anger en sessionskonfigurationsfil som anpassar sessionen. Parametern ShowSecurityDescriptorUI visar en dialogruta som anger behörigheter för sessionskonfigurationen. I dialogrutan Behörigheter skapar vi anpassade behörigheter för fullständig åtkomst för den angivna användaren.

Cmdletarna Get-PSSessionConfiguration och Format-Table visar sessionskonfigurationerna och deras egenskaper. Utdata visar att Test-sessionskonfigurationen tillåter interaktiv åtkomst och särskilda behörigheter för den angivna användaren.

Disable-PSRemoting inaktiverar fjärråtkomst till alla sessionskonfigurationer.

Register-PSSessionConfiguration -Name Test -FilePath .\TestEndpoint.pssc -ShowSecurityDescriptorUI -Force
Get-PSSessionConfiguration | Format-Table -Property Name, Permission -Wrap

Disable-PSRemoting -Force
Get-PSSessionConfiguration | Format-Table -Property Name, Permission -Wrap
New-PSSession -ComputerName localhost -ConfigurationName Test

Name               Permission
----               ----------
PowerShell.6       NT AUTHORITY\INTERACTIVE AccessAllowed, BUILTIN\Administrators AccessAllowed,
                   BUILTIN\Remote Management Users AccessAllowed
PowerShell.6.2.0   NT AUTHORITY\INTERACTIVE AccessAllowed, BUILTIN\Administrators AccessAllowed,
                   BUILTIN\Remote Management Users AccessAllowed
Test               NT AUTHORITY\INTERACTIVE AccessAllowed, BUILTIN\Administrators AccessAllowed,
                   User01 AccessAllowed

WARNING: Disabling the session configurations does not undo all the changes made by the Enable-PSRemoting
 or Enable-PSSessionConfiguration cmdlet. You might have to manually undo the changes by following these steps:
    1. Stop and disable the WinRM service.
    2. Delete the listener that accepts requests on any IP address.
    3. Disable the firewall exceptions for WS-Management communications.
    4. Restore the value of the LocalAccountTokenFilterPolicy to 0, which restricts remote access to
       members of the Administrators group on the computer.

Name               Permission
----               ----------
PowerShell.6       NT AUTHORITY\NETWORK AccessDenied, NT AUTHORITY\INTERACTIVE AccessAllowed,
                   BUILTIN\Administrators AccessAllowed, BUILTIN\Remote Management Users AccessAllowed
PowerShell.6.2.0   NT AUTHORITY\NETWORK AccessDenied, NT AUTHORITY\INTERACTIVE AccessAllowed,
                   BUILTIN\Administrators AccessAllowed, BUILTIN\Remote Management Users AccessAllowed
Test               NT AUTHORITY\NETWORK AccessDenied, NT AUTHORITY\INTERACTIVE AccessAllowed,
                   BUILTIN\Administrators AccessAllowed, User01 AccessAllowed

New-PSSession : [localhost] Connecting to remote server localhost failed with the following error message
 : Access is denied. For more information, see the about_Remote_Troubleshooting Help topic.
At line:1 char:1
+ New-PSSession -ComputerName localhost -ConfigurationName Test
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ CategoryInfo          : OpenError: (System.Management.A\u2026tion.RemoteRunspace:RemoteRunspace)
 [New-PSSession], PSRemotingTransportException
+ FullyQualifiedErrorId : AccessDenied,PSSessionOpenFailed

Nu visar cmdletarna Get-PSSessionConfiguration och Format-Table att en AccessDenied säkerhetsbeskrivning för alla nätverksanvändare läggs till i alla sessionskonfigurationer, inklusive Test sessionskonfiguration. Även om de andra säkerhetsbeskrivningarna inte ändras har säkerhetsbeskrivningen "network_deny_all" företräde. Detta illustreras av försöket att använda New-PSSession för att ansluta till Test sessionskonfiguration.

Exempel 8: Återaktivera fjärråtkomst till valda sessionskonfigurationer

Det här exemplet visar hur du återaktiverar fjärråtkomst endast till valda sessionskonfigurationer. När du har inaktiverat alla sessionskonfigurationer aktiverar vi en specifik session igen.

Cmdleten Set-PSSessionConfiguration används för att ändra PowerShell.6- sessionskonfiguration. Parametern AccessMode med värdet Remote återaktiver fjärråtkomst till konfigurationen.

Disable-PSRemoting -Force
Get-PSSessionConfiguration | Format-Table -Property Name, Permission -AutoSize

Set-PSSessionConfiguration -Name PowerShell.6 -AccessMode Remote -Force
Get-PSSessionConfiguration | Format-Table -Property Name, Permission -AutoSize

WARNING: Disabling the session configurations does not undo all the changes made by the Enable-PSRemoting
 or Enable-PSSessionConfiguration cmdlet. You might have to manually undo the changes by following these steps:
    1. Stop and disable the WinRM service.
    2. Delete the listener that accepts requests on any IP address.
    3. Disable the firewall exceptions for WS-Management communications.
    4. Restore the value of the LocalAccountTokenFilterPolicy to 0, which restricts remote access to
       members of the Administrators group on the computer.

Name                 Permission
----                 ----------
PowerShell.6         NT AUTHORITY\NETWORK AccessDenied, NT AUTHORITY\INTERACTIVE AccessAllowed, BUILTIN\Adm ...
PowerShell.6.2.0     NT AUTHORITY\NETWORK AccessDenied, NT AUTHORITY\INTERACTIVE AccessAllowed, BUILTIN\Adm ...

Name                 Permission
----                 ----------
PowerShell.6         NT AUTHORITY\INTERACTIVE AccessAllowed, BUILTIN\Administrators AccessAllowed, BUILTIN\ ...
PowerShell.6.2.0     NT AUTHORITY\NETWORK AccessDenied, NT AUTHORITY\INTERACTIVE AccessAllowed, BUILTIN\Adm ...

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

-WhatIf

Visar vad som skulle hända om cmdleten körs. 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

None

Den här cmdleten returnerar inga utdata.

Kommentarer

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

  • Om du inaktiverar sessionskonfigurationerna ångras inte alla ändringar som gjorts av cmdletarna Enable-PSRemoting eller Enable-PSSessionConfiguration. Du kan behöva ångra följande ändringar manuellt.

    1. Stoppa och inaktivera WinRM-tjänsten.
    2. Ta bort lyssnaren som accepterar begäranden på alla IP-adresser.
    3. Inaktivera brandväggsfelen för WS-Management kommunikation.
    4. Återställ värdet för LocalAccountTokenFilterPolicy till 0, vilket begränsar fjärråtkomsten till medlemmar i gruppen Administratörer på datorn.
  • En sessionsslutpunktskonfiguration är en grupp med inställningar som definierar miljön för en session. Varje session som ansluter till datorn måste använda någon av de sessionsslutpunktskonfigurationer som är registrerade på datorn. Genom att neka fjärråtkomst till alla konfigurationer av sessionsslutpunkter förhindrar du effektivt fjärranvändare från att upprätta sessioner som ansluter till datorn.