Disable-PSRemoting
Hindrar fjärranvändare från att köra kommandon på den lokala datorn.
Syntax
Disable-PSRemoting
[-Force]
[-WhatIf]
[-Confirm]
[<CommonParameters>]
Description
Cmdleten Disable-PSRemoting hindrar användare på andra datorer från att köra kommandon på den lokala datorn.
Disable-PSRemoting blockerar fjärråtkomst till alla sessionskonfigurationer på den lokala datorn. Detta förhindrar att fjärranslutna användare skapar tillfälliga eller beständiga sessioner till den lokala datorn. Disable-PSRemoting hindrar inte användare av den lokala datorn från att skapa sessioner (PSSessioner) på den lokala datorn eller fjärrdatorerna.
Om du vill återaktivera fjärråtkomst till alla sessionskonfigurationer använder du cmdleten Enable-PSRemoting. Om du vill aktivera fjärråtkomst till valda sessionskonfigurationer använder du parametern AccessMode i cmdleten Set-PSSessionConfiguration. Du kan också använda cmdletarna Enable-PSSessionConfiguration och Disable-PSSessionConfiguration för att aktivera och inaktivera sessionskonfigurationer för alla användare. Mer information om sessionskonfigurationer finns i about_Session_Configurations.
I Windows PowerShell 2.0 Inaktivera PSRemoting hindrar alla användare från att skapa användarhanterade sessioner på den lokala datorn. I Windows PowerShell 3.0 Inaktivera PSRemoting hindrar användare på andra datorer från att skapa användarhanterade sessioner på den lokala datorn, men tillåter användare av den lokala datorn att skapa användarhanterade loopback-sessioner.
Om du vill köra den här cmdleten startar du Windows PowerShell med alternativet Kör som administratör.
VARNING! På system som har både Windows PowerShell 3.0 och Windows PowerShell 2.0-motorn ska du inte använda Windows PowerShell 2.0 för att köra Enable-PSRemoting och Disable-PSRemoting cmdlets. Kommandona kan se ut att lyckas, men fjärrkommunikationen är inte korrekt konfigurerad. Fjärrkommandon och senare försök att aktivera och inaktivera fjärrkommunikation kommer sannolikt att misslyckas.
Exempel
Exempel 1: Förhindra fjärråtkomst till alla sessionskonfigurationer
PS C:\> Disable-PSRemoting
Det här kommandot förhindrar fjärråtkomst till alla sessionskonfigurationer på datorn.
Exempel 2: Förhindra fjärråtkomst till alla sessionskonfigurationer utan bekräftelse
PS C:\> Disable-PSRemoting -Force
Det här kommandot förhindrar fjärråtkomst till alla sessionskonfigurationer på datorn utan att fråga.
Exempel 3: Effekter av att köra den här cmdleten
PS C:\> Disable-PSRemoting -Force
[ADMIN] PS C:\> New-PSSession -ComputerName localhost
Id Name ComputerName State Configuration Availability
-- ---- ------------ ----- ------------- ------------
1 Session1 Server02... Opened Microsoft.PowerShell Available
# On Server02 remote computer:
PS C:\> New-PSSession -ComputerName Server01
[SERVER01] Connecting to remote server failed with the following error
message : Access is denied. For more information, see the about_Remote_Troubleshooting Help topic.
+ CategoryInfo : OpenError: (System.Manageme....RemoteRunspace:RemoteRunspace) [], PSRemotingTransportException
+ FullyQualifiedErrorId : PSSessionOpenFailed
Det här exemplet visar effekten av att använda cmdleten Disable-PSRemoting. Om du vill köra den här kommandosekvensen startar du Windows PowerShell med alternativet Kör som administratör.
Det första kommandot använder cmdleten Disable-PSRemoting för att inaktivera alla registrerade sessionskonfigurationer på Server01-datorn.
Det andra kommandot använder cmdleten New-PSSession för att skapa en fjärrsession till den lokala datorn (kallas även "loopback"). Kommandot lyckas.
Det tredje kommandot körs på server02-fjärrdatorn. Kommandot använder cmdleten New-PSSession för att skapa en session på server01-fjärrdatorn. Eftersom fjärråtkomst är inaktiverat misslyckas kommandot.
Exempel 4: Effekter av att köra den här cmdleten och Enable-PSRemoting
PS C:\> Disable-PSRemoting -force
[ADMIN] PS C:\> Get-PSSessionConfiguration | Format-Table -Property Name, Permission -Auto
Name Permission
---- ----------
microsoft.powershell NT AUTHORITY\NETWORK AccessDenied, BUILTIN\Administrators AccessAllowed
microsoft.powershell.workflow NT AUTHORITY\NETWORK AccessDenied, BUILTIN\Administrators AccessAllowed
microsoft.powershell32 NT AUTHORITY\NETWORK AccessDenied, BUILTIN\Administrators AccessAllowed
microsoft.ServerManager NT AUTHORITY\NETWORK AccessDenied, BUILTIN\Administrators AccessAllowed
WithProfile NT AUTHORITY\NETWORK AccessDenied, BUILTIN\Administrators AccessAllowed
[ADMIN] PS C:\> Enable-PSRemoting -Force
WinRM already is set up to receive requests on this machine.
WinRM already is set up for remote management on this machine.
[ADMIN] PS C:\> Get-PSSessionConfiguration | Format-Table -Property Name, Permission -Auto
Name Permission
---- ----------
microsoft.powershell BUILTIN\Administrators AccessAllowed
microsoft.powershell.workflow BUILTIN\Administrators AccessAllowed
microsoft.powershell32 BUILTIN\Administrators AccessAllowed
microsoft.ServerManager BUILTIN\Administrators AccessAllowed
WithProfile BUILTIN\Administrators AccessAllowed
Det här exemplet visar effekten på sessionskonfigurationerna för att använda Disable-PSRemoting och Enable-PSRemoting cmdlets.
Det första kommandot använder cmdleten Disable-PSRemoting för att inaktivera fjärråtkomst till alla sessionskonfigurationer. Parametern Force undertrycker alla användarprompter.
Det andra kommandot använder cmdleten Get-PSSessionConfiguration för att visa sessionskonfigurationerna på datorn. Kommandot använder en pipelineoperator för att skicka resultatet till ett Format-Table kommando, som endast visar egenskaperna Namn och Behörighet för konfigurationerna i en tabell.
Utdata visar att endast fjärranvändare nekas åtkomst till konfigurationerna. Medlemmar i gruppen Administratörer på den lokala datorn får använda sessionskonfigurationerna. Utdata visar också att kommandot påverkar alla sessionskonfigurationer som innehåller den användarskapade WithProfile-sessionskonfigurationen.
Det tredje kommandot använder cmdleten Enable-PSRemoting för att återaktivera fjärråtkomst till alla sessionskonfigurationer på datorn. Kommandot använder parametern Force för att förhindra alla användarprompter och starta om WinRM-tjänsten utan att fråga.
Det fjärde kommandot använder cmdletarna Get-PSSessionConfiguration och Format-Table för att visa namn och behörigheter för sessionskonfigurationerna. Resultatet visar att AccessDenied-säkerhetsbeskrivningarna har tagits bort från alla sessionskonfigurationer.
Exempel 5: Förhindra fjärråtkomst till sessionskonfigurationer som har anpassade säkerhetsbeskrivningar
PS C:\> Register-PSSessionConfiguration -Name Test -FilePath .\TestEndpoint.pssc -ShowSecurityDescriptorUI
[ADMIN] PS C:\> Get-PSSessionConfiguration | Format-Table -Property Name, Permission -Wrap
Name Permission
---- ----------
microsoft.powershell BUILTIN\Administrators AccessAllowed
Test NT AUTHORITY\INTERACTIVE AccessAllowed, BUILTIN\Administrators AccessAllowed,
DOMAIN01\User01 AccessAllowed
[ADMIN] PS C:\> Disable-PSRemoting -Force
[ADMIN] PS C:\> Get-PSSessionConfiguration | Format-Table -Property Name, Permission -Wrap
Name Permission
---- ----------
microsoft.powershell NT AUTHORITY\NETWORK AccessDenied, BUILTIN\Administrators AccessAllowed
Test NT AUTHORITY\NETWORK AccessDenied, NTAUTHORITY\INTERACTIVE AccessAllowed,
BUILTIN\Administrators AccessAllowed, DOMAIN01\User01 AccessAllowed
# Domain01\User01
PS C:\> New-PSSession -ComputerName Server01 -ConfigurationName Test
[Server01] Connecting to remote server failed with the following error message : Access is denied. For more information, see the about_Rem
ote_Troubleshooting Help topic.
+ CategoryInfo : OpenError: (System.Manageme....RemoteRunspace:RemoteRunspace) [], PSRemotingTransportException
+ FullyQualifiedErrorId : PSSessionOpenFailed
Det här exemplet visar att cmdleten Disable-PSRemoting inaktiverar fjärråtkomst till alla sessionskonfigurationer som innehåller sessionskonfigurationer med anpassade säkerhetsbeskrivningar.
Det första kommandot använder cmdleten Register-PSSessionConfiguration för att skapa testsessionskonfigurationen. Kommandot använder parametern FilePath för att ange en sessionskonfigurationsfil som anpassar sessionen och parametern ShowSecurityDescriptorUI för att visa en dialogruta som anger behörigheter för sessionskonfigurationen. I dialogrutan Behörigheter skapar vi anpassade fullständig åtkomstbehörigheter för domain01\User01-användaren.
Det andra kommandot använder cmdletarna Get-PSSessionConfiguration och Format-Table för att visa sessionskonfigurationerna och deras egenskaper. Utdata visar att testsessionskonfigurationen tillåter interaktiv åtkomst och särskilda behörigheter för domain01\User01-användaren.
Det tredje kommandot använder cmdleten Disable-PSRemoting för att inaktivera fjärråtkomst till alla sessionskonfigurationer.
Det fjärde kommandot använder cmdletarna Get-PSSessionConfiguration och Format-Table för att visa sessionskonfigurationerna och deras egenskaper. Utdata visar att en AccessDenied-säkerhetsbeskrivning för alla nätverksanvändare läggs till i alla sessionskonfigurationer som innehåller testsessionskonfigurationen. Även om de andra säkerhetsbeskrivningarna inte ändras har säkerhetsbeskrivningen "network_deny_all" företräde.
Det femte kommandot visar att kommandot Disable-PSRemoting förhindrar att även den Domain01\User01-användare som har särskilda behörigheter till testsessionskonfigurationen använder testsessionskonfigurationen för att ansluta till datorn via fjärranslutning.
Exempel 6: Återaktivera fjärråtkomst till valda sessionskonfigurationer
PS C:\> Disable-PSRemoting -Force
[ADMIN] PS C:\> Get-PSSessionConfiguration | Format-Table -Property Name, Permission -Auto
Name Permission
---- ----------
microsoft.powershell NT AUTHORITY\NETWORK AccessDenied, BUILTIN\Administrators AccessAllowed
microsoft.powershell.workflow NT AUTHORITY\NETWORK AccessDenied, BUILTIN\Administrators AccessAllowed
microsoft.powershell32 NT AUTHORITY\NETWORK AccessDenied, BUILTIN\Administrators AccessAllowed
microsoft.ServerManager NT AUTHORITY\NETWORK AccessDenied, BUILTIN\Administrators AccessAllowed
WithProfile NT AUTHORITY\NETWORK AccessDenied, BUILTIN\Administrators AccessAllowed
[ADMIN] PS C:\> Set-PSSessionConfiguration -Name Microsoft.ServerManager -AccessMode Remote -Force
[ADMIN] PS C:\> Get-PSSessionConfiguration | Format-Table -Property Name, Permission -Auto
Name Permission
---- ----------
microsoft.powershell NT AUTHORITY\NETWORK AccessDenied, BUILTIN\Administrators AccessAllowed
microsoft.powershell.workflow NT AUTHORITY\NETWORK AccessDenied, BUILTIN\Administrators AccessAllowed
microsoft.powershell32 NT AUTHORITY\NETWORK AccessDenied, BUILTIN\Administrators AccessAllowed
microsoft.ServerManager BUILTIN\Administrators AccessAllowed
WithProfile NT AUTHORITY\NETWORK AccessDenied, BUILTIN\Administrators AccessAllowed
Det här exemplet visar hur du återaktiverar fjärråtkomst endast till valda sessionskonfigurationer.
Det första kommandot använder cmdleten Disable-PSRemoting för att inaktivera fjärråtkomst till alla sessionskonfigurationer.
Det andra kommandot använder cmdletarna Get-PSSessionConfiguration och Format-Table för att visa sessionskonfigurationerna och deras egenskaper. Utdata visar att en AccessDenied-säkerhetsbeskrivning för alla nätverksanvändare läggs till i alla sessionskonfigurationer.
Det tredje kommandot använder cmdleten Set-PSSessionConfiguration. Kommandot använder parametern AccessMode med värdet Fjärr för att aktivera fjärråtkomst till sessionskonfigurationen Microsoft.ServerManager. Du kan också använda parametern AccessMode för att aktivera lokal åtkomst och inaktivera sessionskonfigurationer.
Det fjärde kommandot använder cmdletarna Get-PSSessionConfiguration och Format-Table för att visa sessionskonfigurationerna och deras egenskaper. Utdata visar att AccessDenied-säkerhetsbeskrivningen för alla nätverksanvändare tas bort, vilket återställer fjärråtkomst till sessionskonfigurationen Microsoft.ServerManager.
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 indata till den här cmdleten.
Utdata
None
Den här cmdleten returnerar inte något objekt.
Kommentarer
Om du inaktiverar sessionskonfigurationerna ångras inte alla ändringar som gjorts av Enable-PSRemoting eller Enable-PSSessionConfiguration cmdlets. Du kan behöva ångra följande ändringar manuellt.
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 sessionskonfiguration ä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 sessionskonfigurationer som är registrerade på datorn. Genom att neka fjärråtkomst till alla sessionskonfigurationer förhindrar du effektivt fjärranvändare från att upprätta sessioner som ansluter till datorn.
I Windows PowerShell 2.0 lägger Disable-PSRemoting till en Deny_All post i säkerhetsbeskrivningarna för alla sessionskonfigurationer. Den här inställningen hindrar alla användare från att skapa användarhanterade sessioner till den lokala datorn. I Windows PowerShell 3.0 lägger Disable-PSRemoting till en Network_Deny_All post i säkerhetsbeskrivningarna för alla sessionskonfigurationer. Den här inställningen hindrar användare på andra datorer från att skapa användarhanterade sessioner på den lokala datorn, men tillåter användare av den lokala datorn att skapa användarhanterade loopback-sessioner.
I Windows PowerShell 2.0 Disable-PSRemoting motsvarar Disable-PSSessionConfiguration -Name *
.
I Windows PowerShell 3.0 och senare versioner motsvarar Disable-PSRemotingSet-PSSessionConfiguration -Name \<Configuration name\> -AccessMode Local
I Windows PowerShell 2.0 är Disable-PSRemoting en funktion. Från och med Windows PowerShell 3.0 är det en cmdlet.