Программы: Service List Generator
07.01.2017


Сегодня у меня есть небольшой рождественский презент (а поздравление было в группе). Хотя скорее это подарок лишь нескольким из моих одногруппников.
Итак, вот вам программа для Windows, которая выводит список установленных сервисов в виде красивой таблицы на HTML-странице!

Для чего это нужно? Ну вот нам давали задание на лабораторную работу: переписать в таблицу 30 сервисов, включая их названия, описания, исполняемый файл и статус работы. Для тех же, кто прогуливал пару, задание решили "усложнить": им нужно переписать все сервисы, кроме этих 30-ти. И это вполне себе вызов, если делать методом "копипасты" и перепечатывания, как они делали на паре. Ну а что же я? Взял и написал за пару на Python 3 скрипт, который любой может запустить на своей машине и получить готовую таблицу, которую затем можно вставить в Word!
Теперь же я наконец-то её оформил в красивом виде и готов выложить на радость нуждающейся публике.

>> СКАЧАТЬ <<
исполняемый файл

Скачать исходный код

Вы можете ужаснуться, что архив с исполняемым файлом весит целых 7,5 Мб. Где же это видано! Согласен, много. Дело в том, что PyInstaller собирает в EXEшник полноценный интерпретатор языка Python и включает туда все необходимые модули.
Те, у кого уже есть Python 3 и установленный пакет модулей PyWin32, могут установить WMI через pip (py -3 -m pip install wmi) и просто скачать архив с исходным кодом, который весит всего 2,5 Кб.

Как пользоваться скриптом?

Сразу скажу самую главную вещь: не пытайтесь запустить программу просто так! Вы лишь получите ошибку перекодировки в кодировку CMD. И это не баг, а так и было задумано изначально. Зачем Вам HTML-страница в консоли? Обязательно перенаправляйте вывод скрипта в файл! Я не стал делать для этого отдельных опций, ибо есть стандартный способ. Давайте сразу рассмотрим несколько примеров запуска программы, когда рабочий каталог предварительно уже установлен в папку с ней:

python service_list_generator.py > services.html # вызываем скрипт из исходного кода, создавая файл services.html
py -3 service_list_generator.py > services.html # если команда "python" забита на вторую версию языка, то используем Python Launcher
service_list_generator > services.html # исполняемый файл вызвать проще всего; ".exe" можно опустить
service_list_generator limit:30 > services.html # теперь в таблице не будет больше 30 строк
service_list_generator filter:exclude.html > services.html # используем специальный файл, где перечислены сервисы, которые мы не желаем видеть в результирующей таблице (об этом ниже)
service_list_generator l:30 f:exclude.html > services.html # комбинация двух предыдущих вызовов в сокращённой форме

Как видно из примеров выше, скрипт поддерживает два параметра: filter и limit, значения которым задаются через двоеточия без пробелов. Также вместо полных слов можно писать лишь первую букву. Второй принимает положительное число, которое обозначает максимальное количество сервисов в выдаче, а первый позволяет исключать некоторые из них.
Файл, который принимается для фильтрации, должен содержать названия исключаемых сервисов. Ну или хотя бы несколько слов из названий. Не сокращайте названия слишком сильно, потому что вычёркиваться из выдачи будут все сервисы, чьё название начинается аналогично указанному в списке.
Каждое название должно быть на отдельной строке.
Кодировка файла должна быть строго Windows-1251! Скрипт работает только с ней и выдаёт HTML-страницу в ней же.

Ну вот вроде бы и всё, что я хотел рассказать об этой маленькой программке. С Рождеством! Рекомендую посмотреть познавательное видео "Адам портит Рождество" и зайти на Congrats.Cf. Удачи!