Compartir a través de


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