Disable-PSRemoting
Impide que los puntos de conexión de PowerShell reciban conexiones remotas.
Syntax
Disable-PSRemoting
[-Force]
[-WhatIf]
[-Confirm]
[<CommonParameters>]
Description
Este cmdlet solo está disponible en la plataforma Windows.
El Disable-PSRemoting
cmdlet bloquea el acceso remoto a todas las configuraciones de punto de conexión de sesión de PowerShell versión 6 y posteriores en el equipo local. No afecta a Windows PowerShell configuraciones de punto de conexión. Para deshabilitar Windows PowerShell configuraciones de punto de conexión de sesión, ejecute Disable-PSRemoting
el comando desde una sesión de Windows PowerShell.
Para volver a habilitar el acceso remoto a todas las configuraciones de punto de conexión de sesión de PowerShell versión 6 y posteriores, use el Enable-PSRemoting
cmdlet . Para volver a habilitar el acceso remoto a todas las configuraciones de punto de conexión de sesión de Windows PowerShell, ejecute Enable-PSRemoting
desde dentro de una sesión de Windows PowerShell.
Nota
Si desea deshabilitar todo el acceso remoto de PowerShell a un equipo Windows local, debe ejecutar este comando desde una sesión dentro de powerShell versión 6 o posterior y desde dentro de una sesión de Windows PowerShell. Windows PowerShell está instalado en todas las máquinas Windows de forma predeterminada.
Para deshabilitar y volver a habilitar el acceso remoto a configuraciones de punto de conexión de sesión específicas, use los Enable-PSSessionConfiguration
cmdlets y Disable-PSSessionConfiguration
. Para establecer configuraciones de acceso específicas de puntos de conexión individuales, use el Set-PSSessionConfiguration
cmdlet junto con el parámetro AccessMode . Para obtener más información sobre las configuraciones de sesión, consulte about_Session_Configurations.
Nota
Incluso después de ejecutar Disable-PSRemoting
, todavía puede realizar conexiones de bucle invertido en el equipo local. Una conexión de bucle invertido es una sesión remota de PowerShell que se origina y se conecta a la misma máquina local. Las sesiones remotas de orígenes externos permanecen bloqueadas. Para las conexiones de bucle invertido, debe usar credenciales implícitas a lo largo del parámetro EnableNetworkAccess . Para obtener más información sobre las conexiones de bucle invertido, consulte New-PSSession.
Este cmdlet solo está disponible en la plataforma Windows. No está disponible en las versiones de Linux o macOS de PowerShell. Para ejecutar este cmdlet, inicie PowerShell con la opción Ejecutar como administrador .
Ejemplos
Ejemplo 1: Impedir el acceso remoto a todas las configuraciones de sesión de PowerShell
En este ejemplo se evita el acceso remoto a todas las configuraciones de punto de conexión de sesión de PowerShell en el equipo.
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.
Ejemplo 2: Impedir el acceso remoto a todas las configuraciones de sesión de PowerShell sin aviso de confirmación
En este ejemplo se evita el acceso remoto a todas las configuraciones de punto de conexión de sesión de PowerShell en el equipo sin preguntar.
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.
Ejemplo 3: Efectos de ejecutar este cmdlet
En este ejemplo se muestra el efecto de usar el Disable-PSRemoting
cmdlet . Para ejecutar esta secuencia de comandos, inicie PowerShell con la opción Ejecutar como administrador .
Después de deshabilitar las configuraciones de sesiones, el New-PSSession
cmdlet intenta crear una sesión remota en el equipo local (también conocido como "bucle invertido"). Dado que el acceso remoto está deshabilitado en el equipo local, se produce un error en el comando.
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
Ejemplo 4: Efectos de ejecutar este cmdlet y Enable-PSRemoting
En este ejemplo se muestra el efecto en las configuraciones de sesión de mediante los Disable-PSRemoting
cmdlets y Enable-PSRemoting
.
Disable-PSRemoting
se usa para deshabilitar el acceso remoto a todas las configuraciones de punto de conexión de sesión de PowerShell. El parámetro Force suprime todos los mensajes de usuario. Los Get-PSSessionConfiguration
cmdlets y Format-Table
muestran las configuraciones de sesión en el equipo.
La salida muestra que a todos los usuarios remotos con un token de red se les deniega el acceso a las configuraciones de punto de conexión. Los administradores del grupo en el equipo local pueden acceder a las configuraciones de punto de conexión siempre que se conecten localmente (también conocidos como bucle invertido) y usen credenciales implícitas.
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 ...
El Enable-PSRemoting
cmdlet vuelve a habilitar el acceso remoto a todas las configuraciones de punto de conexión de sesión de PowerShell en el equipo. El parámetro Force suprime todas las solicitudes del usuario y reinicia el servicio WinRM sin preguntar. La nueva salida muestra que los descriptores de seguridad AccessDenied se han quitado de todas las configuraciones de sesión.
Ejemplo 5: Conexiones de bucle invertido con configuraciones de punto de conexión de sesión deshabilitadas
En este ejemplo se muestra cómo se deshabilitan las configuraciones de punto de conexión y se muestra cómo realizar una conexión de bucle invertido correcta a un punto de conexión deshabilitado. Disable-PSRemoting
deshabilita todas las configuraciones de punto de conexión de sesión de PowerShell.
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
El primer uso de intentos para New-PSSession
crear una sesión remota en el equipo local. El parámetro ConfigurationName se usa para especificar un punto de conexión de PowerShell deshabilitado. Las credenciales se pasan explícitamente al comando a través del parámetro Credential . Este tipo de conexión pasa por la pila de red y no es un bucle invertido. Por lo tanto, el intento de conexión al punto de conexión deshabilitado produce un error de acceso denegado .
El segundo uso de New-PSSession
también intenta crear una sesión remota en el equipo local.
En este caso, se realiza correctamente porque es una conexión de bucle invertido que omite la pila de red.
Se crea una conexión de bucle invertido cuando se cumplen las condiciones siguientes:
- El nombre del equipo al que conectarse es "localhost".
- No se pasan credenciales. El usuario que ha iniciado sesión actual (credenciales implícitas) se usa para la conexión.
- Se usa el parámetro del modificador EnableNetworkAccess .
Para más información sobre las conexiones de bucle invertido, consulte el documento New-PSSession .
Ejemplo 6: Deshabilitar todas las configuraciones de punto de conexión de comunicación remota de PowerShell
En este ejemplo se muestra cómo ejecutar el Disable-PSRemoting
comando no afecta Windows PowerShell configuraciones de punto de conexión. Get-PSSessionConfiguration
se ejecuta en Windows PowerShell muestra todas las configuraciones de punto de conexión. Vemos que las configuraciones de punto de conexión de Windows PowerShell no están deshabilitadas.
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
Para deshabilitar estas configuraciones de punto de conexión, el Disable-PSRemoting
comando debe ejecutarse desde dentro de una sesión de Windows PowerShell. Ahora, Get-PSSessionConfiguration
ejecute desde dentro de Windows PowerShell muestra que todas las configuraciones de punto de conexión están deshabilitadas.
Ejemplo 7: Impedir el acceso remoto a las configuraciones de sesión que tienen descriptores de seguridad personalizados
En este ejemplo se muestra que el cmdlet deshabilita el Disable-PSRemoting
acceso remoto a todas las configuraciones de sesión que incluyen configuraciones de sesión con descriptores de seguridad personalizados.
Register-PSSessionConfiguration
crea la configuración de la sesión de prueba . El parámetro FilePath especifica un archivo de configuración de sesión que personaliza la sesión. El parámetro ShowSecurityDescriptorUI muestra un cuadro de diálogo que establece permisos para la configuración de sesión. En el cuadro de diálogo Permisos, creamos permisos de acceso completo personalizados para el usuario indicado.
Los Get-PSSessionConfiguration
cmdlets y Format-Table
muestran las configuraciones de sesión y sus propiedades. La salida muestra que la configuración de la sesión de prueba permite el acceso interactivo y los permisos especiales para el usuario indicado.
Disable-PSRemoting
deshabilita el acceso remoto a todas las configuraciones de sesión.
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
Ahora los Get-PSSessionConfiguration
cmdlets y Format-Table
muestran que se agrega un descriptor de seguridad AccessDenied para todos los usuarios de red a todas las configuraciones de sesión, incluida la configuración de la sesión de prueba . Aunque los otros descriptores de seguridad no cambian, el descriptor de seguridad "network_deny_all" tiene prioridad. Esto se ilustra mediante el intento de usar New-PSSession
para conectarse a la configuración de la sesión de prueba .
Ejemplo 8: Volver a habilitar el acceso remoto a las configuraciones de sesión seleccionadas
Este ejemplo muestra cómo volver a habilitar el acceso remoto únicamente a las configuraciones de sesión seleccionadas. Después de deshabilitar todas las configuraciones de sesión, se vuelve a habilitar una sesión específica.
El Set-PSSessionConfiguration
cmdlet se usa para cambiar la configuración de sesión de PowerShell.6 . El parámetro AccessMode con un valor de Remote re-habilita el acceso remoto a la configuración.
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 ...
Parámetros
-Confirm
Le solicita su confirmación antes de ejecutar el cmdlet.
Type: | SwitchParameter |
Aliases: | cf |
Position: | Named |
Default value: | False |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-Force
Obliga al comando a ejecutarse sin solicitar la confirmación del usuario.
Type: | SwitchParameter |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-WhatIf
Muestra lo que sucedería si se ejecutara el cmdlet. El cmdlet no se ejecuta.
Type: | SwitchParameter |
Aliases: | wi |
Position: | Named |
Default value: | False |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
Entradas
None
No se pueden canalizar objetos a este cmdlet.
Salidas
None
Este cmdlet no devuelve ningún resultado.
Notas
Este cmdlet solo está disponible en plataformas Windows.
Deshabilitar las configuraciones de sesión no deshace todos los cambios realizados por los
Enable-PSRemoting
cmdlets oEnable-PSSessionConfiguration
. Puede que tenga que deshacer los siguientes cambios manualmente.- Detenga y deshabilite el servicio WinRM.
- Elimine el agente de escucha que acepta solicitudes en cualquier dirección IP.
- Deshabilite las excepciones de firewall para las comunicaciones de WS-Management.
- Restaure el valor de LocalAccountTokenFilterPolicy a 0, lo que restringe el acceso remoto a los miembros del grupo Administradores en el equipo.
Una configuración de punto de conexión de sesión es un grupo de valores que definen el entorno de una sesión. Cada sesión que se conecta al equipo debe usar una de las configuraciones de punto de conexión de sesión registradas en el equipo. Al denegar el acceso remoto a todas las configuraciones de punto de conexión de sesión, impide eficazmente que los usuarios remotos establezcan sesiones que se conecten al equipo.