|
0 / 0 / 0
Регистрация: 15.05.2018
Сообщений: 43
|
|
Скрипт для формирования отчётов о НЕ регламентной перезагрузке06.03.2019, 14:50. Показов 4802. Ответов 49
Приветствую.
Камрады, нужна ваша помощь в написании скрипта. Дано: Есть некоторое кол-во ПК, на которых крутятся PowerShell-скрипты. У данных ПК есть регламентные перезагрузки, которые выполняются автоматически. Периодически с ПК бывают сбои – перезагрузки ПК. PowerShell-скрипты фиксируют все перезагрузки, а в отдельный лог-файл записывают только НЕ регламентные перезагрузки (произошедшие по причинам сбоя в работе ПК). Далее лог-файлы с НЕ регламентными перезагрузками отправляется на головной ПК и анализируются. Задача: Упростить анализ поступающих логов, путём сбора информации из логов и её помещения в несколько Excel-отчётов за: -день -неделю -месяц Решение данной задачи я вижу путём создания PowerShell-скрипта, который будет анализировать логи и создавать по собранной информации несколько отчётов в Excel документы. У каждого лог-файла, с каждого из ПК есть уникальное для данного ПК имя, вида - P133-Reboot-ReportLOG-Attention.txt Где P133 – означает номер ПК, что и является уникальным идентификатором среди всех остальных отчётов. Как выглядят лог-файлы с НЕ регламентными перезагрузками (пример):
################# ############################# ######################################## ######### ~~~~~~~~ Новые сутки - 02-03-2019-00:23:47 ~~~~~~~~ ######################################## ######### ############################# ################# ################# ############################# ######################################## ######### ~~~~~~~~ Новые сутки - 03-03-2019-00:23:34 ~~~~~~~~ ######################################## ######### ############################# ################# 03-03-2019-09:52:03 - ПК включен - НЕ регламентная перезагрузка. 03-03-2019-19:22:48 - ПК включен - НЕ регламентная перезагрузка. ################# ############################# ######################################## ######### ~~~~~~~~ Новые сутки - 04-03-2019-00:23:41 ~~~~~~~~ ######################################## ######### ############################# ################# ################# ############################# ######################################## ######### ~~~~~~~~ Новые сутки - 05-03-2019-00:23:35 ~~~~~~~~ ######################################## ######### ############################# ################# Как я вижу работу данного PowerShell-скрипта. Версия скрипта – «Сбор данных и формирование или обновление отчёта за сегодняшний + 7 прошедших дней» Скрипт анализирует то, что находится между строчками «Новые сутки - ДАТА» Если между строчками ничего нет, то двигается далее. Если между строчками есть строка «ДАТА-ВРЕМЯ - ПК включен - НЕ регламентная перезагрузка.» скрипт делает следующее: Кликните здесь для просмотра всего текста
1. Проверяет существует ли по определенному пути Excel-документ с названием, например, «Отчёт о перезагрузке».
2. Если документа нет, то скрипт его создаёт, если же документ есть, то двигается далее. 3. Скрипт проверяет существует ли в Excel-документе лист с названием, в котором указана сегодняшняя дата + проверяет есть ли в Excel-документе листы за последние 7 дней, в которых в качестве названия указаны даты этих листов. 4. Если листов, указанных в предыдущем пункте в Excel-документе нет, то скрипт их (листы) создаёт, если же есть то двигается далее. 5. Скрипт создаёт таблицу по образцу и вносит собранные из отчётов данные в таблицу по шаблону. 6. Если листы есть, то скрипт лишь обновляет данные в таблицах. По аналогии необходимо, чтобы скрипт создавал отчёты в отдельных файлах за неделю и месяц. Решение: Как я понимаю начать нужно с парсинга отчётов. Собственно я остановился на этом))
0
|
|
| 06.03.2019, 14:50 | |
|
Ответы с готовыми решениями:
49
Посоветуйте библиотеку для формирования отчетов в *.pdf, *.doc, *.xls Возможность формирования нескольких отчетов, в зависимости от выделенных строк таблицы |
|
1887 / 1109 / 428
Регистрация: 22.01.2016
Сообщений: 3,050
|
|||
| 19.03.2019, 14:10 | |||
|
Добавлено через 2 минуты
0
|
|||
|
0 / 0 / 0
Регистрация: 15.05.2018
Сообщений: 43
|
|||||||||||
| 19.03.2019, 14:14 [ТС] | |||||||||||
|
v_svitere, KDE777, благодарю.
Скрипт работает отлично. Фактически на этом можно было бы и остановиться. Но)) Скрипт запускаю вручную (знаю, что можно добавить в планировщик) (точнее запускаю exe-файл предварительно скомпилированный с помощью PowerGui Script Editor). Каждую неделю, чтобы отобразилась инфа за прошлую неделю или за текущую я указываю в скрипте в переменную $ReportEndDate дату понедельника на этой неделе.
при запуске одного - приходит отчёт за прошлую неделю, без необходимости указывать в скрипте дату понедельника на этой неделе. при запуске другого - приходит отчёт за текущую неделю, без необходимости указывать в скрипте дату понедельника на следующей неделе. В данных случаях скрипт "пляшет" от даты запуска скрипта. Возможно ли это реализовать?
0
|
|||||||||||
|
1887 / 1109 / 428
Регистрация: 22.01.2016
Сообщений: 3,050
|
|||||||||
| 19.03.2019, 14:22 | |||||||||
Добавлено через 4 минуты
0
|
|||||||||
|
|
||||||||||||
| 19.03.2019, 14:28 | ||||||||||||
|
StoqJets,
Вы можете в скрипт передавать аргумент, который будет участвовать в логике. То есть передаете ему параметр например "Previos" или "Now", и в зависимости от этого параметра происходит выполнение условия. Таким образом получится 1 скрипт, которые может вести себя по разному в зависимости от параметра
Не проще ли так?
0
|
||||||||||||
|
1887 / 1109 / 428
Регистрация: 22.01.2016
Сообщений: 3,050
|
|
| 19.03.2019, 14:32 | |
|
0
|
|
| 19.03.2019, 14:35 | |
|
0
|
|
|
0 / 0 / 0
Регистрация: 15.05.2018
Сообщений: 43
|
|||||
| 20.03.2019, 03:39 [ТС] | |||||
|
Скрипт запускаю вручную. Под автоматизацией подразумевалось автоматическая подстановка нужной даты. Видимо я не ясно объяснил, что конкретно хочу реализовать. Логика следующая (без планировщика, запуск вручную): 1-ый скрипт: Если сегодня пн, вт, ср, чт, пт, сб, вс, То покажи отчёт за предыдущую неделю (с корректной расстановкой дней недели в таблице) 2-ой скрипт: Если сегодня пн, вт, ср, чт, пт, сб, вс, То покажи отчёт за эту неделю (с корректной расстановкой дней недели в таблице)
0
|
|||||
|
1887 / 1109 / 428
Регистрация: 22.01.2016
Сообщений: 3,050
|
|||||||||||||
| 20.03.2019, 10:54 | |||||||||||||
Кликните здесь для просмотра всего текста
1
|
|||||||||||||
|
0 / 0 / 0
Регистрация: 15.05.2018
Сообщений: 43
|
|||||||||||
| 20.03.2019, 14:59 [ТС] | |||||||||||
|
KDE777, Великолепно!
Для тех, кто хочет поюзать данный скрипт. Выкладываю готовое решение. Скорректированное под мои запросы. 1-ый скрипт. Генерирует отчёты для обработки уже вторым скриптом. GeneratorCSV.ps1 Кликните здесь для просмотра всего текста
2-ой скрипт. Анализирует логи созданные первым скриптом. AnalizCSV.ps1 Кликните здесь для просмотра всего текста
0
|
|||||||||||
|
1887 / 1109 / 428
Регистрация: 22.01.2016
Сообщений: 3,050
|
||||||||||||||||||||||||
| 20.03.2019, 15:18 | ||||||||||||||||||||||||
![]()
0
|
||||||||||||||||||||||||
|
0 / 0 / 0
Регистрация: 15.05.2018
Сообщений: 43
|
|||||
| 20.03.2019, 16:19 [ТС] | |||||
|
KDE777,
Мне было лень расписывать именно этот пункт, как не являющийся критичным. Нужно постараться, чтобы накосячить, к тому же я дальше расписал что да как.
Здесь закоментировал для более полного понимания читающими данный топик. В инструкции сделаны акценты на этом.
0
|
|||||
|
1887 / 1109 / 428
Регистрация: 22.01.2016
Сообщений: 3,050
|
||
| 20.03.2019, 16:37 | ||
|
- VS Code + PowerShell extension Всё это от создателей PS и самых актуальных версий, а не 5-ти летней давности.
1
|
||
|
0 / 0 / 0
Регистрация: 15.05.2018
Сообщений: 43
|
||
| 21.03.2019, 09:52 [ТС] | ||
|
Вообщем перехожу с PowerGui Script Editor на VS Code + PowerShell extension. Этапы перехода: Кликните здесь для просмотра всего текста
1. Качаем и устанавливаем VS Code по ссылке - https://aka.ms/win32-x64-user-stable (в процессе установки рекомендую поставить галку добавления возможности открытия файлов через VS Code в контекстное меню)
2. Запускаем VS Code. Слева вверху в поиске вбиваем "PowerShell" без кавычек. 3. Устанавливаем нажатием кнопки Install. 4. Если кому нужен русский интерфейс в программе, то в том же окне поиска вбиваем "Russian Language Pack for Visual Studio Code". У меня русский интерфейс включился после установки этого расширения и перезапуска VS Code. Вам возможно потребуется сделать доп. настройку конфигурационного файла (в пару кликов). Инструкция здесь - https://marketplace.visualstud... ge-pack-ru 5. Кракозябры вместо русских букв при открытии через VS Code своих существующих скриптов. Файл - Параметры - в поиск вбиваем "Auto guess Encoding". Напротив найденного параметра ставим галочку. У меня после этой настройки русские буквы стали корректно отображаться. Даже выглядит эта софтина круто, я уж молчу про функционал)) KDE777, благодарю вас.
0
|
||
|
0 / 0 / 0
Регистрация: 15.05.2018
Сообщений: 43
|
|
| 21.03.2019, 10:17 [ТС] | |
|
Скриншот программы.
0
|
|
|
1887 / 1109 / 428
Регистрация: 22.01.2016
Сообщений: 3,050
|
||||
| 21.03.2019, 10:20 | ||||
|
- огромный плюс ISE в том, что эта IDE штатно уже есть в ОС, т.е. удобное создание/отладка скриптов доступно сразу из коробки. - у ISE (по умолчанию) более наглядная подсветка синтаксиса: "-ErrorAction SilentlyContinue", "-ComputerName $_", и т.п. - в VSC и ключ и его значение будут одним цветом, а в ISE нет
0
|
||||
|
0 / 0 / 0
Регистрация: 15.05.2018
Сообщений: 43
|
||
| 21.03.2019, 10:34 [ТС] | ||
|
"выделили нужный кусок или сразу всё (ctrl+A) и нажали F8" Проверил. Работает. Хоть целиком, хоть кусок кода. Кстати, это круто, что можно кусок кода проверять. Это как же облегчится написание скриптов))) Раньше создавал отдельные файлы, где и проверял функционал отдельных частей кода. Проверил сейчас, PowerGui оказывается это тоже может. Ну хоть поздно узнал, лучше чем никогда.
0
|
||
|
1887 / 1109 / 428
Регистрация: 22.01.2016
Сообщений: 3,050
|
|||
| 21.03.2019, 10:40 | |||
Выполнить выделенное, естественно было в PowerGui и есть в ISE/VSC...
0
|
|||
|
0 / 0 / 0
Регистрация: 15.05.2018
Сообщений: 43
|
||||||||||||||||||||||||||||
| 21.03.2019, 14:14 [ТС] | ||||||||||||||||||||||||||||
|
Данный код полностью совместим с предыдущим кодом (AnalizCSV.ps1) из моего 30-ого сообщения. Достаточно заменить блок кода отвечающего за отправку письма в конце скрипта и указать свои реквизиты к почтовому ящику. Кликните здесь для просмотра всего текста
Добавлено через 16 минут KDE777, выявил проблему со скриптом. Формирование отчёта работает не так как задумано. Покажу на примере. Кликните здесь для просмотра всего текста
Входные данные (csv-файл):
Вывод:
После обработки скриптом. За прошлую неделю. Есть проблема. Совмещаются события из прошлой и текущей недели.
0
|
||||||||||||||||||||||||||||
|
1887 / 1109 / 428
Регистрация: 22.01.2016
Сообщений: 3,050
|
|||||||||
| 21.03.2019, 15:09 | |||||||||
0
|
|||||||||
| 21.03.2019, 15:09 | |
|
Как заставить jquery-скрипт работать при перезагрузке контента AJAX-ом? Скрипт не реагирует после формирования блока При обновлении конфигурации не все формы регламентной отчетности обновились Пустой список отчетов в справочнике Варианты Отчетов в УТ 11 Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Скрипты Tampermonkey для CyberForum, ChatGPT, Claude и пр.
Jin X 06.09.2026
Скрипты Tampermonkey для CyberForum, ChatGPT, Claude и пр.
Работая с форумом и нейросетями в браузере часто хочется что-то подкорректировать или добавить какого-то функционала.
Ниже прикреплён. . .
|
Программа опроса у.з. расходомера SLS-720F
Argus19 02.09.2026
Программа опроса у. з. расходомера SLS-720F
Программа опрашивает один раз в минуту три ультразвуковых расходомера SLS-720F через интерфейс RS-485 по протоколу Modbus RTU.
Опрашиваются регистры. . .
|
Hyper-V: Компьютер должен поддерживать доверенный платформенный модуль 2.0.
Maks 31.08.2026
При установке Windows 11 на виртуальную машину Hyper-V 2-го поколения вылезла такая ошибка:
Решение: в параметрах виртуальной машины, в разделе "Безопасность" (Security) активировать флаг. . .
|
Архитектура биовида Стива в Майнкрафте: Зачем бонобо кубический каннибализм
anaschu 30.08.2026
Кубический Вагинокапитализм в Minecraft: Математический инвариант ОДУ и рок Стивов-бонобо
Главная задача разработанной «Модели Всего» — наглядно продемонстрировать наличие системной «судьбы». . .
|
|
Оттачиваю умение писать js программы.
russiannick 30.08.2026
Проектом выходного дня стало написание Книги шифров Виженера. Итогом стала версия 200, синий туман.
Синий туман назван так, потому что замораживает текст под собой. Нажатие синих кнопок управляют. . .
|
мат медиц модель 30. презентация проекта
anaschu 27.08.2026
хоп хоп хоп хидахоп, а я кладую))
|
Как у меня протекала болезнь
zorxor 27.08.2026
Здравствуйте, друзья! Эта запись блога предназначена именно для вас - для моих дорогих друзей, которые знали меня лично. Чтобы ответить на вопрос - а что же со мной произошло на самом деле? Я учился. . .
|
Нашел вот забавное видео о измерениях. Лучшее что я видел на эту тему
kumehtar 26.08.2026
ILETXiw9bMQ
Основная суть и тезисы по измерениям:
0D (Нулевое измерение): точка, не имеющая длины, ширины, высоты или объема.
Объект не может перемещаться в 0D.
1D (Первое измерение):. . .
|