Приложение C # .Net Windows - Начало регистрации имени пользователя в My NT - PullRequest
5 голосов
/ 15 июля 2010

Мне нужно получить имя пользователя, который вошел в определенную машину в моей локальной сети.Предложите мне лучший способ получить имя пользователя, передав имя компьютера в C # .net Windows.Также рассмотрите разрешение.

Спасибо

Ответы [ 3 ]

16 голосов
/ 06 мая 2011
//How about this:
string strUserName = WindowsIdentity.GetCurrent().Name;

Затем вы можете делать все, что захотите, с этой переменной "strUserName".Обратите внимание, что оно также содержит доменное имя, если оно присутствует.

2 голосов
/ 19 июля 2010

Привет, все, я получил решение для моего вопроса. Я использовал WMI, чтобы получить userName.

try {
    object[] objArr = new object[2];
    ManagementScope ms = new ManagementScope("Path");
    ms.Connect();
    if (ms.IsConnected)
    {
        ObjectQuery Query = new ObjectQuery("SELECT * FROM Win32_Process WHERE Name='explorer.exe'");
        ManagementObjectSearcher searcher = new ManagementObjectSearcher(ms, Query);
        foreach(ManagementObject objQuery in searcher.Get())
        {
            objQuery.InvokeMethod("GetOwner", objArr); // objArr[0] contains the userId and objArr[1] contains Domainname
            userName = Convert.ToString(objArr[0]);
        }
    }
}
catch (System.Exception ex)
{
    throw ex;
}

Спасибо

0 голосов
/ 16 июля 2010

Насколько я понимаю, вы хотите удаленно определить имя пользователя людей, вошедших в систему на многих ПК, и представить результаты в приложении Windows Forms.

В Windows нет встроенного механизма для перечисления этогоинформация.

Какой бы механизм вы в конечном итоге ни выбрали, вам, вероятно, потребуется запустить приложение сканирования под учетной записью пользователя с правами администратора на сканируемом ПК.

Вы можете выбрать эмуляциюповедение команды SysInternals PsLoggedOn, которая проверяет ключ HKEY_USERS на удаленном компьютере.Чтобы узнать, кто подключен к ПК (т.е. имеет доступ к общим ресурсам), используйте API-интерфейс NetSessionEnum.

Дополнительную информацию о PsLoggedOn можно найти здесь: текст ссылки

...