Основная прелесть скриптов PowerShell - возможность сочетать в одном месте использование встроенных скриптлетов, объектов .NET, WMI, Windows Script Host и вывода консольных программ. Это не только расширяет область применения консоли PowerShell, но и расширяет аудиторию, которая ей может быстро и безболезненно может начать пользоваться.
Кто такой веб-мастер? Человек, вынужденный совмещать навыки как минимум программиста, верстальщика и администратора. В такой ситуации времени на изучение средств для написания системных скриптов (WMI, WSH) постоянно не хватает. В то время как получать сводки с информацией о функционировании системы необходимо. И вот, теперь мы имеем PowerShell. Посмотрим, как построить простейшую систему мониторинга с его помощью: свободное место на дисках, избранные события eventlog, ошибки в логах IIS. Так как полученный отчет нужно будет отправить по электронной почте, результат мы будем сохранять в текстовую переменную $m.
Со свободным местом на дисках все предельно просто. Получаем объект, представляющий диск и вызываем свойство этого объекта AvailableFreeSpace. Так как свойство возвращает размер в байтах, результат не мешало бы отформатировать: перевести в гигабайты и уменьшить количество разрядов после запятой.
$c = [System.IO.DriveInfo]::getdrives() | where-object {$_.Name -match "C:"}
$m += "Disk C:\ free space: " + ("{0:N3}" -f ($c.AvailableFreeSpace/1073741824)) + "GB`n
Работа с Event Log возможна несколькими способами: как при помощи методов PowerShell, так и при помощи LogParser. Так как использование PowerShell несколько упрощает задачу, я выбрал его.
Ещё...