• 15 апреля стартует «Курс «SQL-injection Master» ©» от команды The Codeby

    За 3 месяца вы пройдете путь от начальных навыков работы с SQL-запросами к базам данных до продвинутых техник. Научитесь находить уязвимости связанные с базами данных, и внедрять произвольный SQL-код в уязвимые приложения.

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

    Запись на курс до 25 апреля. Получить промодоступ ...

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

  • Автор темы f.7
  • Дата начала
Статус
Закрыто для дальнейших ответов.
F

f.7

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

morpheus

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

f.7

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

f.7

Вот решение:
Код:
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)
{
}
}
 
Статус
Закрыто для дальнейших ответов.
Мы в соцсетях:

Обучение наступательной кибербезопасности в игровой форме. Начать игру!