Pull to refresh

Comments 18

А какую ценность несут эти события?
По названию документа невозможно понять, что в нем находится. Сопоставить данные из SAP или другого приклада тоже невозможно.
По этим событиям можно узнать, в первую очередь, кто сколько страниц на каком принтере напечатал. Эту информацию можно использовать при планировании закупок расходных материалов (там емкость в страницах), обслуживании оргтехники, распределении нагрузки на устройства при печати. Содержимое самих документов таким образом, разумеется, получить не получится.
SNMP отлично работает с сетевыми устройствами. Но с локальными подключениями по LPT\USB я не стал заморачиваться, если честно. Есть решения типа forums.cacti.net/about28459.html&highlight=, где пробуют приклеить к этому HP SNMP Proxy, можно также получать еще и по WMI информацию. Я выбрал простой для себя с точки зрения настройки способ.
Тогда понятно. Я пересев на Киосеру успел позабыть про этот ужас.
UFO just landed and posted this here
Спасибо большое за комментарий! Я использовал полученную информацию для перераспределения нагрузки на устройства и сокращения расходов на обслуживание.
привязка к языку — зря очень :(
наверняка те же данные есть в виде .xml, а сеть с разноязыкими журналами — очень реальное явление
Да, согласен. По причине привязки к языку не работают «из коробки» и многие решения с англоязычных ресурсов. Предложенный вариант — то, чего мне удалось достичь «на скорую руку». Чуть позже добавлю в статью ссылку на решение с учетом XML.
Для интересующихся — сразу 2 ссылки:
blogs.technet.com/b/ashleymcglone/archive/2013/08/28/powershell-get-winevent-xml-madness-getting-details-from-event-logs.aspx
habrahabr.ru/post/147750
Активно занимаюсь данным вопросом, есть наработки:
1) Как верно заметил selenite, эти же данные есть и в формате xml и отпадает необходимость регулярок и учета языка системы.
2) Включить журнал событий печати можно с помощью групповых политик ключами реестра
3) Список ПК удобнее систематически по планировщику выгружать тем же Powershell из AD и пересоздавать подписки, составляя новую XML-конфигурацию для wecutil и перерегистрируя подписку.
4) Для обработки данных однозначно записывать данные в БД для дальнейшего анализа и представления статистики.
5) Подтягивая данные пользователя из AD, можно в итоге получить еще и детализации на уровне подразделений
Согласен, тема интересная.
1) Ответил выше и буду рад поделиться своей версией решения
2) Да, можно установить ключ реестра:
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\WINEVT\Channels\Microsoft-Windows-PrintService/OperationalEnabled равным 1.
Включу в статью.
3), 4), 5) — Мне такую задачу необходимо было решить в очень небольшой организации ( 20 ПК) со статичной структурой AD. Интересно посмотреть ваше решение для внедрения в более крупной организации.
UFO just landed and posted this here
Вполне возможно, что вам даже лучше подойдет решение с учетом наработок NeSvist. В большой сетке важен вопрос поддержания актуальности, а вручную это делать сложновато.
Недавно нечто подобное делал у себя.

Одно замечание — по умолчанию в Win2012 имя документа в журнал событий печати не пишется. Долго курил эту тему, потом нашел. Так что если надо — то в групповых политиках включаем: Конфигурация компьютера — Политики — Административные шаблоны — Печать — Разрешать имя задания в журнале событий.
Только ОС надо дообновлять до последних заплаток, а то не будет работать.
Спасибо за дополнение, попробую на новой версии ОС.
Regexp конечно хорошо, но виндовый Eventlog очень хорошо структурирован и его можно разобрать по подстрокам, не трогая поле Message совсем.
Если открыть любой лог и посмотреть его в XML-форме, то вы увидите стандартный XML-шаблон.
Его можно обработать как XML, либо взять подстроки (начиная с 0).
К примеру: Событие 4624
Поле Message очень больше, вот его часть:
Событие 4624
Вход с учетной записью выполнен успешно.

Субъект:
ИД безопасности: NULL SID
Имя учетной записи: — Домен учетной записи: — Код входа: 0x0

Тип входа: 3

Новый вход:
ИД безопасности: АНОНИМНЫЙ ВХОД
Имя учетной записи: АНОНИМНЫЙ ВХОД
Домен учетной записи: NT AUTHORITY
Код входа: 0x2b78a448
GUID входа: {00000000-0000-0000-0000-000000000000}

Сведения о процессе:
Идентификатор процесса: 0x0
Имя процесса: — Сведения о сети:
Имя рабочей станции: 069-DAR
Сетевой адрес источника: 10.0.5.27
Порт источника: 1056

Сведения о проверке подлинности:
Процесс входа: NtLmSsp
Пакет проверки подлинности: NTLM
Промежуточные службы: — Имя пакета (только NTLM): NTLM V1
Длина ключа: 128
Далее идет описание почему это происходит и что с этим делать.


Парсить его RegExp не очень удобно.

Однако можно открыть его как XML или отобразить в «Понятном представлении»:
И взять из поля EventData только нужные нам подстроки (начиная с 0):

$a = Get-Eventlog Security -InstanceId 4624|
Select TimeGenerated,ReplacementStrings |
% {
New-Object PSObject -Property @{
UserName = $_.ReplacementStrings[5]
IPAddress = $_.ReplacementStrings[18]
WSName = $_.ReplacementStrings[11]
Date = $_.TimeGenerated
}
}

И получить в итоге только необходимую информацию без написания шаблонов под RegExp.
Спасибо большое за интересный комментарий. В конце статьи я прикрепил Update с вариантом разбора события как XML-объекта. Попробую еще сравнить время работы различных вариантов разбора (regexp, xml и ваш) и добавлю в статью.
Делаю по вашей инструкции, остановился на этом этапе:
Далее щелкаем на кнопке «Выбрать компьютеры…». В открывшемся окне кнопкой «Добавить» добавляем необходимые компьютеры-источники. Кнопкой «Проверить» можно проверить доступность целевых машин по протоколу удаленного управления, результат покажут в информационном окне.

После нажатия на кнопку проверить, вываливает следующую ошибку:
Клиенту winrm не удается закончить операцию за указанное время. Проверьте правильность имени компьютера, его наличие в сети, а также настройку исключения для службы удалённого управления Windows в брандмауэре

Правило в брандмауэре создал. Компьютер добавляю по его NetBios-имени. Что не так?
Sign up to leave a comment.

Articles