Как узнать какой пользователь сейчас в сети?

Тема в разделе ".NET", создана пользователем f.7, 20 фев 2008.

Статус темы:
Закрыта.
  1. f.7

    f.7 Гость

    Добрый день...
    У нас на работе все компы входят в корпаративный домен, тут такая задача стала - что необходимо узнать в определённый момент времени кто сейчас в домене(тоесть залогинился на комп).
    У меня тут конечно возникла идея написать сервис который будет на сервер например каждую минуту что-нить посылать, сервис запускать от имени пользователя и всё класно я буду знать кто в сети, но мне не нравиться это тем что если обнаружиться какой-нить баг, придеться переустанавливать сервис на всех компах - что очень не удобно, я так подумал что будет проще написать один сервис на серваке, который будет опрашивать компы в сети.
    Вот собственно как это реализовать совсем не знаю? подскажите пожалуйста если сталкивались с подобными задачами...
    Спасибо...
     
  2. morpheus

    morpheus скриптописец

    Регистрация:
    7 авг 2006
    Сообщения:
    3.927
    Симпатии:
    0
    Для: f.7
    Ну я не большой спец в администрировании , ну а разве сам сервер ( доменный ) не скажет кто у него щас залогоился?
     
  3. f.7

    f.7 Гость

    Для: Morpheus
    скажет, да не сохронит, если бы мне нужно было только посмотреть - я бы сюда не писал :)
    Для: sax_ol
    а почему сервисов не нужно? - если мне надо опрашивать сеть каждые минут 5
     
  4. f.7

    f.7 Гость

    Вот решение:
    Код (Text):
    static private void getSystemInfo(string stringMachineName)
    {
    ManagementObjectSearcher query;
    ManagementObjectCollection queryCollection;
    System.Management.ObjectQuery oq;
    //Connect to the remote computer
    ConnectionOptions co = new ConnectionOptions();
    //Point to machine
    System.Management.ManagementScope ms = new System.Management.ManagementScope("\\\\" + stringMachineName + "\\root\\cimv2", co);
    try
    {
    //machine info
    oq = new System.Management.ObjectQuery("SELECT * FROM Win32_ComputerSystem");
    query = new ManagementObjectSearcher(ms, oq);
    queryCollection = query.Get();
    foreach (ManagementObject mo in queryCollection)
    {
    //MessageBox.Show("Domain: " + mo["Domain"]);
    //MessageBox.Show("User Name: " + mo["UserName"]);
    string s1 = (string)mo["UserName"];
    }
    }
    catch (Exception e)
    {
    }
    }
     
Загрузка...
Статус темы:
Закрыта.

Поделиться этой страницей