Acceso a través de Terminal Services

El Terminal Services tiene dos vertientes. Una es la de 'escritorio remoto', y es la que implementa Windows XP. Se trata de permitir que un usuario remoto acceda al PC, de tal forma que obliga a cualquier otro usuario conectado a desconectarse. Esto es cierto incluso para el usuario 'físico', el que está delante de la pantalla del PC; una conexión al escritorio remoto le obligaría a dejar de usar su ordenador. Por ello dudo que esta te convenga.
La otra vertiente es la de 'servidor de aplicaciones'. Se trata de permitir varios inicios de sesión simultáneos sobre la misma máquina, al contrario que la de arriba. Este modo solo puede usarse en un Windows 2000 Server o 2003 Server, y NECESITA que instales en el PC servidor, un servidor de licencias de Terminal Server (que cuesta una 'pasta'); de lo contrario a los 120 días caduca y te impide seguir usándolo.
Creo que has entendido mal la sugerencia que comentas. ¿No sería 'Directorio Activo'? En todo caso, es un requisito para que el Terminal Server funcione como deba. El directorio activo configura un dominio para tu red de ordenadores, y permite conectar los clientes de tu red entre sí y que compartan recursos.
Para resolver tu problema, te propongo una idea. Cada cuenta de usuario registrada en el dominio puede utilizarse para acceder por TS al servidor. Además, cada cuenta puede tener configurado en el servidor que se ejecute cierto archivo cuando se inicie la sesión. Por lo tanto, podrías asignar a cada usuario que ejecute un .exe determinado que le haga conectarse a la aplicación que le corresponda.
Espero haberte sido de ayuda. Si necesitas alguna aclaración, no dudes en preguntarme.

1 Respuesta

Respuesta
1
En primer lugar, responderé a esa duda que tenías. El 'directorio donde quieres que se ejecute', no es más que la carpeta donde el programa buscará archivos con su 'ruta relativa'. Una 'ruta relativa' no es más que ubicar un archivo en tu disco duro, con respecto a la carpeta en la que estás. Por ejemplo, si estás en la carpeta C:\WINNT, una ruta relativa hacia el archivo 'C:\WINNT\System32\a.dll' sería 'System32\a.dll'. Lo contrario de eso sería la 'ruta absoluta', que seriá 'C:\WINNT\System32\a.dll' como habrás adivinado. Lo normal es que el directorio de trabajo sea el mismo donde está el ejecutable.
En cuanto a los directorios activos, solo decirte que yo desde aquí sólo puedo darte la teoría; tal vez la práctica requiera que configures tu servidor con ayuda de alguien que entienda del tema.
Supongo que en tu PC (con windows 2000/XP) personal tienes configurada una cuenta de usuario con tu nombre. Esa cuenta, además de permitirte entrar al ordenador, también sirve para asignar permisos y propietarios a archivos, y para restringir el acceso a recursos (carpetas compartidas, unidades, impresoras)... Por ejemplo, lo normal es que tu Windows tenga una cuenta llamada 'Invitado', con su escritorio y todo, y que no necesita contraseña. Esa cuenta no suele poder ver los archivos y carpetas que han creado otras cuentas, por el mero hecho de que éstas no han concedido permiso alguno a la cuenta de invitado. Si abres las propiedades de un archivo, y te vas a la ficha seguridad, puedes ver y configurar los permisos de cualquier recurso de windows.
Hasta aquí bien, pero ¿qué pasa cuando te mueves a otro PC, de tu empresa por ejemplo? Si trabajas como lo hacías en tu PC, es decir con las cuentas de usuario *locales*, toda la gestión de permisos no te sirve de nada porque tu cuenta no está en ese PC. O podrías hacer otra cuenta que tuviera mismo nombre y contraseña, pero incluso así serían distintas al ser cuentas locales.
El 'directorio activo' centraliza todas las cuentas de usuario de un dominio (=grupo de ordenadores). Así, cuando inicias sesión en un PC de la red, recuperas tus permisos y recursos compartidos desde el servidor (al que se le llama 'controlador de dominio). Incluso desaparece la necesidad de estar continuamente introduciendo contraseñas para acceder a recursos de otros equipos del dominio. Y como te he contado, en el servidor puedes asignar 'comandos de inicio de sesión' a cada cuenta de usuario del dominio. Por ejemplo, ése es el mecanismo que utiliza el Panda Antivirus para empresas; ejecuta el instalador del antivirus cuando se inicia la sesión de una cuenta, para proteger los PCs del dominio sin necesidad de instalar individualmente en cada uno de ellos el antivirus.
Creo que por hoy ya es suficiente ;)
Hola a todo el que lea mi pregunta, y ante todo muchas gracias por la atención, agradecería mucho que alguien pudiera echarme una mano en este asunto.
La cuestión es que se quiere que una aplicación pueda ser ejecutada en un sólo servidor, las veces que sea necesario, por usuarios que se conectan por Terminal Services.
La aplicación, desarrollada en VB 6.0 se comunica con un host. El host identifica cada aplicación abierta, mediante un código que distingue cada una de ellas, para saber exactamente con qué aplicación se comunica. Para ello, ahora mismo se introduce a mano el nombre de usuario por cada vez que se ejecuta la aplicación, pero se quiere que esto se haga de manera automática. Es decir, un usuario se conecta por TS al servidor, allí ejecuta el .exe y automáticamente el programa lee qué usuario ha entrado (la máquina que se ha conectado).
Me han sugerido algo de Directorios Virtuales, pero estoy perdida en este tema totalmente.
Podría alguien orientarme un poco sobre qué se puede hacer de manera que se reconozca de alguna manera qué cliente entra en un servidor, ¿y distinguir cada instancia de la aplicación por el usuario que la ejecuta?
Agradecería cualquier ayuda al respecto.
Muchas gracias a todos.
Saludos, Hicock
Hola!
Muchas gracias por responderme. Veamos, la cosa era muy sencilla porque había un comando en VB que desconocía y que lee el cliente que entra en el servidor, porque recoge las variables de entorno de la máquina.
Pero ahora me interesa mucho lo que me comentas porque una vez conseguido que la aplicación se ejecute las veces que sea necesario, sí que me interesaría lo que me dices de que se ejecute el programa en cuestión cuando los usuarios accedan al servidor.
Te cuento: para que la aplicación, según está diseñada, funcione correctamente, resulta que los usuarios debe pertenecer al grupo Administrators. El problema es que claro, esto les da derechos sobre el servidor que no deberían tener, porque imagina que en el servidor yo tengo mi información pero no me interesa que ningún usuario de la aplicación pueda meterse a la base de datos, ni a ninguna carpeta, por razones obvias de seguridad.
¿Me puedes ayudar un poco y decirme cómo funciona lo de los directorios activos? He indagado y he visto dónde pones qué programa quieres que se ejecute al entrar por TS, pero debajo hay otra casilla que dice dónde quiero que se ejecute y no sé qué es lo que debo poner ahí, y no me funciona.
¿Y se te ocurre cómo podría evitarse que los usuarios entraran a otras partes del servidor y que al cerrar la aplicación se desconectaran también?
No entiendo mucho de este tema de usuarios y servidores como puedes ver, así que te agradezco mucho la ayuda.
Muchas gracias de nuevo y espero tu respuesta.
Saludos, Hicock
Mañana voy a intentar de nuevo que la aplicación se ejecute al entrar en el servidor, con esto que me cuentas.
Ya te contaré qué tal y si tengo más pegas espero que no te moleste que te pregunte más cosillas, jejej
Muchísimas gracias, me viene muy bien lo que me explicas.
Un saludo
Si no tienes ninguna pregunta más, puntúala y la dejamos como zanjada.
Vale, perdona, ya sé por qué no me funcionaba, era porque lo probaba en un servidor que no era controlador de dominio.
Muchas gracias por tu ayuda.
Un saludo

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas