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