Анализ журналов аудита подсистемы печати Windows в 1С:Предприятие

13.06.18

Администрирование - Мониторинг

Пример использования библиотеки "Работа с PowerShell из 1С" для получения событий аудита подсистемы печати Windows с последующим анализом количества распечатанных документов в различных разрезах.

Скачать файл

ВНИМАНИЕ: Файлы из Базы знаний - это исходный код разработки. Это примеры решения задач, шаблоны, заготовки, "строительные материалы" для учетной системы. Файлы ориентированы на специалистов 1С, которые могут разобраться в коде и оптимизировать программу для запуска в базе данных. Гарантии работоспособности нет. Возврата нет. Технической поддержки нет.

Наименование По подписке [?] Купить один файл
Демонстрационная конфигурация
.cf 44,09Kb
6
6 Скачать (1 SM) Купить за 1 850 руб.

Введение 

В реальной жизни, периодически возникают задачи оценки загруженности принтеров в различных разрезах. В ОС Windows имеются инструменты, позволяющие регистрировать события, связанные с печатью документов, однако их последующая обработка и анализ требуют определенных усилий. С другой стороны, платформа 1С:Предприятие обладает развитыми инструментами для хранения данных и построения отчетов, однако не обладает развитыми средствами для сбора информации, в частности из журналов событий Windows. Таким образом настоящая статья является одним из примеров того, как можно при помощи компонента для работы с PowerShell из 1С совместить плюсы обеих систем для решения практической задачи. 

Описание 

Пример реализован в виде демонстрационной конфигурации. Функционал примера, может быть протестирован при использовании совместно с продуктивной версией библиотеки для работы с PowerShell либо при использовании тестовой базы online.

ВАЖНО!

Конфигурация в аттачменте НЕ ВКЛЮЧАЕТ компонент для работы с PowerShell. Для получения полной функциональности его нужно приобрести отдельно.

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

 

Настраиваем аудит событий печати 

Для того, чтобы события печати начали регистрироваться в журнале событий Windows, необходимо настроить аудит событий печати на сервере печати (в нашем случае в качестве сервера печати используется локальный компьютер). 

  

Включаем журнал аудита событий печати 

В оснастке Event Viewer выбираем Applications and Services Logs->Microsoft->Windows->Print Service->Operational. 

В панели Action (находится справа) нажимаем Enable Log (см. рис. 1.). 

В производственной среде данную настройку можно сделать при помощи групповых политик. 

 

Настраиваем принтеры для генерации событий аудита 

В панели управления выбираем Devices and Printers. 

Выбираем нужный нам принтер (для тестов используем Microsoft XPS Writer, который установлен по умолчанию) и переходим к его свойствам (прваой кнопкой мыши на принтере->Printer Properties) (см. рис. 2.). 

Выбираем вкладку Security и переходим к дополнительным свойствам (кнопка Advanced) (см. рис 3.). 

В открывшемся окне переходим на вкладку Auditing и добавляем запись параметров аудита. 

В окне добавления записи аудита выбираем пользователя или группу, для которой будет осуществляться аудитнашем случае Everyone), выбираем тип событий - Success (успех) и тип разрешений Print (Печать) (см. рис. 4.). 

Далее сохраняем сделанные настройки.  

 

Проверка генерации событий аудита 

Открываем notepad. 

Распечатываем документ на принтере, который мы настроили ранее. 

Если все настроено корректно, в журнале Applications and Services Logs->Microsoft->Windows->Print Service->Operational появятся соответствующие события, среди которых будет событие с кодом 307. 

 

Импорт данных в 1С:Предприятие 

Как можно увидеть (см. рис. 5.), в событии с кодом 307 есть информация о пользователе, который распечатал документ, компьютере, с которого пользователь осуществлял печать, имени принтера, на который осуществлялась печать, а также количестве распечатанных страниц. В принципе этой информации нам достаточно и теперь, необходимо передать ее в 1С:Предприятие для последующей обработки и анализа.  

Возможно несколько вариантов организации импорта, однако в нашем случае мы воспользуемся компонентом для работы с PowerShell из 1С:Предприятие. 

  

Скрипт PowerShell 

Недолгий поиск дает нам заготовку скрипта PowerShell, которую мы можем использовать для извлечения необходимых нам событий из журнала Windows (https://gist.github.com/9to5IT/9619820). 

Немного модифицировав скрипт под нашу задачу, получим что-то типа: 

 

param 

( 

$computer, 

$EventStartTime,  

$EventEndTime 

) 

 

if ($EventStartTime -eq $null) 

{ 

         $EventStartTime = (([System.DateTime]::Now.addDays(-1)).Date) 

} 

else 

{ 

        $EventStartTime = [System.DateTime]::ParseExact($EventStartTime,'yyyyMMddHHmmss',$null)  

} 

 

if ($eventEndTime -eq $null) 

{ 

        $eventEndTime = [System.DateTime]::Now 

} 

else 

{ 

        $EventEndTime = [System.DateTime]::ParseExact($EventEndTime,'yyyyMMddHHmmss',$null)  

} 

 

$aPrinterList = @() 

 

$Results = Get-WinEvent -Computer $computer -FilterHashTable @{LogName="Microsoft-Windows-PrintService/Operational"; ID=307; StartTime=$EventStartTime; EndTime=$EventEndTime; } 

 

ForEach($Result in $Results) 

{  

        $ProperyData = [xml]$Result.ToXml()  

 

        $hItemDetails = New-Object -TypeNamepsobject -Property @{  

        DocName = $ProperyData.Event.UserData.DocumentPrinted.Param2  

        UserName = $ProperyData.Event.UserData.DocumentPrinted.Param3  

        MachineName = $ProperyData.Event.UserData.DocumentPrinted.Param4  

        PrinterName = $ProperyData.Event.UserData.DocumentPrinted.Param5  

        PageCount = $ProperyData.Event.UserData.DocumentPrinted.Param8  

        TimeCreated = $Result.TimeCreated.ToString("yyyyMMddHHmmss") } 

        $aPrinterList += $hItemDetails 

}  

 

return $aPrinterList 

 

Разрешаем удаленное подключение к серверу печати посредством PowerShell 

 

Поскольку скрипт использует удаленное подключение к серверу печати, необходимо разрешить удаленное администрирование сервера печати через PowerShell. 

 

Это можно сделать запустив команду winrm quickconfig из консоли с правами администратора или выполнив командлет Enable-PSRemoting из консоли PowerShell, запущеной с правами администратора.В производственной среде данную настройку можно сделать при помощи групповых политик. 

 

 

1C:Предприятие 

Создаем общий макет и помещаем туда созданный ранее скрипт.  

Создаем объекты конфигурации, которые необходимы для хранения полученных данных (см. рис. 6.).  

Создаем процедуру импорта данных. Фрагмен ткода, иллюстрирующий работу с компонентом представлен ниже: 

 

// Инициализируем компонент PowerShell 

Компонент = PS.ЗагрузитьКомпонент(); 

Конвейер = PS.СоздатьКонвейерКоманд(Компонент); 

Конвейер.ReceiveTimeout = ПолучитьТаймаутЗапроса(); 

 

// Получаем текст скрипта PowerShell 

Текст =PSСлужебный.ПолучитьТекстИзОбщегоМакета("PSРаботаСПринтерами"); 

 

// Формируемпараметры 

МассивПараметров = НовыйМассив; 

МассивПараметров.Добавить(ПолучитьНаименованиеСервераПечати(СерверПечати)); 

МассивПараметров.Добавить(Формат(ДатаНачала, "ДФ=yyyyMMddHHmmss")); 

МассивПараметров.Добавить(Формат(ДатаОкончания, "ДФ=yyyyMMddHHmmss")); 

 

// Выполняемскрипт 

Результаты = PS.ВыполнитьPowerShell(Текст, МассивПараметров, Компонент, Конвейер); 

 

ЕслиPS.БылиОшибки(Компонент, Конвейер) Тогда 

Ошибки = PS.ПолучитьОшибки(Компонент, Конвейер); 

Попытка 

Рез = 1/0; 

Исключение 

ЕслиТипЗнч(Ошибки.Objects.Object.Property) = Тип("Массив") Тогда 

ВызватьИсключениеОшибки.Objects.Object.Property[0].Exception; 

Иначе 

ВызватьИсключениеОшибки.Objects.Object.Property.Exception; 

КонецЕсли; 

КонецПопытки; 

КонецЕсли; 

 

// Обновляем/добавляемданные 

ПринтерыСервер.ОбновитьИнформациюОРаспечатанныхДокументах(СерверПечати, ДатаНачала, Результаты); 

 

// Освобождаемресурсы 

PS.ВыгрузитьКомпонент(Компонент); 

 

Тестируем работу online 

Создаем демонстрационную базу online. 

Задаем таймаут выполнения запроса, равным скажем 300000 (см. рис. 7.). Это максимальное время ожидание ответа от сервера PowerShell в миллисекундах (время работы скрипта). 

Создаем элемент справочника Серверы печати (см. рис. 8.). 

Распечатываем несколько документов на тестовый принтер. 

Запускаем обработку импорта данных. 

Смотрим результаты в отчете (см. рис. 9.). 

PowerShell;печать документов

См. также

Журнал регистрации Мониторинг Системный администратор Программист Бизнес-аналитик Руководитель проекта Платформа 1С v8.3 Платные (руб)

В сферу обязанностей при работе с клиентами входит контроль работы баз данных и серверов 1С. Нужно понимать что происходит в базах, есть ли ошибки, зависания у пользователей и фоновых задач, блокировки или какое-то необычное поведение системы, получение информации о причинах возникновения проблем и их оперативное устранение и т.д. В качестве источников информации использую консоль кластеров 1С, технологический журнал 1С, журналы регистрации базы 1С. Для автоматизации части операций мониторинга и анализа создал инструмент на основе 1С.

9000 руб.

28.08.2019    35175    29    21    

77

Работа с интерфейсом Анализ учета Мониторинг Платформа 1С v8.3 8.3.14 1C:Бухгалтерия 1С:ERP Управление предприятием 2 1С:Бухгалтерия 3.0 1С:Управление торговлей 11 Платные (руб)

Создайте свой функциональный интерфейс в любой конфигурации 1С с помощью подсистемы "Инфоборды". Настраивайте панели виджетов с метриками, индикаторами и показателями на начальном экране. Подсистема реализована в форме расширения 1С.

9600 руб.

27.03.2025    373    0    3    

5

Мониторинг Системный администратор Программист Платформа 1С v8.3 Абонемент ($m)

Конфигурация для мониторинга и контроля над состоянием свободного дискового пространства на серверах.

3 стартмани

10.03.2025    549    3    slavik27    11    

3

Мониторинг Перенос данных 1C Системный администратор Программист Платформа 1С v8.1 1С:Розница 2 Россия Абонемент ($m)

Когда у вас много магазинов и хочется быстро понять, что происходит в РИБ с обменами, то все минимально необходимые данные можно увидеть на одной форме.

1 стартмани

06.03.2025    286    0    Nigl    0    

0

Перенос данных 1C Мониторинг Системный администратор Программист Платформа 1С v8.3 1C:Бухгалтерия Россия Абонемент ($m)

Собирает в одном месте информацию о состоянии обменов данными между разными решениями на 1С.

3 стартмани

24.02.2025    2577    7    natz78    14    

4

Мониторинг Системный администратор Программист Платформа 1С v8.3 1C:Бухгалтерия Абонемент ($m)

Данная статья посвящена разработке интеграции 1С и Sentry, что позволяет сделать удобнее анализ ошибок. Также имеется возможность выгрузки замеров времени из 1С для расчета Apdex с целью анализа удовлетворенности пользователей скоростью работы информационной системы. В статье разобраны основные важные моменты при разработке представленной интеграции.

1 стартмани

24.01.2025    1016    MC4RT    0    

4

Поиск данных Мониторинг Программист Платформа 1C v8.2 1С:Бухгалтерия 2.0 1С:Управление торговлей 10 1С:Розница 2 Россия Абонемент ($m)

Внешняя обработка ищет файлы и каталоги в выбранном каталоге, определяет их размер, сортирует по убывающей и заполняет таблицу.

1 стартмани

16.12.2024    456    0    ludmila777    8    

4

Логистика, склад и ТМЦ Мониторинг Маркетплейсы Пользователь Платформа 1С v8.3 1С:ERP Управление предприятием 2 1С:Управление торговлей 11 1С:Комплексная автоматизация 2.х Розничная и сетевая торговля (FMCG) Оптовая торговля, дистрибуция, логистика Платные (руб)

Расширение для 1С, которое автоматически «отлавливает» тарифы складов с наиболее выгодными коэффициентами для ваших товаров на маркетплейсе Wildberries. С помощью этого инструмента вы сможете легко находить и выбирать склады с лучшими условиями для максимизации своей прибыли. Удобная интеграция позволяет настроить регулярный поиск складов по выгодным коэффициентам в виде регламентного задания в 1С, что существенно экономит время и автоматизирует процесс принятия решений по размещению товаров. Всегда будьте на шаг впереди конкурентов и повышайте эффективность своего бизнеса с помощью «Ловца коэффициентов складов Wildberries»!

3600 руб.

14.11.2024    745    1    0    

4
Комментарии
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
1. zorven 05.05.16 09:58 Сейчас в теме
Отличный софт для анализа журналов событий Windows,Event Log Explorer™ это эффективное средство для просмотра и анализа событий, хранящихся в журналах операционных систем семейства Microsoft Windows. Программа позволяет существенно ускорить и упростить решение задач анализа журналов событий, таких как журнал безопасности, журнал приложений, журнал системы, журнал установки и других.Скачать можно через http://eventlogxp.com/rus/.
2. zekrus 151 13.06.18 08:50 Сейчас в теме
Доброе утро!
Тема весьма актуальная, но почему нет полной версии (демо не работает)?
// Этот модуль не содержит какого либо функционала т. к. поставляется с ДЕМО версией

Функция ЗагрузитьКомпонент(Порт = 0, КоличествоПотоков = 3, Таймаут = 15) Экспорт
	
	
КонецФункции

С уважением
3. blackhole321 1314 13.06.18 09:16 Сейчас в теме
(2)Доброе, для того, чтобы версия стала полностью работоспособной, необходим компонент https://infostart.ru/public/274486/.
Вроде-как в описании об этом прямо говорится. Если что - могу пульнуть стартмани обратно.
4. zekrus 151 13.06.18 12:50 Сейчас в теме
(3) Лучше было бы добавить в имени файла комментарий - без компонента "PS". Конфа в мусорке если честно.
5. blackhole321 1314 13.06.18 13:09 Сейчас в теме
(4)Так годится?
Со стартмани сейчас порешаем.
Оставьте свое сообщение