'GET-EVENTLOG' создает полный список объектов, затем фильтруется? - есть ли более быстрый способ?
Следующий скрипт Powershell извлекает все события системных ошибок, происходящие только сегодня - это работает:
Get-EventLog System -After ([datetime]::Today) | Where-Object { $_.EntryType -eq "Error" }
Но это может занять несколько секунд: я подозреваю, что это потому, что первый командлет 'Get-EventLog' сначала генерирует полный список всех событий; затем командлет Where-Object удаляет этот список.
Является ли способ передачи фильтра 'where-object' в качестве аргумента для Get-EventLog, чтобы он мог проверять каждый объект при получении?
Я предполагаю, что такой механизм будет работать быстрее, так как Get-EventLog не должен будет поддерживать полный список объектов, которые передаются последующему Where-Object?
Но я просто догадываюсь здесь.
Кроме того: это не такая уж большая проблема - это просто предмет интереса / понимания с моей стороны.
1 ответ
Get-EventLog System -After ([datetime]::Today) -EntryType Error
Да, вы можете указать этот параметр в исходной команде.