1.1K
Un administrador de Windows puede utilizar el desconectarse Comando para cerrar una sesión de usuario de forma remota desde cualquier computadora con Windows en la red. En este artículo, mostraremos cómo obtener una lista de sesiones en una computadora remota usando el qser comando y finalizar la sesión del usuario con desconectarse.
Uso del símbolo del sistema para cerrar la sesión de los usuarios de forma remota
Antes de eliminar la sesión de un usuario en Windows, debe obtener la identificación de la sesión del usuario. Puede enumerar sesiones en la computadora remota usando la herramienta de consola quser incorporada. Abra un símbolo del sistema como administrador y ejecute el comando:
quser /server:server_name
Nota. Para conectarse a una computadora remota server_name, su cuenta debe ser miembro del grupo Administrador local.
El comando quser enumerará todas las sesiones en el host remoto, incluida la sesión de consola (SESSIONNAME=Console) y las sesiones de usuario de RDP (SESSIONNAME=rdp-tcp#X).
Nota. También puede usar el comando qwinsta para obtener una lista de sesiones de usuario en una computadora remota:
qwinsta /server:server_name
Busque el usuario en la lista cuya sesión desea finalizar. Por ejemplo, queremos cerrar la sesión del administrador con el ID = 2.
Para finalizar una sesión de usuario de forma remota, use el siguiente comando:
Logoff sessionID /server:ComputerName
En nuestro ejemplo, esto es:
Logoff 2 /server:server_name
Compruebe que la sesión del usuario ha finalizado:
quser /server:server_name
Si desea cerrar la sesión de un usuario específico por nombre de usuario, use el siguiente script de PowerShell:
$server="dc02" $username="administrator" $session = ((quser /server:$server | ? { $_ -match $username }) -split ' +')[2] logoff $session /server:$server
Posibles errores al ejecutar el comando de cierre de sesión:
- No se pudo cerrar la sesión ID 2, código de error 5
Error [5]:Acceso denegado.
Esto significa que no tiene permisos en esta sesión o que está utilizando un símbolo del sistema no elevado. - Error 0x00000005 enumerando nombres de sesión
Error [5]:Acceso denegado.
Está ejecutando el comando de cierre de sesión con un usuario local con privilegios de administrador. Para dichos usuarios, la política de UAC remoto está habilitada de manera predeterminada. Para deshabilitar las restricciones remotas de UAC para usuarios locales, cree el LocalAccountTokenFilterPolicy parámetro de registro en el host de destino con un valor de 1.reg add "\server_nameHKLMSOFTWAREMicrosoftWindowsCurrentVersionPoliciesSystem" /v LocalAccountTokenFilterPolicy /t REG_DWORD /d 1 /f
- Error 0x000006BA enumerando nombres de sesión
Error [1722]: El servidor RPC no está disponible.
Habilite RemoteRPC en la máquina remota server_name:reg add "\server_nameHKLMSYSTEMCurrentControlSetControlTerminal Server" /v AllowRemoteRPC /t Reg_Dword /d 0x1 /f
Cierre de sesión de los usuarios de servicios de escritorio remoto mediante PowerShell
Puede usar el símbolo del sistema para cerrar sesiones de usuario de forma remota en hosts de Windows Server con servicios de escritorio remoto (RDS) implementados. Un servidor RDS puede tener varias sesiones de usuario activas al mismo tiempo.
Si planea poner el RDShost en modo de mantenimiento o instalar actualizaciones, debe cerrar la sesión de todas las sesiones de usuario de forma remota. Para hacer esto, primero debe poner el host RDS en el modo de drenaje (en este modo, el host RDS bloquea las nuevas conexiones RD):
Invoke-Command -ComputerName NYRDS1 ScriptBlock{ change logon /drain }
Ahora puede finalizar todas las sesiones de forma remota mediante un script de PowerShell:
$Server="rds01" try { query user /server:$Server 2>&1 | select -skip 1 | % {logoff ($_ -split "s+")[-6] /server:$Server /V} } catch {}
O bien, solo puede cerrar sesiones de usuario de RDS en un estado desconectado:
$Server="rds01" try { query user /server:$Server 2>&1 | select -skip 1 | ? {($_ -split "s+")[-5] -eq 'Disc'} | % {logoff ($_ -split "s+")[-6] /server:$Server /V} } catch {}