#проверка запуска приложения
#Уведомление по почте о закрытие и запуске приложения
#Имя хоста
$hosted = [Сервер приложения]
#Имя процесса без расширения! (без ".exe")
$app = [Имя приложения]
#Получатели
$recipiens = [Адрес получателя уведомлений]
$Sender = [Адрес отправителя уведомлений]
$SMTP_SRV = [Почтовый сервер]
#######################################################
$encoding = ([System.Text.Encoding]::Unicode)
$TEST_PROCESS = $NULL
$TEST_PATH_BAD = $NULL
$TEST_PATH_GOD = $NULL
#Пути для флагов закрытия и открытия приложения
$TEST_PATH_BAD = ($env:TMP + '\' + $hosted + '_' + $app + '.BFL')
$TEST_PATH_GOD = ($env:TMP + '\' + $hosted + '_' + $app + '.GFL')
#Бесконечный цикл проверки с интервалом 30 сек
Do{
$TEST_PROCESS = Get-Process -ComputerName $hosted -name $app
IF ( ($TEST_PROCESS -eq $NULL) -AND ((Test-Path -Path $TEST_PATH_BAD) -eq $False) ){
send-mailmessage -smtpServer $SMTP_SRV -Encoding ([System.Text.Encoding]::Unicode) -to $recipiens -from $Sender -subject "Внимание! Приложение не запущено" -body ("Зафиксировано закрытие приложения" + "`nСервер: " + $hosted + "`nПриложение: " + $app + "`n`nВременной штамп: " + (Get-Date -UFormat "%d.%m.%Y - %H:%M:%S") )
#Установка флага, приложение не запущено
Set-Content -Path $TEST_PATH_BAD -Value (get-date)
Remove-Item -Force -Path $TEST_PATH_GOD
}ELSEIF( ($TEST_PROCESS -ne $NULL) -AND ((Test-Path -Path $TEST_PATH_GOD) -eq $False) ){
send-mailmessage -smtpServer $SMTP_SRV -Encoding ([System.Text.Encoding]::Unicode) -to $recipiens -from $Sender -subject "Приложение успешно запущено" -body ("Зафиксирован запуск приложения" + "`nСервер: " + $hosted + "`nПриложение: " + $app + "`n`nВременной штамп: " + (Get-Date -UFormat "%d.%m.%Y - %H:%M:%S") )
#Установка флага, приложение запущено
Set-Content -Path $TEST_PATH_GOD -Value (get-date)
Remove-Item -Force -Path $TEST_PATH_BAD
}
sleep 30
}While($Stop_Flag -eq $NUll)
#Уведомление по почте о закрытие и запуске приложения
#Имя хоста
$hosted = [Сервер приложения]
#Имя процесса без расширения! (без ".exe")
$app = [Имя приложения]
#Получатели
$recipiens = [Адрес получателя уведомлений]
$Sender = [Адрес отправителя уведомлений]
$SMTP_SRV = [Почтовый сервер]
#######################################################
$encoding = ([System.Text.Encoding]::Unicode)
$TEST_PROCESS = $NULL
$TEST_PATH_BAD = $NULL
$TEST_PATH_GOD = $NULL
#Пути для флагов закрытия и открытия приложения
$TEST_PATH_BAD = ($env:TMP + '\' + $hosted + '_' + $app + '.BFL')
$TEST_PATH_GOD = ($env:TMP + '\' + $hosted + '_' + $app + '.GFL')
#Бесконечный цикл проверки с интервалом 30 сек
Do{
$TEST_PROCESS = Get-Process -ComputerName $hosted -name $app
IF ( ($TEST_PROCESS -eq $NULL) -AND ((Test-Path -Path $TEST_PATH_BAD) -eq $False) ){
send-mailmessage -smtpServer $SMTP_SRV -Encoding ([System.Text.Encoding]::Unicode) -to $recipiens -from $Sender -subject "Внимание! Приложение не запущено" -body ("Зафиксировано закрытие приложения" + "`nСервер: " + $hosted + "`nПриложение: " + $app + "`n`nВременной штамп: " + (Get-Date -UFormat "%d.%m.%Y - %H:%M:%S") )
#Установка флага, приложение не запущено
Set-Content -Path $TEST_PATH_BAD -Value (get-date)
Remove-Item -Force -Path $TEST_PATH_GOD
}ELSEIF( ($TEST_PROCESS -ne $NULL) -AND ((Test-Path -Path $TEST_PATH_GOD) -eq $False) ){
send-mailmessage -smtpServer $SMTP_SRV -Encoding ([System.Text.Encoding]::Unicode) -to $recipiens -from $Sender -subject "Приложение успешно запущено" -body ("Зафиксирован запуск приложения" + "`nСервер: " + $hosted + "`nПриложение: " + $app + "`n`nВременной штамп: " + (Get-Date -UFormat "%d.%m.%Y - %H:%M:%S") )
#Установка флага, приложение запущено
Set-Content -Path $TEST_PATH_GOD -Value (get-date)
Remove-Item -Force -Path $TEST_PATH_BAD
}
sleep 30
}While($Stop_Flag -eq $NUll)
Комментариев нет:
Отправить комментарий