В интернете много статей по использованию различных программ по устранению проблем с ОС Windows. Эти программы решают, в той или иной степени, определенные проблемы, но не все, с которыми приходится сталкиваться. Нередко проблемы весьма специфичные, связанные с использованием каких-то специфических программ.
Есть куда более интересный способ решения проблем, правда он требует определенных знаний и желания попрограммировать. Этот способ, при должном подходе, позволит забыть об очень многих проблемах.
Любые события, происходящие в операционной системе, Windows записывает в журналы (Приложение, Безопасность, Система, ...). Все события имеют, как минимум, 2 параметра - тип (сведения, ошибка) и код события.
На любое из этих событий можно создать задачу, которая будет вызываться автоматически, при возникновении данного события и производить необходимые, заданные в скрипте, действия.
Как это применять?
Допустим простую ситуацию: кто-то постоянно пытается авторизоваться в вашей сети из вне, перебирая варианты связок учетная запись/пароль. В то же время, вы не можете закрыть сервер для доступа из вне - есть удаленные сотрудники.
В журналах система регистрирует события с кодом 4625 (Учетной записи не удалось выполнить вход).
Можно сделать примерно такой скрипт (это лишь набросок) на Powershell (*.ps1):
$Query = @"
<QueryList>
<Query Id="0" Path="Security">
<Select Path="Security">
*[EventData[Data[@[System[(EventID='4625')]]
</Select>
</Query>
</QueryList>
"@
$events = Get-WinEvent -FilterXML $Query
$ipaddr = @{ label="IP"; Expression={$_.properties[9].value} }
New-NetFirewallRule -DisplayName "Block IP $ipaddr" –RemoteAddress $ipaddr -Direction Inbound -Action Block
Возьмем другой примерный вариант. На сервере печати регистрируется событие с кодом 372 (сбой при печати документа). Один из возможных вариантов действий в этом случае - очистка очереди печати и перезапуск службы печати (spooler).
Stop-Service spooler
$win=(Get-ChildItem env:windir).value
$spool="\System32\spool\PRINTERS\"
$pth=$win + $spool + "*.*"
Remove-Item $pth
Start-Service spooler
Помимо обработки системных журналов, можно создавать собственные журналы, куда записывать необходимые события для удобства мониторинга.
Такими средствами можно автоматизировать полное или частичное решение множества различных проблем. Вкупе с иными встроенными инструментами, можно сделать так, что о проблемах практически и не будете вспоминать.
Надеюсь, что моя небольшая статья кому-то окажется полезной.
Если у Вас есть интересные варианты использования, описанного в статье механизма, поделитесь ими в комментариях.
Это всего лишь мои мысли вслух .
Если Вам понравилась моя статья, не забудьте оценить её лайком и поделиться с друзьями в социальных сетях!
Если по содержимому данной статьи у Вас есть собственное мнение, поделитесь им в комментариях.