Скрипт PowerShell для контроля работы серверов

Задача:
Пинговать сервер и при отсутствие ответа записать в файл время и имя сервера который не ответил.  А так же выводить сообщение на экран машины на которой запущен скрипт.

$file = 'D:\Logs\servers.txt'#файл со списком серверов
$DateNow =  (Get-Date -format "dd-MM-yyyy-HH-mm-ss").ToString() #текущая дата в заданном формате и переводим в строковый тип
$DatePing =  (Get-Date -format "dd-MM-yyyy-HH-mm-ss").ToString() #текущая дата в заданном формате и переводим в строковый тип для пинга
$fileerr = "D:\Logs\ServerErr-$DateNow.txt" # файл для записи ошибок пинга
New-Item -Path $fileerr -ItemType file #создаем новый файл с заданным именем
$servers = gc $file
$a = 0 #просто переменная
#Цикл бесконечный
While ($a -le 5)
{
    foreach ($Server in $Servers)
    {
        $DatePing =  (Get-Date -format "dd-MM-yyyy;HH-mm-ss").ToString() #текущая дата в заданном формате и переводим в строковый тип
        if (test-Connection -ComputerName $Server -Count 2 -Quiet)
            {
                $m = "$Server;$DatePing;Все хорошо"
                write-host $m -ForegroundColor Green #пишем в консоль результат выполнения
               
            }
        else
            {
                write-Host "$Server;$DatePing;Не пингуется" -ForegroundColor Red #передаем в консоль какой сервер не пингуется
                $m = "$server;$DatePing;Сервер не пингуется" #создаем строку в конорой фраза и сервер который не ответил на запрос
                Out-File -FilePath $fileerr -InputObject $m -Append #выводим в файл результат работы
                $m1 = "$server - Сервер не пингуется"
                [System.Reflection.Assembly]::LoadWithPartialName("System.Windows.Forms")
                $Result=[Windows.Forms.MessageBox]::Show($m1, "Беда",[Windows.Forms.MessageBoxButtons]::Ok, [Windows.Forms.MessageBoxIcon]::STOP)
            }
    }#конец цикла foreach
}#end While#

Комментарии

Популярные сообщения из этого блога

PowerShell. Коммандлет для паузы в выполнении скрипта Wait-Event

Первоначальная настройка МФУ Kyocera FS-1035MFP для печати по сети