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 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 el 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 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 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 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 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.

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 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. Administración grupoistrators 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 obtener más información sobre las conexiones de bucle invertido, consulte el 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 Disable-PSRemoting comando 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 Disable-PSRemoting comando debe ejecutarse desde una sesión de Windows PowerShell. Ahora, Get-PSSessionConfiguration la ejecución 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 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 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 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 vuelve 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 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 o Enable-PSSessionConfiguration . Puede que tenga que deshacer los siguientes cambios manualmente.

    1. 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, 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 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.