Obtendo o nome de usuário conectado de um serviço

Eu tenho um serviço que tive que fazer logon no administrador local para instalar. O objetivo deste serviço é efetuar logon quando um usuário estiver efetuando login ou logout para registrar seu nome de usuário. Finalmente encontrei um pouco de código WMI que pensei que funcionaria, mas ainda está retornando ao administrador. Por que isso não está funcionando?

var query = new ObjectQuery("SELECT * FROM Win32_Process WHERE Name = 'explorer.exe'");
var explorerProcesses = new ManagementObjectSearcher(query).Get();

foreach (ManagementObject mo in explorerProcesses)
{
    string[] ownerInfo = new string[2];
    mo.InvokeMethod("GetOwner", (object[])ownerInfo);

    userName = String.Concat(ownerInfo[1], @"\", ownerInfo[0]);
}
Console.WriteLine(userName);
Console.ReadLine();

Para esclarecer minha pergunta, estou tentando obter o usuário conectado no momento, mas isso está devolvendo ao Administrador a conta que usei para instalar o serviço.

questionAnswers(4)

yourAnswerToTheQuestion