Автор Тема: как отследить вкл и выкл компов в сети  (Прочитано 35898 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн Xiatsu

  • Постоялец
  • ***
  • Сообщений: 116
  • Рейтинг: 0
    • Просмотр профиля
Re: как отследить вкл и выкл компов в сети
« Ответ #75 : 13 ноября 2010, 14:50:42 »
Scar
так при аудите в эвенты в безопасность падают события входа\выхода (540\538) пользователя
Вход/выход не всегда означает включение/выключение, imho.
да, но это означает что пользователь ввел логин и загрузил свой профиль
т.е. начал работать

Оффлайн Scar

  • Постоялец
  • ***
  • Сообщений: 443
  • Рейтинг: 15
  • Пол: Мужской
    • Просмотр профиля
  • Откуда: Дефолт сити
Re: как отследить вкл и выкл компов в сети
« Ответ #76 : 13 ноября 2010, 14:51:37 »
Да, прочитал чуть подробнее начало дискуссии - увидел. Как альтернативу, можно сделать логин&логаут скрипт, который будет в базу данных складывать информацию о входе-выходе. Из которых можно потом дергать отчеты..

Оффлайн risc

  • Модератор
  • Старожил
  • *****
  • Сообщений: 848
  • Рейтинг: 7
  • Пол: Мужской
    • Просмотр профиля
  • Откуда: раша
Re: как отследить вкл и выкл компов в сети
« Ответ #77 : 13 ноября 2010, 14:55:35 »
  Да, прочитал чуть подробнее начало дискуссии - увидел. Как альтернативу, можно сделать логин&логаут скрипт, который будет в базу данных складывать информацию о входе-выходе. Из которых можно потом дергать отчеты.. 
поторопился, бывает  :)
Кто понял жизнь, тот не торопится...

Оффлайн Scar

  • Постоялец
  • ***
  • Сообщений: 443
  • Рейтинг: 15
  • Пол: Мужской
    • Просмотр профиля
  • Откуда: Дефолт сити
Re: как отследить вкл и выкл компов в сети
« Ответ #78 : 13 ноября 2010, 15:02:59 »
поторопился, бывает  :)
Рабочая суббота, что ж с нее взять..  ???
У нас реализована схема по логонам пользователей. В базу складывается инфа о времени, имени компьютера и пользователя, подключенных дисках, принтерах, прокси-сервере и адресе сетевушки. К этой базе подцеплены 2 интерфейса - Web и приложение, позволяющие сёрчить этих самых пользователей.

Оффлайн Fray

  • Администратор
  • Олдфаг
  • *****
  • Сообщений: 6671
  • Рейтинг: 58
  • Пол: Мужской
    • Просмотр профиля
    • IT-Бложек
  • Откуда: Петербург
Re: как отследить вкл и выкл компов в сети
« Ответ #79 : 13 ноября 2010, 15:05:14 »
У нас реализована схема по логонам пользователей. В базу складывается инфа о времени, имени компьютера и пользователя, подключенных дисках, принтерах, прокси-сервере и адресе сетевушки. К этой базе подцеплены 2 интерфейса - Web и приложение, позволяющие сёрчить этих самых пользователей.
Самописная или готовая?
MCSE: Messaging, MCSE: Communication, MCSE: Productivity, MCSA: Office 365, MCPS
my blog - http://it-blojek.ru

Оффлайн risc

  • Модератор
  • Старожил
  • *****
  • Сообщений: 848
  • Рейтинг: 7
  • Пол: Мужской
    • Просмотр профиля
  • Откуда: раша
Re: как отследить вкл и выкл компов в сети
« Ответ #80 : 13 ноября 2010, 15:06:46 »
 
  поторопился, бывает  :)   
  Рабочая суббота, что ж с нее взять..  ???  У нас реализована схема по логонам пользователей. В базу складывается инфа о времени, имени компьютера и пользователя, подключенных дисках, принтерах, прокси-сервере и адресе сетевушки. К этой базе подцеплены 2 интерфейса - Web и приложение, позволяющие сёрчить этих самых пользователей. 
если на скриптах, может расскажете подробнее, топикстартеру да и остальным может быть интересно ;)
Кто понял жизнь, тот не торопится...

Оффлайн myst

  • Постоялец
  • ***
  • Сообщений: 372
  • Рейтинг: 8
  • Пол: Мужской
    • mistiq.master@gmail.com
    • mistiq.master
    • Просмотр профиля
  • Откуда: Владивосток
Re: как отследить вкл и выкл компов в сети
« Ответ #81 : 13 ноября 2010, 15:47:31 »
**** парни, мне бы ваши проблемы... мониторить доступность хоста можно простейшим скриптом на баще в 2 строчки. не пойму вообще о чем разговор.

// ПФ, п.3.1 - мат
« Последнее редактирование: 13 ноября 2010, 15:52:29 от Fray »
٩(●̮̮̃•̃)۶

Оффлайн Scar

  • Постоялец
  • ***
  • Сообщений: 443
  • Рейтинг: 15
  • Пол: Мужской
    • Просмотр профиля
  • Откуда: Дефолт сити
Re: как отследить вкл и выкл компов в сети
« Ответ #82 : 13 ноября 2010, 15:48:23 »
Самописное все, конечно. А так - схема простая, как я уже сказал, есть скрипт, собирающий данные, есть таблица, их хранящая. Скрипт логона и скрипт создания таблицы прилагаю)
Что же до интерфейсов, то в веб-программировании я смыслю мало и эту часть разрабатывал не я, а вот вторая (программа) - моих рук дело, но она получилось узкозаточенная под нужды конкретного отдела, поэтому, совсем не кастомизируемая :(
PS скрипт на VBS, DB - MSSQL.

loginscript.vbs
'Login script

On Error Resume Next

SQLname = "SQL_Server_Name"
SQLlogin = "sql_login"
SQLpass = "password"
LogDB = "Database_Name"
LogTable = "Table_Name"


strComputer = "."
Set WshNetwork = WScript.CreateObject("WScript.Network")

'При желании можно использовать Trusted Connection для запуска под доменной учеткой
strConnSQL = "Provider=SQLOLEDB;Persist Security Info=True;Data Source=" & SQLname & ";Initial Catalog=" & LogDB & ";User Id=" &_
SQLlogin & ";Password=" & SQLpass

'------------------------------------Создаем объекты -------------------------------
Set objWMIService = GetObject("winmgmts:" & "{impersonationLevel=impersonate}!\\" & strComputer & "\root\cimv2")
Set colInstalledPrinters =  objWMIService.ExecQuery ("Select * from Win32_Printer where Default=true")     
Set colNetAdapterConf = objWMIService.ExecQuery ("Select * from Win32_NetworkAdapterConfiguration where IPEnabled = true")
Set colComputerSystem =  objWMIService.ExecQuery ("Select * from Win32_ComputerSystem")
Set colBiosInfo =  objWMIService.ExecQuery ("Select * from CIM_BIOSElement")
Set colNetInfo =  objWMIService.ExecQuery ("Select * from Win32_Proxy")

Set objDrives = WshNetwork.EnumNetworkDrives
Set MsConn = CreateObject("ADODB.Connection")

Dim colDate()
ReDim colDate(colNetAdapterConf.Count)

'------------------------------------Получаем массив соответствий Ip MAC -------------------------------
For Each objAdapter in colNetAdapterConf
If Not IsNull(objAdapter.IPAddress) Then
For i=LBound(objAdapter.IPAddress) to UBound(objAdapter.IPAddress)
ipTable = ipTable & " " & objAdapter.IPAddress(i)
Next
End If
colDate(count) = objAdapter.MACAddress & IPTable
count=count+1
ipTable=""
Next

'----------------------------------------------------------------Проверяем на дубликаты-------------
For k=LBound(colDate) to UBound(colDate)-1
If colDate(k)=colDate(k+1) Then
colDate(k)=""
End If
Next

'-----------------Получаем строку networkAdapterInf----------------------------------------------
For l=LBound(colDate) to UBound(colDate)
If Not colDate(l)="" Then
networkAdapterInf = networkAdapterInf & colDate(l) & "<br /> "
End If
Next

'-----------------Определяем принтер по умолчанию-----------------------------------------------------------
For Each objPrinter in colInstalledPrinters
defaultPrintName = objPrinter.Name
Next

'-----------------Определяем модель-----------------------------------------------------------
For Each objComp in colComputerSystem
pcModel = objComp.Model
Next

'-----------------Определяем SN-----------------------------------------------------------
For Each objBiosInf in colBiosInfo
pcSN = objBiosInf.SerialNumber
Next

'-----------------Определяем Proxy-----------------------------------------------------------
For Each objNetInfo in colNetInfo
cProxy = objNetInfo.ProxyServer & ":" & objNetInfo.ProxyPortNumber
Next

'-----------------Получаем список сетевых дисков----------------------------------------------
For i = 0 to objDrives.Count - 1 Step 2
netDrvList = netDrvList & objDrives.Item(i) & " (" & objDrives.Item(i+1) & ")" & "<br /> "
Next

'-----------------Пишем в табличку---------------------------------------------------
MsConn.Open strConnSQL
SQLQueryStr = "INSERT INTO " & LogTable & " VALUES ( DEFAULT,'" & WshNetworK.UserName &_
"','" & WshNetworK.ComputerName & "','" & defaultPrintName & "','" & pcModel & "','" & pcSn &_
"','" & networkAdapterInf & "','" & cProxy & "','" & netDrvList & "')"
MsConn.Execute SQLQueryStr


MsConn.Close
set MsConn = nothing

createtable.sql:
CREATE TABLE [LogTable](
[cDT] [datetime] NOT NULL DEFAULT (getdate()),
[userName] [varchar](256) NOT NULL,
[pcName] [varchar](256) NOT NULL,
[dPrinter] [varchar](256) NOT NULL,
[pcModel] [varchar](256) NULL,
[pcSn] [varchar](128) NULL,
[netAdapterInf] [varchar](256) NULL,
[cProxy] [varchar](128) NULL,
[netDrvList] [varchar](512) NULL
)

Оффлайн shs

  • Модератор
  • Ветеран
  • *****
  • Сообщений: 4401
  • Рейтинг: 89
    • Просмотр профиля
    • ShS's blog
  • Откуда: Default city
Re: как отследить вкл и выкл компов в сети
« Ответ #83 : 13 ноября 2010, 15:58:02 »
У меня, конечно, чуть запоздавший вопрос.. А зачем смотреть на ивенты входа/выхода, когда нужно мониторить включение/выключение компа? System logs -> 6006(shutdown), 6009(power up), 6008(shut upunexpected shutdown).
Автор уточнил (по мере развития дискуссии), что имел в виду именно логон/логофф пользователя, а не  вкл/выкл компа.
« Последнее редактирование: 13 ноября 2010, 16:06:36 от shs »

Оффлайн shs

  • Модератор
  • Ветеран
  • *****
  • Сообщений: 4401
  • Рейтинг: 89
    • Просмотр профиля
    • ShS's blog
  • Откуда: Default city
Re: как отследить вкл и выкл компов в сети
« Ответ #84 : 16 ноября 2010, 14:04:56 »
выложил "причесанный" скрипт в "Скрипты для автоматизации"

Оффлайн makc

  • Постоялец
  • ***
  • Сообщений: 170
  • Рейтинг: 3
  • Генератор случайных чисел
    • Просмотр профиля
Re: как отследить вкл и выкл компов в сети
« Ответ #85 : 23 ноября 2010, 07:58:18 »
makc
Ну про батник я тоже в первую очередь подумал, но при 50 клиентах это как-то не очень красиво получится, имхо.
Ну, во-первых пинг делается не списком а в цикле.
Во-вторых, если сеть не загружена, то можно поставить таймаут примерно в 5-10мс, что существенно ускорит работу скрипта.