Перенос очередей печати и фильтрация журнала событий


На днях занимался переносом очередей печати на новый сервер печати. Удобная все же штука Group Policy Preferences – создавать и удалять подключения к очередям печати можно легко и просто для десятков пользователей.

Кроме настроек политик, надо еще убедиться, что пользователи успешно переключились на новый сервер. Лазить по всем компьютерам бессмысленно. Для контроля у нас есть журналы событий на сервере. И тут есть нюансы.

Старый сервер печати был поднят на Windows Server 2003. События печати в этой версии пишутся в System Log. Более того в оснастке Event Viewer отображается поле User и в нем логин пользователя отправившего задание на печать – визуальный контроль прост: смотрим System Log, находим учетные записи, которые не переключились на новый сервер и разбираемся, в чем проблема.

Новый сервер печати был поднят на Windows Server 2008 R2, и в нем все несколько иначе. События печати пишутся в отдельный журнал Applications and Service Logs -> Microsoft -> Windows -> Microsoft-Windows-PrintService/Operational. Более того, теперь нет столбца отображающего пользователя отправившего задание на печать! Тем не менее не все так печально. Например, мне нужно было убедиться, что конкретный пользователь выводит задания на печать через новый сервер. Сделать это можно с помощью фильтров. Описание фильтров:

1. http://technet.microsoft.com/en-us/library/cc722058.aspx

2. http://blogs.technet.com/b/askds/archive/2011/09/26/advanced-xml-filtering-in-the-windows-event-viewer.aspx

Чтобы использовать расширенный фильтр нужно включить на закладке XML режим редактирования запроса:

clip_image001

Вот пример запроса отображающего задания печати конкретного пользователя:

<QueryList>

<Query Id=»0″ Path=»Microsoft-Windows-PrintService/Operational»>

<Select Path=»Microsoft-Windows-PrintService/Operational»>*[System[(EventID=307)]] and *[UserData[DocumentPrinted[Param3=‘sidorov’]]]</Select>

</Query>

</QueryList>

Можно, наоборот, исключить этого пользователя из отображения:

<QueryList>

<Query Id=»0″ Path=»Microsoft-Windows-PrintService/Operational»>

<Select Path=»Microsoft-Windows-PrintService/Operational»>*[System[(EventID=307)]] and *[UserData[DocumentPrinted[Param3!=‘sidorov’]]]</Select>

</Query>

</QueryList>

Если вы откроете в оснастке Event Log любое событие печати с номером 307 и отобразите его в формате XML, то вы увидите, что все сведения о задании печати записаны в ParamN:

Param1 – порядковый номер задания

Param2 – имя задания (имя файла)

Param3 – учетная запись

Param4 – имя компьютера

Param5 – имя очереди печати

Param6 – имя принт-сервера

Param7 – размер задания печати в байтах

Param8 – число страниц

Любое из этих полей или их комбинацию вы можете использовать для фильтрации.

Для создания фильтров используется подмножество языка XPath с довольно ощутимыми ограничениями (например, не работают маски для строк). Если вы столкнулись с такими ограничениями, то вы всегда можете использовать Powershell и командлет Get-WinEvent с полновесными XPath фильтрами.

Реклама

Добавить комментарий

Заполните поля или щелкните по значку, чтобы оставить свой комментарий:

Логотип WordPress.com

Для комментария используется ваша учётная запись WordPress.com. Выход / Изменить )

Фотография Twitter

Для комментария используется ваша учётная запись Twitter. Выход / Изменить )

Фотография Facebook

Для комментария используется ваша учётная запись Facebook. Выход / Изменить )

Google+ photo

Для комментария используется ваша учётная запись Google+. Выход / Изменить )

Connecting to %s

%d такие блоггеры, как: