Перейти из форума на сайт.

НовостиФайловые архивы
ПоискАктивные темыТоп лист
ПравилаКто в on-line?
Вход Забыли пароль? Первый раз на этом сайте? Регистрация
Компьютерный форум Ru.Board » Операционные системы » Microsoft Windows » Сценарии для Windows

Модерирует : KLASS, IFkO

 Версия для печати • ПодписатьсяДобавить в закладки
На первую страницук этому сообщениюк последнему сообщению

Открыть новую тему     Написать ответ в эту тему

newhk



BANNED
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору


Код:
 
$shops = @{
    '192.168.2.1' = 'Филиал1'; '192.168.3.1' = 'Филиал2'
}
 
$LogFile = 'C:\IT\Scripts\CheckWebServices\Logs\error.log'
$to = 'user@domain.ru'
$Links = @(
    'http://192.168.3.1/FSCIS/hs/smAPI/Ping'
    'http://192.168.2.1/FSCIS/hs/smAPI/Ping'
)
 
$reportBackupName = "\\server\D$\_Backup_Report_Web_Services\OldReports\BackupReport_" + (Get-Date).AddDays(-1).ToString('dd-MM-yyyy') + ".html"
$WebStatusReport = "\\server\D$\_Backup_Report_Web_Services\BackupReport.html"
 
if ((Get-Date).Hour -eq 1 -and (Get-Date).Minute -eq 1){
    Copy-Item $WebStatusReport -Destination $reportBackupName -Force
}
 
$header = "
<html>
<head>
<meta http-equiv='Refresh' content='11' />
<meta http-equiv='Content-Type' content='text/html; charset=iso-8859-1'>
<title>1C Web-monitoring</title>
<STYLE TYPE='text/css'>
TABLE {
    width: 800px; /* Ширина таблицы */
    border-collapse: collapse; /* Убираем двойные линии между ячейками */
}
TD, TH {
    padding: 3px; /* Поля вокруг содержимого таблицы */
    border: 1px solid black; /* Параметры рамки */
}
TH {
    background: #b0e0e6; /* Цвет фона */
}
</style>
</head>
<body>
<table width='100%'>
<tr bgcolor='#FFFFE0'>
<td colspan='7' height='25' align='center'>
<font face='tahoma' color='#003399' size='4'><strong>Статус WEB-служб в филиалах</strong></font>
</td>
</tr>
</table>
"
 
Set-Content $WebStatusReport $header -Encoding UTF8
 
$tableHeader = "
<table width='100%'><tbody>
<tr bgcolor=#FFFFE0>
<td width='33%' align='center'>Филиал</td>
<td width='33%' align='center'>Статус</td>
</tr>
"
 
Add-Content $WebStatusReport $tableHeader -Encoding UTF8
 
foreach ($Link in $Links){    
    $HttpContent = $null
    $fil = $Link.Split('/')[2]
    $filial = $shops.$fil
    $HttpContent = Invoke-WebRequest -URI $Link -UseBasicParsing
 
    Add-Content $WebStatusReport "<td width='33%' bgcolor='LemonChiffon' align='center'><font color='Black' size='3'><B>$filial</B></font></td>"
    if ($HttpContent.StatusCode -ne 200 -or $HttpContent -eq $null){
        if (Invoke-Sqlcmd -ServerInstance server2 -Database TestBase -Username sa -Password 'Password' -Query "Select * From Table1 Where Filial='$Filial'"){
            #Add-Content $WebStatusReport "<td width='33%' bgcolor='IndianRed' align='center'><font color='White' size='4'>Не в сети</font></td>"
            #Add-Content $WebStatusReport "</tr>"
            Continue
        }
        else
        {
            $Status = 'False'
            $Global:Begin = Get-Date
            $query = "with src (Filial, Status) as
            (
                select
                '$filial', '$Status'
            )
            MERGE Table1 tgt
            USING src ON src.Filial = tgt.Filial
            WHEN MATCHED THEN
                UPDATE SET Filial = src.Filial, Status = src.Status
            WHEN NOT MATCHED THEN
                INSERT (Filial, Status)
                VALUES (src.Filial, src.Status);"
 
            Invoke-Sqlcmd -ServerInstance server2 -Database TestBase -Username sa -Password 'Password' -Query $query
            Send-MailMessage -SmtpServer server3 -Port 25 -From WebServiceAlert@domain.ru -To $to -Subject ("Внимание! Web-сервис в филиале  " + '$filial' + "  недоступен...") -Body ("Проблемы с Web-сервисом в филиале  -= " + $filial + " =-.`nПроблема зафиксирована в " + $Begin.ToString('dd.MM.yyyy HH:mm:ss')) -Encoding utf8
        }
        Add-Content $WebStatusReport "<td width='33%' bgcolor='IndianRed' align='center'><font color='White' size='4'>Не в сети</font></td>"
    }
    else
    {
        $Status = 'True'
        $query = "with src (Filial, Status) as
        (
            select
            '$Filial', '$Status'
        )
        MERGE Table1 tgt
        USING src ON src.Filial = tgt.Filial
        WHEN MATCHED THEN
            UPDATE SET Filial = src.Filial, Status = src.Status
        WHEN NOT MATCHED THEN
        INSERT (Filial, Status)
        VALUES (src.Filial, src.Status);"
 
        Add-Content $WebStatusReport "<td width='7%' bgcolor='PaleGreen' align='center'><font color='Black' size='4'>В сети</font></td>"
        #Invoke-Sqlcmd -ServerInstance server2 -Database TestBase -Username sa -Password 'Pessword' -Query $query
        if (Invoke-Sqlcmd -ServerInstance s170016 -Database TestBase -Username sa -Password 'Password' -Query "Select * From Table1 Where Filial='$Filial'"){
            $Global:Finish = Get-Date
            $query = "DELETE Table1 FROM
                (SELECT * FROM Table1
                WHERE Filial='$Filial') AS Selected
                WHERE Table1.Filial = Selected.Filial"
            Invoke-Sqlcmd -ServerInstance server2 -Database testbase -Username sa -Password 'Password' -Query $query
            Send-MailMessage -SmtpServer server3 -Port 25 -From WebServiceAlert@domain.ru -To $to -Subject ("Web-сервис в филиале  " + '$filial' + "  снова доступен...") -Body ("Web-сервис в филиале  -= " + $filial + " =-,  восстановлен.`nВремя возобновления сервиса: " + (Get-Date).ToString('dd.MM.yyyy HH:mm:ss')) -Encoding utf8
        }
    }
    Add-Content $WebStatusReport "</tr>"
}
 
Add-Content $WebStatusReport "</table></body></html>"
 


Всего записей: 400 | Зарегистр. 02-02-2009 | Отправлено: 12:33 20-01-2023 | Исправлено: newhk, 12:39 20-01-2023
Открыть новую тему     Написать ответ в эту тему

На первую страницук этому сообщениюк последнему сообщению

Компьютерный форум Ru.Board » Операционные системы » Microsoft Windows » Сценарии для Windows


Реклама на форуме Ru.Board.

Powered by Ikonboard "v2.1.7b" © 2000 Ikonboard.com
Modified by Ru.B0ard
© Ru.B0ard 2000-2024

BitCoin: 1NGG1chHtUvrtEqjeerQCKDMUi6S6CG4iC

Рейтинг.ru