Búsqueda de sitios web

Configuración del modo de drenaje de escritorio remoto en un host RDS de Windows Server


Puede usar el modo de drenaje de RDS para mantener hosts de terminal en una granja de servicios de escritorio remoto. Si habilita el modo de drenaje para su servidor RDS, puede evitar que el servidor acepte conexiones RDP de nuevos usuarios, y las conexiones RD actuales permanecerán activas hasta que los usuarios cierren la sesión de forma manual o automática por el tiempo de espera de la sesión RDS. Entonces podrá mantener su host de Windows Server sin interrumpir la operación de su granja RDS (instalar actualizaciones, cambiar la configuración del servidor o la aplicación, actualizar los archivos de configuración, etc.).

¿Qué son los modos de drenaje en los servicios de escritorio remoto de Windows Server?

El modo de drenaje apareció en Windows Server 2008 (modo de drenaje del servidor de Terminal Services). Cuando pone un host RDS en modo drenaje, ya no puede aceptar conexiones de nuevos usuarios. Como regla general, el modo se usa cuando un administrador de servidor necesita mantener un servidor (instalar actualizaciones de Windows, configurar o actualizar aplicaciones) sin afectar la disponibilidad de toda la granja RDS. Un host RDS puede funcionar en cualquiera de los tres tipos de modo de drenaje:

  • Permitir todas las conexiones (modo predeterminado): un Host de sesión de escritorio remoto acepta nuevas conexiones;

  • Permitir reconexiones, pero evitar nuevos inicios de sesión: los usuarios pueden volver a conectarse a sesiones existentes, pero no se permiten nuevas sesiones. Si reinicia un servidor, los usuarios no podrán conectarse a él;

  • Permitir reconexiones, pero evitar nuevos inicios de sesión hasta que se reinicie el servidor: este modo es similar al anterior, pero después del reinicio, el modo de inicio de sesión del usuario se restablece a Permitir todas las conexiones.

¿Cómo denegar inicios de sesión de nuevos usuarios a un servidor de sesión de escritorio remoto?

Puede habilitar el modo de drenaje en su servidor host RDS a través de la configuración de recopilación de RDS.

  1. Abra el Administrador del servidor -> Todos los servidores -> y agregue todos los servidores RDS de la granja;

  2. Seleccione Servicios de escritorio remoto en el panel izquierdo del Administrador del servidor. Seleccione las Colecciones RDS;

  3. En el

    HOST SERVERS

    seleccione un servidor para el que desea habilitar el modo de drenaje y seleccione No permitir nuevas conexiones en el menú contextual.

Los usuarios que tengan sesiones activas de Escritorio remoto podrán volver a conectarse al servidor, mientras que todas las conexiones nuevas serán reenviadas por el Agente de conexión de Escritorio remoto a otros hosts en su granja de RDS.

También puede configurar el modo de drenaje localmente en el host RDS a través del símbolo del sistema. Para hacerlo, el

change logon

se utiliza el comando.

Para evitar nuevas conexiones de usuarios, ejecute el siguiente comando:

change logon /drain

New user logons are DISABLED, but reconnections to existing sessions are ENABLED

Ahora, si un nuevo usuario intenta conectarse al host RDS directamente (cuando no se usa el agente de conexión a Escritorio remoto), aparece el siguiente error:

Remote logins are currently disabled.

A logon request was denied because the RD Session Host server is currently in drain mode and therefore not accepting new user logons. To configure the server to allow new user logons, use the Remote Desktop Services Configuration tool.

El siguiente comando habilita el modo de drenaje hasta que el host se reinicie:

change logon /drainuntilrestart

Para evitar que los usuarios, incluso con sesiones activas, se conecten al host, ejecute este comando:

change logon /disable
Session logins are currently DISABLED

Si está conectado al host de sesión de escritorio remoto en el modo de sesión de cliente y deshabilitó el acceso con el comando anterior y cerró la sesión (logoff.exe), podrá conectarse al servidor solo a través de la consola (

mstsc /admin

).

Para permitir conexiones, use este comando:

change logon /enable

Para asegurarse de que el modo de drenaje esté habilitado en su servidor RDS, ejecute el siguiente comando:

change logon /query
Session logins are currently ENABLED

Connections are currently ENABLED by Group Policy for this machine, unable to change.

Esto significa que el modo de drenaje se configura a través del GPO. La configuración de la política se llama Permitir que los usuarios se conecten de forma remota mediante Servicios de escritorio remoto y puede encontrarla en la siguiente sección de GPO: Plantillas administrativas -> Componentes de Windows -> Servicios de escritorio remoto -> Host de sesión de escritorio remoto -> Conexiones.

Deshabilite la política o configúrela como No configurada.

Establecer el modo de drenaje para Windows Server RDS Host a través de PowerShell

Puede administrar la configuración del modo de drenaje de una colección de hosts RDS o un servidor RDS independiente mediante PowerShell:

Import-Module RemoteDesktop
# To deny new RDP connections to the Remote Desktop Services Host
Set-RDSessionHost -SessionHost mun-saprdsh1.a-d.site -NewConnectionAllowed No -ConnectionBroker mun-saprdcb.a-d.site
# To allow connections
Set-RDSessionHost -SessionHost mun-saprdsh1.a-d.site -NewConnectionAllowed Yes -ConnectionBroker mun-saprdcb.a-d.site

Si habilita o deshabilita el modo de drenaje, los valores de los siguientes parámetros de registro se modifican:

  • WinStationsDisabled HKLM\Software\Microsoft\Windows NT\CurrentVersion\Winlogon\

  • TSServerDrainMode HKLM\System\CurrentControlSet\Control\Terminal Server\

Por ejemplo, cuando el modo de drenaje está habilitado, los valores del registro se establecen en

WinStationsDisabled = 0

y

TSServerDrainMode = 2

También puede asegurarse de que el modo de drenaje en su host esté habilitado mediante el siguiente script de PowerShell:

Get-WmiObject win32_terminalservicesetting -N "root\cimv2\terminalservices" | %{
if ($_.logons -eq 1){
"Disabled"}
Else {
switch ($_.sessionbrokerdrainmode)
{
0 {"Enabled"}
1 {"DrainUntilRestart"}
2 {"Drain"}
default {"error"}
}
}
}

Para habilitar el modo de drenaje a través de PowerShell (similar a

change logon /Drain

):

$temp = (Get-WmiObject win32_terminalservicesetting -N "root\cimv2\terminalservices")
$temp.sessionbrokerdrainmode=2
$temp.put()

Para poner el host RDS en modo normal (

change logon /enable

), ejecute este comando:

$temp = (Get-WmiObject win32_terminalservicesetting -N " root\cimv2\terminalservices ")
$temp.sessionbrokerdrainmode=0
$temp.logons=0
$temp.put()

Artículos relacionados