25/7/09

Windows XP PRO como Terminal Server

Windows XP Professional dispone del servicio RDP, esto permite conectarnos a la maquina remotamente, claro esta desde otra PC... Sin embargo, en Windows XP solo se permite una conexión concurrente al escritorio remoto.

Mas aun, si un usuario remoto se conecta remotamente, el usuario sentado frente a la maquina Windows XP, es desconectado, con su permiso o no. El escritorio remoto, salvo en los servicios Terminal Server de Windows 2000, Server 2003 y Server 2008, es diseñado para un solo usuario, sin importar si es local o remoto.

Lo que van a ver aquí es como quitar ésta limitación y habilitar conexiones remotas concurrentes (en Windows XP Professional), usando una dll parcheada llamada termserv.dll, que nos va a permitir que un numero ilimitado de usuarios puedan conectarse al PC de manera remota.

Una buena aplicación de esto es usar una pc de bajos recursos para conectarse a una PC de mayor capacidad y así aprovechar mejor su potencia. Los pasos que deberán seguir son:
  1. Descarguen alguno de los siguientes archivos, según su versión de SO:
  2. Reinicien la PC en modo seguro
  3. Vallan a %windir%\System32 y hagan una copia del archivo termsrv.dll para tener de Backup.
  4. Renombren o borren el archivo termserv.dll en el directorio %windir%\System32\dllcache
  5. Copien el archivo termsrv.dll que descargaron en %windir%\System32, windir%\ServicePackFiles\i386 (si existe) y %windir%\System32\dllcache
  6. Creen una archivo .bat y peguen el contenido siguiente para luego ejecutarlo:
    @REG ADD "HKLM\SYSTEM\ControlSet001\Control\Terminal Server\Licensing Core" /v EnableConcurrentSessions /d 1 /t REG_DWORD /f >nul
    @REG ADD "HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon" /v EnableConcurrentSessions /d 1 /t REG_DWORD /f > nul
    @REG ADD "HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon" /v AllowMultipleTSSessions /d 1 /t REG_DWORD /f > nul
  7. Ahora click en Inicio-> ejecutar y escriban gpedit.msc, seguido de un "enter", esto traerá el editor de políticas de grupo.
  8. Vallan hasta Configuración de Equipo -> Plantillas Administrativas -> Componentes de Windows -> Terminal Services
  9. Habiliten Limitar numero de conexiones y coloquen el numero de conexiones a 3 o mas, según sus requerimientos y la capacidad de su hardware. Este seteo es el que permite las sesiones concurrentes
  10. Asegúrense que el escritorio remoto esta habilitado en las propiedades del sistema (clasico: MiPC -> propiedades -> solapa remoto -> Permitir a los usuarios bla bla bla) y el servicio este ejecutándose en las herramientas administrativas...
  11. Habiliten el cambio rápido de usuarios en el panel de control -> cuentas de usuario.
  12. Reiniciar en modo normal!
Si la computadora esta conectada a un dominio, Windows setea el valor de la clave del registro “AllowMultipleTSSessions” a “0″ cada vez que la PC es iniciada. Para asegurase que se permitan sesiones concurrentes en este caso, deberán ejecutar al inicio del sistema el archivo .bat que crearon anteriormente.

Para usarlo es muy simple:
  • Desde linux deberán tener instalado rdesktop y escribir:
    rdesktop -0 -p -U usuario dirección_host
  • Desde windows deben ir a Inicio -> Programas -> Accesorios -> Conexión a escritorio remoto o bien usar el comando similar al anterior:
    mstsc dirección_host/console
Notas finales:
  • por ahora, los usuarios del escritorio remoto deberán tener contraseña!
  • Por si quieren habilitar el acceso desde internet, el puerto TCP es 3389, para que lo pongan en su router...

3 comentarios:

Anónimo dijo...

Enhorabuena y gracias por las instrucciones.

Fulanito! dijo...

Por nada, me alegro que a alguien le sea util el blog... Bye!

Anónimo dijo...

Amigo quiero hacer esto en un windows server 2003 sera posible hacerlo
me urge