Disable-PSRemoting
Impide que los usuarios remotos ejecuten comandos en el equipo local.
Sintaxis
Default (valor predeterminado)
Disable-PSRemoting
[-Force]
[-WhatIf]
[-Confirm]
[<CommonParameters>]
Description
El cmdlet Disable-PSRemoting impide que los usuarios de otros equipos ejecuten comandos en el equipo local.
Disable-PSRemoting bloquea el acceso remoto a todas las configuraciones de sesión del equipo local. Esto impide que los usuarios remotos creen sesiones temporales o persistentes en el equipo local. Disable-PSRemoting no impide que los usuarios del equipo local creen sesiones (PSSessions) en el equipo local o en equipos remotos.
Para volver a habilitar el acceso remoto a todas las configuraciones de sesión, use el cmdlet Enable-PSRemoting. Para habilitar el acceso remoto a configuraciones de sesión seleccionadas, use el parámetro AccessMode del cmdlet Set-PSSessionConfiguration. También puede usar los cmdlets Enable-PSSessionConfiguration y Disable-PSSessionConfiguration para habilitar y deshabilitar configuraciones de sesión para todos los usuarios. Para obtener más información sobre las configuraciones de sesión, consulte about_Session_Configurations.
En Windows PowerShell 2.0, Disable-PSRemoting impide que todos los usuarios creen sesiones administradas por el usuario en el equipo local. En Windows PowerShell 3.0, Disable-PSRemoting 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.
Para ejecutar este cmdlet, inicie Windows PowerShell con la opción Ejecutar como administrador.
PRECAUCIÓN: En los sistemas que tienen Windows PowerShell 3.0 y el motor de Windows PowerShell 2.0, no use Windows PowerShell 2.0 para ejecutar el Enable-PSRemoting y cmdlets Disable-PSRemoting. Es posible que los comandos parezcan correctos, pero la comunicación remota no está configurada correctamente. Es probable que se produzcan errores en los comandos remotos e intentos posteriores de habilitar y deshabilitar la comunicación remota.
Ejemplos
Ejemplo 1: Impedir el acceso remoto a todas las configuraciones de sesión
PS C:\> Disable-PSRemoting
Este comando impide el acceso remoto a todas las configuraciones de sesión del equipo.
Ejemplo 2: Impedir el acceso remoto a todas las configuraciones de sesión sin aviso de confirmación
PS C:\> Disable-PSRemoting -Force
Este comando impide el acceso remoto a todas las configuraciones de sesión en el equipo sin preguntar.
Ejemplo 3: Efectos de ejecutar este cmdlet
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
En este ejemplo se muestra el efecto de usar el cmdlet disable-PSRemoting
El primer comando usa el cmdlet disable-PSRemoting
El segundo comando usa el cmdlet New-PSSession para crear una sesión remota en el equipo local (también conocido como "bucle invertido"). El comando se realiza correctamente.
El tercer comando se ejecuta en el equipo remoto Server02. El comando usa el cmdlet New-PSSession para crear una sesión en el equipo remoto Server01. Dado que el acceso remoto está deshabilitado, se produce un error en el comando.
Ejemplo 4: Efectos de ejecutar este cmdlet y 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
En este ejemplo se muestra el efecto en las configuraciones de sesión del uso del Disable-PSRemoting y cmdlets Enable-PSRemoting.
El primer comando usa el cmdlet Disable-PSRemoting para deshabilitar el acceso remoto a todas las configuraciones de sesión. El parámetro Force suprime todas las solicitudes del usuario.
El segundo comando usa el cmdlet Get-PSSessionConfiguration para mostrar las configuraciones de sesión en el equipo. El comando usa un operador de canalización para enviar los resultados a un comando Format-Table, que muestra solo las propiedades Name y Permission de las configuraciones de una tabla.
La salida muestra que solo se deniega el acceso de los usuarios remotos a las configuraciones. Los miembros del grupo Administradores del equipo local pueden usar las configuraciones de sesión. La salida también muestra que el comando afecta a todas las configuraciones de sesión que incluyen la configuración de sesión withProfile creada por el usuario.
El tercer comando usa el cmdlet Enable-PSRemoting para volver a habilitar el acceso remoto a todas las configuraciones de sesión del equipo. El comando usa el parámetro Force para suprimir todas las solicitudes de usuario y reiniciar el servicio WinRM sin preguntar.
El cuarto comando usa los cmdlets Get-PSSessionConfiguration y Format-Table para mostrar los nombres y permisos de las configuraciones de sesión. Los resultados muestran que los descriptores de seguridad AccessDenied se han quitado de todas las configuraciones de sesión.
Ejemplo 5: Impedir el acceso remoto a las configuraciones de sesión que tienen descriptores de seguridad personalizados
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
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.
El primer comando usa el cmdlet Register-PSSessionConfiguration para crear la configuración de la sesión de prueba. El comando usa el parámetro FilePath para especificar un archivo de configuración de sesión que personalice la sesión y el parámetro ShowSecurityDescriptorUI para mostrar un cuadro de diálogo que establezca permisos para la configuración de la sesión. En el cuadro de diálogo Permisos, creamos permisos de acceso completo personalizados para el usuario Domain01\User01.
El segundo comando usa los cmdlets Get-PSSessionConfiguration y Format-Table para mostrar 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 Domain01\User01.
El tercer comando usa el cmdlet Disable-PSRemoting para deshabilitar el acceso remoto a todas las configuraciones de sesión.
El cuarto comando usa los cmdlets Get-PSSessionConfiguration y Format-Table para mostrar las configuraciones de sesión y sus propiedades. La salida muestra que se agrega un descriptor de seguridad AccessDenied para todos los usuarios de red a todas las configuraciones de sesión que incluye 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.
El quinto comando muestra que el comando Disable-PSRemoting impide incluso el usuario Domain01\User01 que tenga permisos especiales para la configuración de la sesión de prueba mediante la configuración de sesión de prueba para conectarse al equipo de forma remota.
Ejemplo 6: Volver a habilitar el acceso remoto a las configuraciones de sesión seleccionadas
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
En este ejemplo se muestra cómo volver a habilitar el acceso remoto solo a las configuraciones de sesión seleccionadas.
El primer comando usa el cmdlet Disable-PSRemoting para deshabilitar el acceso remoto a todas las configuraciones de sesión.
El segundo comando usa los cmdlets Get-PSSessionConfiguration y Format-Table para mostrar las configuraciones de sesión y sus propiedades. La salida muestra que se agrega un descriptor de seguridad AccessDenied para todos los usuarios de red a todas las configuraciones de sesión.
El tercer comando usa el cmdlet set-PSSessionConfiguration
El cuarto comando usa los cmdlets Get-PSSessionConfiguration y Format-Table para mostrar las configuraciones de sesión y sus propiedades. La salida muestra que se quita el descriptor de seguridad AccessDenied para todos los usuarios de red, con lo que se restaura el acceso remoto a la configuración de la sesión Microsoft.ServerManager.
Parámetros
-Confirm
Le pide confirmación antes de ejecutar el cmdlet.
Propiedades de parámetro
| Tipo: | SwitchParameter |
| Valor predeterminado: | False |
| Admite caracteres comodín: | False |
| DontShow: | False |
| Alias: | cf |
Conjuntos de parámetros
(All)
| Posición: | Named |
| Obligatorio: | False |
| Valor de la canalización: | False |
| Valor de la canalización por nombre de propiedad: | False |
| Valor de los argumentos restantes: | False |
-Force
Obliga a que el comando se ejecute sin pedir confirmación del usuario.
Propiedades de parámetro
| Tipo: | SwitchParameter |
| Valor predeterminado: | None |
| Admite caracteres comodín: | False |
| DontShow: | False |
Conjuntos de parámetros
(All)
| Posición: | Named |
| Obligatorio: | False |
| Valor de la canalización: | False |
| Valor de la canalización por nombre de propiedad: | False |
| Valor de los argumentos restantes: | False |
-WhatIf
Muestra lo que sucedería si el cmdlet se ejecuta. El cmdlet no se ejecuta.
Propiedades de parámetro
| Tipo: | SwitchParameter |
| Valor predeterminado: | False |
| Admite caracteres comodín: | False |
| DontShow: | False |
| Alias: | Wi |
Conjuntos de parámetros
(All)
| Posición: | Named |
| Obligatorio: | False |
| Valor de la canalización: | False |
| Valor de la canalización por nombre de propiedad: | False |
| Valor de los argumentos restantes: | False |
CommonParameters
Este cmdlet admite los parámetros comunes: -Debug, -ErrorAction, -ErrorVariable, -InformationAction, -InformationVariable, -OutBuffer, -OutVariable, -PipelineVariable, -ProgressAction, -Verbose, -WarningAction y -WarningVariable. Para obtener más información, vea about_CommonParameters.
Entradas
None
No se puede canalizar la entrada a este cmdlet.
Salidas
None
Este cmdlet no devuelve ningún objeto.
Notas
Deshabilitar las configuraciones de sesión no deshace todos los cambios realizados por los cmdlets Enable-PSRemoting o Enable-PSSessionConfiguration. Es posible que tenga que deshacer los siguientes cambios manualmente.
Detenga y deshabilite el servicio WinRM.
2. Elimine el agente de escucha que acepta solicitudes en cualquier dirección IP.
3. Deshabilite las excepciones de firewall para las comunicaciones de WS-Management.
4. Restaure el valor de LocalAccountTokenFilterPolicy a 0, que restringe el acceso remoto a los miembros del grupo Administradores del equipo.
Una configuración de sesión es un grupo de valores que definen el entorno de una sesión. Todas las sesiones que se conectan al equipo deben usar una de las configuraciones de sesión registradas en el equipo. Al denegar el acceso remoto a todas las configuraciones de sesión, evita que los usuarios remotos establezcan 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 de 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 de Disable-PSSessionConfiguration -Name *.
En Windows PowerShell 3.0 y versiones posteriores, Disable-PSRemoting es el equivalente de Set-PSSessionConfiguration -Name \<Configuration name\> -AccessMode Local
En Windows PowerShell 2.0, Disable-PSRemoting es una función. A partir de Windows PowerShell 3.0, es un cmdlet.