servicios windows y usuarios

17/11/2003 - 15:39 por José Achig | Informe spam
Tengo un servicio que corre generalmente cuando arranca la máquina (tiene
una condición pero generalmente corre cuando se prende la máquina). Quiero
averiguar que usuario de Windows se está conectando, y para ello utilizo la
sentencia:
usuario = WindowsIdentity::GetCurrent()->Name;

donde usuario es una cadena,

Esta sentencia funciona bien cuando se corre dentro de una aplicación
normal, no dentro de un servicio, lo cual creo que es porque el

servicio corre en una sesión distinta, por lo tanto no obtengo el resultado
que requiero. ¿ Cómo podría obtener el nombre del usuario que se conecta
dentro de un servicio windows?

Les agradezco de antemano cualquier colaboración.

José Achig
 

Leer las respuestas

#1 Michael Giagnocavo [MVP]
17/11/2003 - 17:37 | Informe spam
En MSDN, busca interacting with the user from a service (o algo parecido).

Con Windows 5.1+, puedes llamar WTSGetActiveConsoleSessionId.

Si no tienes eso, tienes que abrir el WindowsStation "Winsta0", y llamar
GetUserObjectInformation par a obtener el SID.

Si ya estas usando Managed C++ (como tu codigo parece), no debe ser mucho
trabajo (ya que puedes incluir los headers y hacerlo directo en lugar de
hacer todo el P/Invoke manualmente :).

-mike
MVP

"José Achig" wrote in message
news:%
Tengo un servicio que corre generalmente cuando arranca la máquina (tiene
una condición pero generalmente corre cuando se prende la máquina).


Quiero
averiguar que usuario de Windows se está conectando, y para ello utilizo


la
sentencia:
usuario = WindowsIdentity::GetCurrent()->Name;

donde usuario es una cadena,

Esta sentencia funciona bien cuando se corre dentro de una aplicación
normal, no dentro de un servicio, lo cual creo que es porque el

servicio corre en una sesión distinta, por lo tanto no obtengo el


resultado
que requiero. ¿ Cómo podría obtener el nombre del usuario que se conecta
dentro de un servicio windows?

Les agradezco de antemano cualquier colaboración.

José Achig













Preguntas similares