У меня есть Windows Server 2008 R2, настроенный на получение пересылаемых событий от большого количества клиентов (Windows 7\8.1). Он получает события в диапазоне идентификаторов событий 8000-8006 из источника WLAN-Autoconfig (на сервере нет источника, но его можно добавить в подписку, чтобы иметь возможность получать из этого источника).
Сервер установлен с американским английским и имеет норвежскую локаль\культуру. Клиенты установлены с NB-no norwegian и имеют норвежскую локаль\культуру.
Одной из первых проблем, с которой я столкнулся, было то, что сервер не мог правильно прочитать событие. Он выдал такую ошибку:
Описание для Event ID 8000 из источника Microsoft-Windows-WLAN-AutoConfig не найдено. Либо компонент, вызывающий это событие, не установлен на локальном компьютере, либо установка повреждена. Вы можете установить или восстановить компонент на локальном компьютере.
Если событие возникло на другом компьютере, отображаемую информацию необходимо было сохранить вместе с событием.
Это не было серьезной проблемой, поскольку объект события и его содержимое все равно поступали и могли быть использованы в целях, для которых они были собраны.
Но позже, при попытке написать Powershell-скрипт для получения и фильтрации этих событий, я столкнулся с несколькими проблемами.
Сначала я попробовал этот метод:
Get-WinEvent -ComputerName $ServerName -FilterHashtable @{logname = 'ForwardedEvents'; id = 8000, 8001, 8002, 8003; StartTime = $StartDate; EndTime = $EndDate } -MaxEvents 3
Но этот запрос не вернул никаких значений. Удаление "StartTime" и "EndTime" из фильтра заставило его работать по какой-то причине. Убежденный, что опция "-FilterHashTable" не работает, я попробовал использовать опцию "-FilterXML", но для этого мне пришлось создать фильтр в журнале событий, чтобы найти синтаксис.
Я вошел на сервер, открыл средство просмотра событий и создал пользовательское представление из журнала ForwardedEvents со следующими параметрами:
Журнал = ПересланныеСобытия
Идентификаторы = 8000-8003
StartTime = SomeDate
EndTime = SomeDateLater
И к моему удивлению, он не вернул НИКАКИХ СОБЫТИЙ, хотя я вижу в журнале событий множество событий, которые должны соответствовать этому фильтру.
Пробуя разные фильтры, я получил следующие результаты:
Тест 1
Журнал: Пересланные события
Идентификаторы: 8000-8003
Дата начала: Не заполнено
Дата окончания: Заполнено
Результат: Получает все результаты (даже после EndDate)
Тест 2
Журнал: Пересланные события
Идентификаторы: 8000-8003
Дата начала: Заполнено
Дата окончания: Не заполнено
Результат: Не получает результатов
Тест 3
Журнал: Пересланные события
Идентификаторы: Все идентификаторы событий
Дата начала: Заполнено
Дата окончания: Не заполнено
Результат: получает события с идентификатором 111 (я думаю, что это уведомление о начале подписки для новых клиентов)
Тест 4
Журнал: Пересланные события
Идентификаторы: Все идентификаторы событий
Дата начала: Заполнено
Дата окончания: Заполнено
Результат: получает события с идентификатором 111 (я думаю, что это уведомление о начале подписки для новых клиентов)
Тогда мой вопрос:
Почему это происходит и как это исправить?