Фильтр даты запроса WMI - PullRequest
       6

Фильтр даты запроса WMI

0 голосов
/ 16 марта 2012

Я пытаюсь прочитать данные из класса WMI Win32_NTLogEvent, но я хочу только читать случаи, когда TimeWritten попадает в диапазон дат.

Я использую модуль WMI для Python, который позволяетчистый запрос WMI (1) или параметризованный подход (2):

  1. c.query("Select SourceName, Message from Win32_NTLogEvent where EventType =1, Logfile = \"Application\"")

  2. c.Win32_NTLogEvent(EventType =1, Logfile = "Application")

Проблема в том, что я не могу согласиться с аргументами даты.Я пробовал несколько форматов дат, включая довольно неясный стиль WMI , и мой единственный успех - использование второго подхода, описанного выше, с оператором =, который на самом деле не помогает:

c.Win32_NTLogEvent(EventType =1, Logfile = "Application", TimeWritten = "20110421013749.000000-000")

Я знаю, что могу отфильтровать набор результатов в своем коде Python, но я вполне уверен, что это можно сделать в запросе.Я думаю, я просто что-то упустил.У кого-нибудь есть предложения?

Спасибо.

1 Ответ

1 голос
/ 16 марта 2012

ваше WQL-предложение неверно

Замените этот код

c.query("Select SourceName, Message from Win32_NTLogEvent where EventType =1, Logfile = \"Application\"")

на этот

c.query("Select SourceName, Message from Win32_NTLogEvent where EventType =1 AND Logfile = \"Application\" AND TimeWritten<=\"20110421013749.000000-000\" ")

Примечание: я не знаю много о питоне (но Я знаю несколько вещей о WMI ), так что, возможно, вы должны избегать специальных символов другим способом.

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