PSC:\>$bad=get-eventlog"System" |where-object { $_.EntryType-eq"Error"} Мы используем команду get-eventlog, которой указываем параметр "System" для извлечения только системных записей, — мы могли бы более четко задать это, применив параметр logName.
Содержимое переменной $bad передается на вход команде where- object для фильтрации только интересующих нас записей. В качестве аргументов команды where-object мы указываем на то, что ищем только записи, у которых свойство EntryType равно "Error".
с. Выведем на экран пять последних записей об ошибках, используя для этого команду select-object с параметром -last:
PSC:\>$bad|select-object -last5
6. Доступ к процессам
Еще одна задача, с которой могут столкнуться ИТ-специалисты, связана с обнаружением аномалий в работе системы,
например, процессов, которые потребляют большие объемы памяти.
Давайте посмотрим, как эта задача решается средствами WindowsPowerShell. Сохраняем информацию о всех процессах, запущенных на данном компьютере, в переменной $allprocs:
PSC:\>$allprocs = get-process После этого мы перенаправляем полученную информацию команде for-each, которая тоже может быть указана алиасом % или foreach:
PSC:\>$allprocs|foreach-object{if($_.Virtualmemorysize-gt20MB) {$_.name}} Данная команда перебирает все объекты, связанные с процессом, и на каждом шаге сохраняет информацию во внутреннем объекте $_. Этот объект можно условно назвать текущим объектом. В качестве параметров для команды for-each мы указываем операцию сравнения значения свойства virtualmemorysize с интересующим нас размером памяти (20 Мбайт в нашем примере). Если значение этого свойства для текущего объекта больше заданного, мы выводим название процесса на экран.
Отметим, что в PowerShell поддерживаются основные сокращения для указания размеров — KB, MB, GB, что очень полезно, поскольку не нужно считать нули при указании объемов памяти, дисков и т.п.
7. Доступ к WMI
Как мы знаем, Windows Management Instrumentation (WMI)— это реализация компанией Microsoft стандарта Common Information Model(CMI). В большинстве случаев WMI применяется ИТ-специалистами для получения информации об аппаратном и программном обеспечении, установленном на данном компьютере. Как мы увидим в следующем
примере, использование WindowsPowerShell существенно облегчает доступ к информации, хранимой в WMI.
Применим команду get-wmiobject для получения информации о файле, используемом для свопинга памяти на диск и сохранения этой информации в переменной $pfu: