Мне нужно знать, как получить имя и домен основного пользователя компьютера, удаленно.Я определяю основного пользователя предпочтительно как пользователя, вошедшего в систему в большинстве случаев, или самое продолжительное время за период.В качестве альтернативы, если это невозможно, так как пользователь в настоящее время / последний входил в систему.
В настоящее время я сканирую Active Directoy для всех компьютерных объектов в OU.Затем я зацикливаюсь на них и пытаюсь получить имя пользователя с помощью WMI.Я смотрю в Win32_ComputerSystem
, чтобы увидеть, если UserName возвращает значение.Если это не так, я смотрю в Win32_LogonSession
и получаю имя пользователя для всех LogonTypes, равное 2 или 10. Если это не возвращает ни одного, или нескольких значений, я отбрасываю результат и смотрю в Win32_Process
для всех несистемныхобрабатывает и определяет основного пользователя как пользователя с большинством запущенных процессов.
В моем подходе есть несколько проблем:
Win32_ComputerSystem
- UserName часто имеет значение null. Win32_LogonSession
часто возвращают несколько значений или не имеют значений.Может быть только 1 основной пользователь. - Просмотр
Win32_Process
является довольно нелепым, поскольку это вернет мне пользователя с большинством процессов, скорее всего, не основного пользователя. - Если нетпользователь в настоящее время вошел в систему, просматривая
Win32_Process
не возвращает значения, и ни один из 3 шагов не может вернуть значение.
Мои 3 подхода могут получить меня в качестве текущего пользователя.Кто-нибудь знает способ получить основного пользователя?Или, по крайней мере, лучший способ получить ток.Не обязательно использовать WMI.
Спасибо