Как получить имя пользователя, зарегистрированное в данный момент, из службы windows в .NET?
У меня есть служба Windows, которая нуждается в текущем зарегистрированном имени пользователя.
он корректно работает в windows 7, 8.1 и 10, но не работает в windows server 2008 R2.
Что я уже пробовал:
ManagementObjectSearcher searcher = new ManagementObjectSearcher ("выберите имя пользователя из Win32_ComputerSystem");
ManagementObjectCollection collection = searcher. Get();
string UserName = (string)коллекция.Бросание&ЛТ;"ManagementBaseObject и GT;().Во-Первых()["Имя Пользователя"];
CHill60
Что вы подразумеваете под "не работает" - бросает исключение? ничего не возвращает?
И разве к этой последней строке не следует добавить следующее? <ManagementBaseObject>().First()["UserName"];
rdrahuldey
да, последняя строка добавлена. Имя пользователя возвращается пустым. в windows 10 он показывает правильный вывод, но когда я запускаю эту службу windows на windows server 2008 R2, она возвращается пустой.
Dave Kreskowiak
Это зависит от того, что вы подразумеваете под "текущим зарегистрированным именем пользователя"? Вы говорите о человеке, который вошел в систему на консоли серверов? Люди, которые сопоставили диски или прошли проверку подлинности с ресурсами, совместно используемыми этим сервером? Что?
rdrahuldey
имя человека, который вошел в систему на сервере
Dave Kreskowiak
Хорошо, тогда зачем вам это нужно? Кто-то, вошедший в консоль сервера, должен быть редким событием.