Аудит запланированных заданий

Powershell Logo

Серверный парк растет, вместе с ним плодится неимоверное количество заданий которые запущены из под разных пользователей, созданы различными администраторами и у вас нет четкого понимания

  1. где
  2. что
  3. как отработало

На ручную проверку нет времени и хочется хоть какой то автоматизации процесса.

Давайте посмотрим как можно облегчить поставленную задачу.

Первым шагом создаем файл со списком хостов.

SRV01
SRV02
SRV03
...

Далее, формируем файл get-SheduledTask.ps1 и методом «скопировать-вставить» наполняем его содержимым представленным ниже.

# get-SheduledTask.ps1
Clear-Host
$servers = Get-Content "hostlist.txt"
$srvcount = (get-content "hostlist.txt" | Measure-Object -property length -Line)

write-host "Number of Servers to Check: " $srvcount.Lines
$COUNT = 0

foreach ($server in $servers) {
  write-progress -activity "Check Scheduled tasks." -status "Percent complete: " -percentComplete (($COUNT / $srvcount.Lines) * 100)
  $ping = new-object System.Net.NetworkInformation.Ping
  $Reply = $ping.send($server)
  if ($Reply.status –eq "Success") {
    write-host "Online -" $server
    $COUNT=$COUNT+1
 
    if ($COUNT -eq 1) {
      schtasks /query /FO CSV /V /S $server | Out-File "SchedTaskTemp.csv"
    } else {
      schtasks /query /NH /FO CSV /V /S $server | Out-File -append "SchedTaskTemp.csv"
    }
  } else {
    write-host "Offline -" $server
}
$Reply = ""
}
Import-Csv "SchedTaskTemp.csv" | Where-Object {$_."Last Result" -ne 0} | Format-Table Hostname,TaskName,"Run As User","Last Run Time","Last Result" | Out-File report.txt

Алгоритм работы скрипта простой:

  1. из файла hostlist.txt извлекается список серверов подлежащих проверке.
  2. проверяется доступность сервера
  3. при помощи команды schtasks /query с сервера берется список заданий и помещается в файл SchedTaskTemp.csv

Примечание: Стоит отметить что данный скрипт корректно работает только под Windows XP или под Windows Server 2003 по причине того что Vista и Win7 распознают строку schtasks /query /NH /FO CSV /V /S $server как некорректную. Немного позже постараюсь адаптировать скрипт для всех систем.

Надеюсь что описанный инструмент поможет вам в работе.
Комментарии и замечания приветствуются.

Буду благодарен, если поделитесь этой статьей:

Приглашаю присоединиться ко мне в следующих сервисах:
facebook Google Plus вКонтакте Twitter
Если Вам понравилась статья, то вы можете подписаться на RSS. А также бесплатно подписаться по E-mail и получать актуальную информацию в числе первых.
Получать обновления на email

Вы можете оставить комментарий.

Добавить комментарий

XHTML: Вы можете использовать тэги: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>