Disable-PSRemoting
Impide que los puntos de conexión de PowerShell reciban conexiones remotas.
Sintaxis
Disable-PSRemoting
[-Force]
[-WhatIf]
[-Confirm]
[<CommonParameters>]
Description
Este cmdlet solo está disponible en la plataforma Windows.
El cmdlet Disable-PSRemoting
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 las configuraciones de punto de conexión de Windows PowerShell. Para deshabilitar las configuraciones de punto de conexión de sesión de Windows PowerShell, ejecute Disable-PSRemoting
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 cmdlet Enable-PSRemoting
. 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 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 de PowerShell versión 6 o posterior y desde una sesión de Windows PowerShell. Windows PowerShell se instala 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 cmdlets Enable-PSSessionConfiguration
y Disable-PSSessionConfiguration
. Para establecer configuraciones de acceso específicas de puntos de conexión individuales, use el cmdlet Set-PSSessionConfiguration
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 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.
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 cmdlet Disable-PSRemoting
. Para ejecutar esta secuencia de comandos, inicie PowerShell con la opción Ejecutar como administrador.
Después de deshabilitar las configuraciones de sesiones, el cmdlet New-PSSession
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 del uso de los cmdlets Disable-PSRemoting
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 cmdlets Get-PSSessionConfiguration
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
---- ----------
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 cmdlet Enable-PSRemoting
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 el AccessDenied descriptores de seguridad 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 New-PSSession
intenta 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, se produce un error en el intento de conexión deshabilitado con un error Access.
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 documento New-PSSession.
Ejemplo 6: Deshabilitación de todas las configuraciones de punto de conexión remoto de PowerShell
En este ejemplo se muestra cómo ejecutar el comando Disable-PSRemoting
no afecta a las configuraciones de punto de conexión de Windows PowerShell.
Get-PSSessionConfiguration
ejecutar 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 comando Disable-PSRemoting
debe ejecutarse desde una sesión de Windows PowerShell. Ahora, Get-PSSessionConfiguration
ejecutar desde 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 Disable-PSRemoting
deshabilita el 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 sesión Test. 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 los 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 cmdlets Get-PSSessionConfiguration
y Format-Table
muestran las configuraciones de sesión y sus propiedades. La salida muestra que la configuración de sesión de test 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 cmdlets Get-PSSessionConfiguration
y Format-Table
muestran que se agrega un descriptor de seguridad de AccessDenied para todos los usuarios de red a todas las configuraciones de sesión, incluida la configuración de sesión de test de. 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 sesión de Test.
Ejemplo 8: Volver a habilitar el acceso remoto a las configuraciones de sesión seleccionadas
En este ejemplo se muestra cómo volver a habilitar el acceso remoto solo 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 cmdlet Set-PSSessionConfiguration
se usa para cambiar la configuración de sesión de PowerShell.6. El parámetro AccessMode con un valor de Remote volver a habilitar 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 pide 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 a que el comando se ejecute sin pedir 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 el cmdlet se ejecuta. 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 ninguna salida.
Notas
Este cmdlet solo está disponible en plataformas Windows.
Deshabilitar las configuraciones de sesión no deshace todos los cambios realizados por los cmdlets
Enable-PSRemoting
oEnable-PSSessionConfiguration
. Es posible 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 en 0, lo que restringe el acceso remoto a los miembros del grupo Administradores del equipo.
Una configuración de punto de conexión de sesión es un grupo de valores que definen el entorno para una sesión. Todas las sesiones que se conectan al equipo deben 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, evita que los usuarios remotos establezcan sesiones que se conecten al equipo.