Disable-PSRemoting
Impide que los puntos de conexión de PowerShell reciban conexiones remotas.
Sintaxis
Disable-PSRemoting
[-Force]
[-WhatIf]
[-Confirm]
[<CommonParameters>]
Description
El Disable-PSRemoting
cmdlet bloquea el acceso remoto a todas las configuraciones de punto de conexión de sesión de Windows PowerShell en el equipo local. Esto incluye los puntos de conexión creados por PowerShell 6 o versiones posteriores.
Para volver a habilitar el acceso remoto a todas las configuraciones de sesión, use el Enable-PSRemoting
cmdlet . Esto incluye los puntos de conexión creados por PowerShell 6 o versiones posteriores. Para habilitar el acceso remoto a configuraciones de sesión seleccionadas, use el parámetro AccessMode del Set-PSSessionConfiguration
cmdlet .
También puede usar los Enable-PSSessionConfiguration
cmdlets y Disable-PSSessionConfiguration
para habilitar y deshabilitar configuraciones de sesión para todos los usuarios. Para más información sobre las configuraciones de sesión, vea 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 en 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.
Para ejecutar este cmdlet, inicie Windows PowerShell con la opción Ejecutar como administrador .
Ejemplos
Ejemplo 1: Impedir el acceso remoto a todas las configuraciones de sesió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.
Disable-PSRemoting
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 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: 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
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 del uso de 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 todas las solicitudes del 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 conocido 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
---- ----------
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
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
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
New-PSSession -ComputerName localhost
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
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ CategoryInfo : OpenError: (System.Manageme....RemoteRunspace:RemoteRunspace) [New-PSSession], PSRemotin
gTransportException
+ FullyQualifiedErrorId : AccessDenied,PSSessionOpenFailed
New-PSSession -ComputerName localhost -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. 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 obtener más información sobre las conexiones de bucle invertido, consulte el documento New-PSSession .
Ejemplo 6: 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
---- ----------
microsoft.powershell BUILTIN\Administrators AccessAllowed
Test NT AUTHORITY\INTERACTIVE AccessAllowed, BUILTIN\Administrators AccessAllowed,
DOMAIN01\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
---- ----------
microsoft.powershell NT AUTHORITY\NETWORK AccessDenied, BUILTIN\Administrators AccessAllowed
Test NT AUTHORITY\NETWORK AccessDenied, NTAUTHORITY\INTERACTIVE AccessAllowed,
BUILTIN\Administrators AccessAllowed, DOMAIN01\User01 AccessAllowed
[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
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 no se cambian los otros descriptores de seguridad, 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 7: 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 microsoft . Configuración de sesión de ServerManager . El parámetro AccessMode con un valor de Remote vuelve a habilitar el acceso remoto a la configuración.
Disable-PSRemoting -Force
Get-PSSessionConfiguration | Format-Table -Property Name, Permission -AutoSize
Set-PSSessionConfiguration -Name Microsoft.ServerManager -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
---- ----------
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
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
Parámetros
-Confirm
Le solicita su confirmación antes de ejecutar el cmdlet.
Tipo: | SwitchParameter |
Alias: | cf |
Posición: | Named |
Valor predeterminado: | False |
Requerido: | False |
Aceptar entrada de canalización: | False |
Aceptar caracteres comodín: | False |
-Force
Obliga al comando a ejecutarse sin solicitar la confirmación del usuario.
Tipo: | SwitchParameter |
Posición: | Named |
Valor predeterminado: | None |
Requerido: | False |
Aceptar entrada de canalización: | False |
Aceptar caracteres comodín: | False |
-WhatIf
Muestra lo que sucedería si se ejecutara el cmdlet. El cmdlet no se ejecuta.
Tipo: | SwitchParameter |
Alias: | wi |
Posición: | Named |
Valor predeterminado: | False |
Requerido: | False |
Aceptar entrada de canalización: | False |
Aceptar caracteres comodín: | False |
Entradas
None
No se pueden canalizar objetos a este cmdlet.
Salidas
None
Este cmdlet no devuelve ningún resultado.
Notas
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 sesión es un grupo de valores que definen el entorno para una sesión. Cada sesión que se conecta al equipo debe usar una de las configuraciones de sesión que están registradas en el equipo. Al denegar el acceso remoto a todas las configuraciones de sesión, evita eficazmente que los usuarios remotos puedan establecer sesiones que se conecten al equipo.
En Windows PowerShell 2.0,
Disable-PSRemoting
agrega una entrada de Deny_All a los descriptores de seguridad de todas las configuraciones de sesión. Esta configuración impide que todos los usuarios creen sesiones administradas por el usuario en el equipo local. En Windows PowerShell 3.0,Disable-PSRemoting
agrega una entrada Network_Deny_All a los descriptores de seguridad de todas las configuraciones de sesión. Esta configuración impide que los usuarios de otros equipos creen sesiones administradas por el usuario en el equipo local, pero permite a los usuarios del equipo local crear sesiones de bucle invertido administradas por el usuario.En Windows PowerShell 2.0,
Disable-PSRemoting
es el equivalente deDisable-PSSessionConfiguration -Name *
. En Windows PowerShell 3.0 y versiones posteriores,Disable-PSRemoting
es el equivalente deSet-PSSessionConfiguration -Name \<Configuration name\> -AccessMode Local