Инвентаризация ПО предприятия с помощью антивируса Касперского из песочницы

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

Необходимо:


  • видеть, сколько экземпляров каждой программы установлено;
  • иметь возможность сравнить состояние текущее и на прошлой неделе;
  • иметь возможность учитывать используемые лицензии и следить за их превышением.


Решение:


Не секрет, что антивирус Касперского достаточно популярен, а в корпоративной среде используется централизованное управление с помощью Сервера администрирования. В Kaspersky Administration Kit 8.0 существует Реестр программ, собирающий необходимую нам информацию. Зачем, в таком случае, дублировать эту функцию и использовать что-то ещё? Осталось обработать уже имеющиеся данные.

Общий принцип: используя связку Apache+PHP+MySQL пишем скрипт, который загружает данные из БД Касперского в нашу таблицу по нажатию кнопки на главной странице. Через веб-интерфейс мы можем просмотреть состояние на каждый момент, в который производилась загрузка. Добавляем функции сравнения двух снимков состояний и анализ имеющихся лицензий.

Некоторые замечания: я использую FreeBSD, и мне потребовалась библиотека freetds для работы php-функции mssql_connect(). Сервер администрирования Касперского может использовать как полноценный MSSQL Server, так и свою СУБД, которая является тем же самым MSSQL, но Express Edition. Загрузка данных работает в любом случае, но в EE необходимо в SQL Server Configuration Manager включить сетевые службы и для TCP/IP указать нужный порт (например, 1433). Желательно, также, создать специального пользователя для подключения.

Скрипты:


Пишите в личку адрес — вышлю.

index.php: основной файл, в котором указываем параметры баз данных (mysql и mssql) и описываем html-шаблон. Мой дизайн максимально прост.
upload.php: скрипт загрузки данных. В нём описывается замена названий некоторых программ по нужному вам принципу. Я, например, удаляю из названий номера версий, чтобы одна и та же программа разной версии учитывалась как одна. Также я удаляю данные о драйверах и обновлениях.
compare.php: функции сравнения снимков состояний.
license.php: функции учёта лицензий.
license.txt: файл описания существующих лицензий.
logons.txt: файл соответствия имени компьютера и пользователя, который за ним работает. Для удобства анализа отчётов. Может быть пустым.
monpo.sql: — описание таблицы MySQL.

Скриншоты:


Список снимков.

Список снимков

Просмотр данных.

Просмотр данных

Сравнение.

Сравнение

Учёт лицензий.

Учёт лицензий
+32
11 января 2011, 15:57
58
dcvetkov 5,0

комментарии (13)

+2
gjf #
А чего, остроумное решение и не требует дополнительного софта. Автор — молодец.
+1
dcvetkov #
Спасибо. Если кто-то будет пользоваться и возникнут вопросы/пожелания по усовершенствованию — обращайтесь, обязательно постараюсь. Приятно, когда твоё творение пригождается.
0
Legolas #
спасибо, очень интересно, буду знать.
+3
ChemAli #
Ну, за автоматизацию!
+1
randomtoy #
и за костыли!
0
whiteglasses #
Логи Касперского — это очень здравая идея. Автор молодец.
+1
SidexQX #
Очень интересный подход)) Вот бы ещё другие антивирусы охватить., например NOD32.
0
dinn #
Супер! Попробую.
0
Nesp #
К вам уже выехали адвокаты Adobe ;)
0
MainEvent #
Ударим находчивостью по проприетарщине)) Решение действительно оригинальное! Интересно, а статистика предоставляется по заранее ограниченному перечню ПО или по всему софту, который видит Касперский?
0
dcvetkov #
По всему, что видит Касперский. А он, в свою очередь, берёт данные из реестра Windows.
0
Kos_GNOM #
Данное решение — костыль, причем не очень универсальный. Если есть домен active directory, куда проще использовать PowerShell.
0
zeleniy87 #
а у нас все по-старому, наклейка на корпус + журнал=). К NOD32 тоже хотелось бы приктрутить

Только зарегистрированные пользователи могут оставлять комментарии. Войдите, пожалуйста.