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

Зачем все это?

Как всегда, основная проблема - это время, нужно много чего сделать в самые короткие сроки. Поэтому первым делом приходит идея использовать какие-то готовые решение для инвентаризации компьютеров. Но такие решения в основном платные. Из бесплатных можно назвать, например, Spiceworks. Программа имеет веб-интерфейс и собирает информацию с помощью wmic.

Нашел одно решение на Хабре. Выполненное с использованием PowerShell. Позволяет собирать всю необходимую информацию об у��аленных компьютера из окна Powershell. Хорошо оптимизирован, асинхронное выполнение запросов, идеальное решение если знаешь какие компьютеры надо опросить.

Но данные варианты не удовлетворяли запросы в моем конкретном случае. В распоряжении оказалось большое количество компьютеров, работающих и не работающих. Все они имели разные конфигурации. Задача была обновить старые ПК и определить что и в каком количестве надо закупать. Таким образом возникла необходимость получить список компьютеров: простенькую табличку с сортировкой, в которой было бы удобно производить сравнение комплектующих.

Результат

Для решения поставленной задачи возникла идея использовать групповые политики. В связке с батником, которые использовал инструмент wmic. При входе пользователя запускается самописный скрипт, который расположен в общедоступной сетевой папке. Скрипт собирает инфу о локальном компьютере и отправляет на MySql сервер. Там идет добавление записи в БД или обновление уже существующей записи. Веб сервер читает данные из БД и выводит в удобоваримом виде.

Я не знал какие компьютеры были в использовании, поэтому запуск скрипта при входе пользователя решает это и освобождает от сканирования сети и сбора информации самостоятельно. Также выполнение скрипта при входе позволяет поддерживать информацию в актуальном виде.

Принцип работы

Батник

Собирает инфу в переменные и передает скрипту php

PHP

Принимает пост переменные и добавляет или обновляет запись в БД

Web севрер

Читает данные БД и воспроизводит их в виде таблице

Исходники можно посмотреть на GitHub

Вывод

После настройки скрипт работает автоматическом режиме. Нам остается только периодически заглядывать и анализировать данные. Включается и выключается через групповые политики.

Результат работы скрипта
Результат работы скрипта