Фильтрация Get-WmiObject по дате в Windows Server 2003 с помощью Where-Object - PullRequest
0 голосов
/ 14 января 2019

Я пытаюсь отфильтровать этот запрос по дате (получить значения после $ time). Я не делаю этого в параметре -filter, потому что я получаю ошибку на Windows Server 2003 с пакетом обновления 2 (SP2).

$colLogFiles = Get-WmiObject -Class Win32_NTLogEvent -ComputerName "localhost" | Where-Object {($_.EventType -eq "1") -or (($_.EventType -eq "2") -and ($_.TimeGenerated -gt $time))}

Но последнее условие - ничего не происходит, и я думаю, что это потому, что формат даты и времени не распознается. Примером $ _. TimeGenerated является 20181213144843.186997-000

Существует какой-либо способ сделать это или изменить этот формат даты и времени?

1 Ответ

0 голосов
/ 16 января 2019

Я решил это, сделав это на Python с библиотекой win32com. А потом я добавляю фильтр с этим форматом даты!

time = datetime.today() + timedelta(hours=5, minutes=-10)
timeFormatted = time.strftime("%Y%m%d%H%M%S.000000-000")

Системный формат wmi имеет GTM 0, но мой компьютер - GTM -5, поэтому я добавляю 5 часов.

Запрос:

query = "Select * from Win32_NTLogEvent where (EventType = 1 or EventType = 2) and TimeGenerated >= " + "\"" + timeFormatted + "\""

2003 настолько ограничен!

Спасибо всем

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...