Автоматический сбор информации с компьютеров Windows
Полный список компьютеров и их комплектующих на первый взгляд может показаться очередным бюрократизмом. Однако, такой список позволяет управлять компьютерным парком эффективнее, оценить необходимое количество комплектующих, своевременно обновлять устаревшие компьютеры и так далее..
Зачем все это?
Как всегда, основная проблема - это время, нужно много чего сделать в самые короткие сроки. Поэтому первым делом приходит идея использовать какие-то готовые решение для инвентаризации компьютеров. Но такие решения в основном платные. Из бесплатных можно назвать, например, Spiceworks. Программа имеет веб-интерфейс и собирает информацию с помощью wmic.
Нашел одно решение на Хабре. Выполненное с использованием PowerShell. Позволяет собирать всю необходимую информацию об удаленных компьютера из окна Powershell. Хорошо оптимизирован, асинхронное выполнение запросов, идеальное решение если знаешь какие компьютеры надо опросить.
Но данные варианты не удовлетворяли запросы в моем конкретном случае. В распоряжении оказалось большое количество компьютеров, работающих и не работающих. Все они имели разные конфигурации. Задача была обновить старые ПК и определить что и в каком количестве надо закупать. Таким образом возникла необходимость получить список компьютеров: простенькую табличку с сортировкой, в которой было бы удобно производить сравнение комплектующих.
Результат
Для решения поставленной задачи возникла идея использовать групповые политики. В связке с батником, которые использовал инструмент wmic. При входе пользователя запускается самописный скрипт, который расположен в общедоступной сетевой папке. Скрипт собирает инфу о локальном компьютере и отправляет на MySql сервер. Там идет добавление записи в БД или обновление уже существующей записи. Веб сервер читает данные из БД и выводит в удобоваримом виде.
Я не знал какие компьютеры были в использовании, поэтому запуск скрипта при входе пользователя решает это и освобождает от сканирования сети и сбора информации самостоятельно. Также выполнение скрипта при входе позволяет поддерживать информацию в актуальном виде.
Принцип работы
Батник
Собирает инфу в переменные и передает скрипту php
PHP
Принимает пост переменные и добавляет или обновляет запись в БД
Web севрер
Читает данные БД и воспроизводит их в виде таблице
Исходники можно посмотреть на GitHub
Вывод
После настройки скрипт работает автоматическом режиме. Нам остается только периодически заглядывать и анализировать данные. Включается и выключается через групповые политики.