Комментарии 18
А какую ценность несут эти события?
По названию документа невозможно понять, что в нем находится. Сопоставить данные из SAP или другого приклада тоже невозможно.
По названию документа невозможно понять, что в нем находится. Сопоставить данные из SAP или другого приклада тоже невозможно.
0
По этим событиям можно узнать, в первую очередь, кто сколько страниц на каком принтере напечатал. Эту информацию можно использовать при планировании закупок расходных материалов (там емкость в страницах), обслуживании оргтехники, распределении нагрузки на устройства при печати. Содержимое самих документов таким образом, разумеется, получить не получится.
+1
А SNMP для этого не подойдёт?
0
SNMP отлично работает с сетевыми устройствами. Но с локальными подключениями по LPT\USB я не стал заморачиваться, если честно. Есть решения типа forums.cacti.net/about28459.html&highlight=, где пробуют приклеить к этому HP SNMP Proxy, можно также получать еще и по WMI информацию. Я выбрал простой для себя с точки зрения настройки способ.
0
НЛО прилетело и опубликовало эту надпись здесь
привязка к языку — зря очень :(
наверняка те же данные есть в виде .xml, а сеть с разноязыкими журналами — очень реальное явление
наверняка те же данные есть в виде .xml, а сеть с разноязыкими журналами — очень реальное явление
0
Да, согласен. По причине привязки к языку не работают «из коробки» и многие решения с англоязычных ресурсов. Предложенный вариант — то, чего мне удалось достичь «на скорую руку». Чуть позже добавлю в статью ссылку на решение с учетом 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
Для интересующихся — сразу 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
0
Активно занимаюсь данным вопросом, есть наработки:
1) Как верно заметил selenite, эти же данные есть и в формате xml и отпадает необходимость регулярок и учета языка системы.
2) Включить журнал событий печати можно с помощью групповых политик ключами реестра
3) Список ПК удобнее систематически по планировщику выгружать тем же Powershell из AD и пересоздавать подписки, составляя новую XML-конфигурацию для wecutil и перерегистрируя подписку.
4) Для обработки данных однозначно записывать данные в БД для дальнейшего анализа и представления статистики.
5) Подтягивая данные пользователя из AD, можно в итоге получить еще и детализации на уровне подразделений
1) Как верно заметил selenite, эти же данные есть и в формате xml и отпадает необходимость регулярок и учета языка системы.
2) Включить журнал событий печати можно с помощью групповых политик ключами реестра
3) Список ПК удобнее систематически по планировщику выгружать тем же Powershell из AD и пересоздавать подписки, составляя новую XML-конфигурацию для wecutil и перерегистрируя подписку.
4) Для обработки данных однозначно записывать данные в БД для дальнейшего анализа и представления статистики.
5) Подтягивая данные пользователя из AD, можно в итоге получить еще и детализации на уровне подразделений
0
Согласен, тема интересная.
1) Ответил выше и буду рад поделиться своей версией решения
2) Да, можно установить ключ реестра:
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\WINEVT\Channels\Microsoft-Windows-PrintService/Operational — Enabled равным 1.
Включу в статью.
3), 4), 5) — Мне такую задачу необходимо было решить в очень небольшой организации ( 20 ПК) со статичной структурой AD. Интересно посмотреть ваше решение для внедрения в более крупной организации.
1) Ответил выше и буду рад поделиться своей версией решения
2) Да, можно установить ключ реестра:
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\WINEVT\Channels\Microsoft-Windows-PrintService/Operational — Enabled равным 1.
Включу в статью.
3), 4), 5) — Мне такую задачу необходимо было решить в очень небольшой организации ( 20 ПК) со статичной структурой AD. Интересно посмотреть ваше решение для внедрения в более крупной организации.
0
НЛО прилетело и опубликовало эту надпись здесь
Вполне возможно, что вам даже лучше подойдет решение с учетом наработок NeSvist. В большой сетке важен вопрос поддержания актуальности, а вручную это делать сложновато.
0
Недавно нечто подобное делал у себя.
Одно замечание — по умолчанию в Win2012 имя документа в журнал событий печати не пишется. Долго курил эту тему, потом нашел. Так что если надо — то в групповых политиках включаем: Конфигурация компьютера — Политики — Административные шаблоны — Печать — Разрешать имя задания в журнале событий.
Только ОС надо дообновлять до последних заплаток, а то не будет работать.
Одно замечание — по умолчанию в Win2012 имя документа в журнал событий печати не пишется. Долго курил эту тему, потом нашел. Так что если надо — то в групповых политиках включаем: Конфигурация компьютера — Политики — Административные шаблоны — Печать — Разрешать имя задания в журнале событий.
Только ОС надо дообновлять до последних заплаток, а то не будет работать.
0
Regexp конечно хорошо, но виндовый Eventlog очень хорошо структурирован и его можно разобрать по подстрокам, не трогая поле Message совсем.
Если открыть любой лог и посмотреть его в XML-форме, то вы увидите стандартный XML-шаблон.
Его можно обработать как XML, либо взять подстроки (начиная с 0).
К примеру: Событие 4624
Поле Message очень больше, вот его часть:
Парсить его 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.
Если открыть любой лог и посмотреть его в 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
Далее идет описание почему это происходит и что с этим делать.
Субъект:
ИД безопасности: 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.
0
Делаю по вашей инструкции, остановился на этом этапе:
После нажатия на кнопку проверить, вываливает следующую ошибку:
Правило в брандмауэре создал. Компьютер добавляю по его NetBios-имени. Что не так?
Далее щелкаем на кнопке «Выбрать компьютеры…». В открывшемся окне кнопкой «Добавить» добавляем необходимые компьютеры-источники. Кнопкой «Проверить» можно проверить доступность целевых машин по протоколу удаленного управления, результат покажут в информационном окне.
После нажатия на кнопку проверить, вываливает следующую ошибку:
Клиенту winrm не удается закончить операцию за указанное время. Проверьте правильность имени компьютера, его наличие в сети, а также настройку исключения для службы удалённого управления Windows в брандмауэре
Правило в брандмауэре создал. Компьютер добавляю по его NetBios-имени. Что не так?
0
Зарегистрируйтесь на Хабре, чтобы оставить комментарий
Централизованный сбор и обработка журналов печати Windows