Раздел: Скрипты

Проверка работы службы и значения ключа в реестре

На предприятии требовалось сделать скрипт, который время от времени крутится и проверяет работоспособность определённых служб а так же определённые ключи в реестре на пользовательских компьютерах. О том, что это за службы и ключи — я умолчу, для наглядности продемонстрирую на службе Themes и на ключе реестра, описывающем версию Internet Explorer. В конце скрипт высылает отчёт на почту.

Code:

$bad="bad people `n" # плохие люди :)
$x=8,9,100 #подсети
$y=1..254 # компы
$key=”SOFTWAREMicrosoftInternet Explorer”
$value = "Version"
$HKLM="2147483650" # это код раздела HKLM. смотреть коды там http://msdn.microsoft.com/en-us/library/aa390445%28VS.85%29.aspx
foreach ($i in $x) {
$y | foreach { $server="172.16.$i.$_"
echo $server
$a=Get-WmiObject -Query "select * from win32_pingstatus where (address='$server' AND ResponseTimeToLive=128)"
if ($a.statuscode -eq 0) {
$reg = [wmiclass]"\$serverrootdefault:StdRegprov"
if ($?) {
if ( ($reg.GetdwordValue($HKLM, $key, $value)).uValue -eq $null) {
echo "$server no key IE version"
$bad=$bad+"$server no key IE version `n"
}
elseif (($reg.GetdwordValue($HKLM, $key, $value)).uValue -ne "8.0.7600.16385") {
echo "$server IE version is not 8.0.7600.16385"
$bad=$bad+"$server IE version is not 8.0.7600.16385 `n"
}
$rtn = Get-WmiObject -Query "Select * from Win32_Service where name = 'Themes'" -ComputerName $server
if ($?) {
echo "Themes" $rtn.state
if ($rtn.State -ne "Running") {$bad=$bad + "Themes isnt working"; echo "Themes is not working!"}
}
} else {echo "$server нет прав не доступен rpc и прочее и прочее"}
} else { echo "$server не пингуется или на компе - не винда"
}
}
}
Send-MailMessage -to "Igor " -from "superscript " -subject "bad ips" -body "$bad" -smtpServer mailserver.mydomain.local

Комментировать

Комментарии

17 − шесть =