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

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

Оффлайн Xiatsu

  • Постоялец
  • ***
  • Сообщений: 116
  • Рейтинг: 0
    • Просмотр профиля
Re: как отследить вкл и выкл компов в сети
« Ответ #15 : 03 ноября 2010, 10:48:35 »
осталось выяснить как сделать скрипт для формирования отчета.....

Оффлайн Fray

  • Администратор
  • Олдфаг
  • *****
  • Сообщений: 6668
  • Рейтинг: 58
  • Пол: Мужской
    • Просмотр профиля
    • IT-Бложек
  • Откуда: Петербург
Re: как отследить вкл и выкл компов в сети
« Ответ #16 : 03 ноября 2010, 10:51:52 »
Fray, это надо создавать дополнительную политику или можно в уже имеющейся какой нибудь?
Ну если надо отслеживать всех клиентов, то можно использовать Default Domain Policy, но, конечно, правильнее создать отдельную политику.
MCSE: Messaging, MCSE: Communication, MCSE: Productivity, MCSA: Office 365, MCPS
my blog - http://it-blojek.ru

Оффлайн Xiatsu

  • Постоялец
  • ***
  • Сообщений: 116
  • Рейтинг: 0
    • Просмотр профиля
Re: как отследить вкл и выкл компов в сети
« Ответ #17 : 03 ноября 2010, 10:56:52 »
Fray, это надо создавать дополнительную политику или можно в уже имеющейся какой нибудь?
Ну если надо отслеживать всех клиентов, то можно использовать Default Domain Policy, но, конечно, правильнее создать отдельную политику.
пойду попробую)))
на счет скрипта для вытягивания информации из событий, подскажите на чем лучше и ссылочку тоже  ::)

Оффлайн makc

  • Постоялец
  • ***
  • Сообщений: 170
  • Рейтинг: 3
  • Генератор случайных чисел
    • Просмотр профиля
Re: как отследить вкл и выкл компов в сети
« Ответ #18 : 03 ноября 2010, 11:08:28 »
Как-то поставил себе такую задачу. Домена на было.
Решил вопрос батником, который раз в минуту пинговал все компы в сети, и в случае _изменения_ состояния (вкл - > выкл, и наоборот) делал запись в нужный файл в духе "YYYY-MM-DD_HH:SS <CompName> is UP/DOWN". Но это так... Больше историческая данность. =)

Оффлайн Fray

  • Администратор
  • Олдфаг
  • *****
  • Сообщений: 6668
  • Рейтинг: 58
  • Пол: Мужской
    • Просмотр профиля
    • IT-Бложек
  • Откуда: Петербург
Re: как отследить вкл и выкл компов в сети
« Ответ #19 : 03 ноября 2010, 11:09:15 »
makc
Ну про батник я тоже в первую очередь подумал, но при 50 клиентах это как-то не очень красиво получится, имхо.
MCSE: Messaging, MCSE: Communication, MCSE: Productivity, MCSA: Office 365, MCPS
my blog - http://it-blojek.ru

Оффлайн Xiatsu

  • Постоялец
  • ***
  • Сообщений: 116
  • Рейтинг: 0
    • Просмотр профиля
Re: как отследить вкл и выкл компов в сети
« Ответ #20 : 03 ноября 2010, 11:19:57 »
makc
Ну про батник я тоже в первую очередь подумал, но при 50 клиентах это как-то не очень красиво получится, имхо.
ага, компов много, каджый пинговать...

Оффлайн risc

  • Модератор
  • Старожил
  • *****
  • Сообщений: 848
  • Рейтинг: 7
  • Пол: Мужской
    • Просмотр профиля
  • Откуда: раша
Re: как отследить вкл и выкл компов в сети
« Ответ #21 : 03 ноября 2010, 11:31:01 »
carlson, здесь скрипт на мониторинг:

http://xaegr.wordpress.com/2008/10/23/monitor-host/
Кто понял жизнь, тот не торопится...

Оффлайн Xiatsu

  • Постоялец
  • ***
  • Сообщений: 116
  • Рейтинг: 0
    • Просмотр профиля
Re: как отследить вкл и выкл компов в сети
« Ответ #22 : 03 ноября 2010, 11:34:51 »
о, так это получается можно без аудита?
а скрипт на PowerShell, почему, чем он лучше VBs? хотя вопрос наверное не к вам)))

Оффлайн shs

  • Модератор
  • Ветеран
  • *****
  • Сообщений: 4401
  • Рейтинг: 89
    • Просмотр профиля
    • ShS's blog
  • Откуда: Default city
Re: как отследить вкл и выкл компов в сети
« Ответ #23 : 05 ноября 2010, 00:18:55 »
о, так это получается можно без аудита?
Вход/выход пользователя - через аудит.
а скрипт на PowerShell, почему, чем он лучше VBs?
Тем, что решение одной и той же задачи на PoSh будет в разы по количеству строк кода.

Оффлайн shs

  • Модератор
  • Ветеран
  • *****
  • Сообщений: 4401
  • Рейтинг: 89
    • Просмотр профиля
    • ShS's blog
  • Откуда: Default city
Re: как отследить вкл и выкл компов в сети
« Ответ #24 : 05 ноября 2010, 01:57:35 »
в общем, в первом приближении, у меня получилось так:
<# 
Get-CompsLogOnOffEvts.ps1 shs 20101105
#>
<# Функция Get-LogonLogoffEvts предназначена для получения массива объектов,
    содержащих информацию о событиях входа/ выхода на заданном компьютере
#>
Function Get-LogonLogoffEvts ($CompName, $Before=(Get-Date).AddDays(1).Date, $After=(Get-Date).Date) {
    #создадим новый объект, в который будем записывать информацию об очередном событии входа/выхода
    $objLogOnOffEvt=New-Object PSObject -Property @{
        CompName=$CompName;
        TimeGenerated=$null;
        User=$null;
        Domain=$null;
        LogonType=$null;
    }
    #массив, в который будем собирать информацию входа/выхода для заданного компьютера
    $arrLogOnOffEvts=@()
    #Перебираем все события с EventID равными 528|538 в заданном диапазоне даты/времени...
    Get-EventLog -ComputerName $CompName -InstanceId 528,538 -LogName Security -After $After -Before $Before|%{
        #...и сохраняем всю полезную информацию о событии в объете $objLogOnOffEvt
        $objLogOnOffEvt.TimeGenerated=$_.TimeGenerated
        switch -regex ($_.Message) {
            "Пользователь:\s+(\w+(?:\s\w+)*)" {$objLogOnOffEvt.User=$Matches[1]}
            "Домен:\s+(\w+(?:\s\w+)*)"       {$objLogOnOffEvt.Domain=$Matches[1]}
            "Тип входа:\s+(\d+))"  {$objLogOnOffEvt.LogonType=$Matches[1]}
        }
        #добавляем информацию об очередном событии в массив
        $arrLogOnOffEvts+=$objLogOnOffEvt
    }
    #возвращаем, как результат работы функции, информацию о всех собранных событиях
    $arrLogOnOffEvts
}
#
#====================================== Точка входа скрипта ==================================
#
#Полное имя файла отчета
$ReportFileName="c:\temp\Report.csv"
#Массив, в который будем собирать информацию о событиях входа/выхода, собранную со всех опрашиваемых компьютеров
$arrReport=@()
#Зададим корневое OU, с которого будет начат поиск компьютеров
$SearchRoot="domain.local/Workstations"
#Выбираем из заданной ветки все неотключенные учетные записи компьютеров
$arrComps = Get-QADComputer -ErrorAction SilentlyContinue -SearchRoot $SearchRoot -SizeLimit 0 |
    select name, @{Name="Disabled"; Exp={$_.useraccountcontrol -band 2}}|
   ?{$_.Disabled -eq 0}| select -ExpandProperty name
#можно было бы и далше продолжать передавать данные по конвейеру, но мы не будем этого делать
#(чтобы упростить отладку и облегчить восприятие)
#для каждого компьютера из списка...
$arrComps|foreach {
    ##...если компьютер доступен (пингуется)...
    if (Test-Connection $_ -Count 1 -Quiet) {
        Write-Host $_
        ###...добавляем информацию о событиях входа/выхода текущего компьютера к общему отчету
        $arrReport+=Get-LogonLogoffEvts $_
    }
#Выгружаем сформированный отчет в файл-csv, который удобно обрабатывать в excel
Export-Csv -Path $ReportFileName -UseCulture -Encoding Default
}

Upd. Пофиксил ошибку в функции Get-LogonLogoffEvts (она все время опрашивала компьютер, на котором запущен скрипт, вместо заданного)
« Последнее редактирование: 05 ноября 2010, 09:59:26 от shs »

Оффлайн Xiatsu

  • Постоялец
  • ***
  • Сообщений: 116
  • Рейтинг: 0
    • Просмотр профиля
Re: как отследить вкл и выкл компов в сети
« Ответ #25 : 05 ноября 2010, 10:31:18 »
у меня выдает какие то неведомые ошибки

Оффлайн shs

  • Модератор
  • Ветеран
  • *****
  • Сообщений: 4401
  • Рейтинг: 89
    • Просмотр профиля
    • ShS's blog
  • Откуда: Default city
Re: как отследить вкл и выкл компов в сети
« Ответ #26 : 05 ноября 2010, 10:32:47 »
у меня выдает какие то неведомые ошибки
сочувствую, но при таком описании проблемы больше ничем помочь не могу.

Оффлайн Xiatsu

  • Постоялец
  • ***
  • Сообщений: 116
  • Рейтинг: 0
    • Просмотр профиля
Re: как отследить вкл и выкл компов в сети
« Ответ #27 : 05 ноября 2010, 10:39:35 »
установил PowerGUI
вставил туда ваш скрипт, поставил свой домен в скрипте
при запуске идут ошибки:
File C:\Documents and Settings\user\My Documents\WindowsPowerShell\logInlogOff.ps1 cannot be loaded because the execution o
f scripts is disabled on this system. Please see "get-help about_signing" for more details.
At line:1 char:2
+ . <<<<  'C:\Documents and Settings\user\My Documents\WindowsPowerShell\logInlogOff.ps1'
    + CategoryInfo          : NotSpecified: ( : ) [], PSSecurityException
    + FullyQualifiedErrorId : RuntimeException
 

Оффлайн myst

  • Постоялец
  • ***
  • Сообщений: 372
  • Рейтинг: 8
  • Пол: Мужской
    • mistiq.master@gmail.com
    • mistiq.master
    • Просмотр профиля
  • Откуда: Владивосток
Re: как отследить вкл и выкл компов в сети
« Ответ #28 : 05 ноября 2010, 11:26:34 »
вот вы любители изобретать велосипеды....
есть стандартный протокол - называется snmp
٩(●̮̮̃•̃)۶

Оффлайн Fray

  • Администратор
  • Олдфаг
  • *****
  • Сообщений: 6668
  • Рейтинг: 58
  • Пол: Мужской
    • Просмотр профиля
    • IT-Бложек
  • Откуда: Петербург
Re: как отследить вкл и выкл компов в сети
« Ответ #29 : 05 ноября 2010, 11:28:22 »
myst
И каждого клиента можно опрашивать по snmp?
MCSE: Messaging, MCSE: Communication, MCSE: Productivity, MCSA: Office 365, MCPS
my blog - http://it-blojek.ru