Я вытягиваю журналы событий Windows, используя Get-EventLog, и удаляю события журнала, которые я не хочу видеть, используя в качестве критериев источник и четность. Когда я анализирую с помощью где, значения соблюдаются. Например, если я делаю
$Events = Get-EventLog -ComputerName $computer -LogName Application
$events | ft source, eventid
Я вижу следующее:
Source EventID
------ -------
AutoEnrollment 34
Если я это сделаю:
$events |
?{($_.Source -ne "AutoEnrollment" -and $_.EventID -ne 14)} |
ft source, eventid
Результаты пустые, что меня озадачивает, потому что явно не совпадает четность. Я ожидаю, что если бы я оценивал против $_.eventid -ne 34
, то результаты не показали бы это событие. Это сработало, когда я написал код для PowerShell 2 в 2012 году. Теперь в v5.1 он не может быть правильно оценен.
Что-то изменилось, о чем я должен знать, или я изначально облажался? Если я делаю это неправильно, любые предложения о том, как сказать «где событие не соответствует заданным критериям в качестве набора», так что source = autoenrollment и eventid = 34 будут отображаться, а события с source = autoenrollment и eventid = 14 - нет.