Полный список компьютеров и их комплектующих на первый взгляд может показаться очередным бюрократизмом. Однако, такой список позволяет управлять компьютерным парком эффективнее, оценить необходимое количество комплектующих, своевременно обновлять устаревшие компьютеры и так далее..
Зачем все это?
Как всегда, основная проблема - это время, нужно много чего сделать в самые короткие сроки. Поэтому первым делом приходит идея использовать какие-то готовые решение для инвентаризации компьютеров. Но такие решения в основном платные. Из бесплатных можно назвать, например, Spiceworks. Программа имеет веб-интерфейс и собирает информацию с помощью wmic.
Нашел одно решение на Хабре. Выполненное с использованием PowerShell. Позволяет собирать всю необходимую информацию об удаленных компьютера из окна Powershell. Хорошо оптимизирован, асинхронное выполнение запросов, идеальное решение если знаешь какие компьютеры надо опросить.
Но данные варианты не удовлетворяли запросы в моем конкретном случае. В распоряжении оказалось большое количество компьютеров, работающих и не работающих. Все они имели разные конфигурации. Задача была обновить старые ПК и определить что и в каком количестве надо закупать. Таким образом возникла необходимость получить список компьютеров: простенькую табличку с сортировкой, в которой было бы удобно производить сравнение комплектующих.
Результат
Для решения поставленной задачи возникла идея использовать групповые политики. В связке с батником, которые использовал инструмент wmic. При входе пользователя запускается самописный скрипт, который расположен в общедоступной сетевой папке. Скрипт собирает инфу о локальном компьютере и отправляет на MySql сервер. Там идет добавление записи в БД или обновление уже существующей записи. Веб сервер читает данные из БД и выводит в удобоваримом виде.
Я не знал какие компьютеры были в использовании, поэтому запуск скрипта при входе пользователя решает это и освобождает от сканирования сети и сбора информации самостоятельно. Также выполнение скрипта при входе позволяет поддерживать информацию в актуальном виде.
Принцип работы
Батник
Собирает инфу в переменные и передает скрипту php
PHP
Принимает пост переменные и добавляет или обновляет запись в БД
Web севрер
Читает данные БД и воспроизводит их в виде таблице
Исходники можно посмотреть на GitHub
Вывод
После настройки скрипт работает автоматическом режиме. Нам остается только периодически заглядывать и анализировать данные. Включается и выключается через групповые политики.
Комментарии (9)
KrasPvP
31.01.2022 08:33а что вообще такое "вход"?
я к тому, если ПК будет в спящем режиме, то после пробуждения отработает ли скрипт? это довольно странный вопрос и не факт, что критический, но у нас на старой работе некоторые менеджеры компы держали в спящем режиме по нескольку месяцев)
Volzhanin94 Автор
31.01.2022 08:35скрипт после пробуждения сработает, только если пользователь до этого сделал выход из системы
kiff
31.01.2022 08:35Проблема известная, решений много (конечно большиство платные). Пробовал забирать все батником, однако были проблемы с обнаружением старого или особого железа..
В целом мне очень понравлся https://www.total-network-inventory.ru/. Рекомендую.
halsbox
31.01.2022 08:36+2Если кто захочет у себя это запустить, имейте в виду, там можно вот так делать:
?order=ASC; DROP TABLE pc; --
slavius
31.01.2022 11:54Было еще https://habr.com/ru/post/555224
Если можно использовать сторонние программы я для этого пользую psexec и winaudit. http://www.parmavex.co.uk/winaudit.html • No setup • Save as csv, rtf and html • Send by e-mail • Database export • Command line • £0.00 • European Union Public License • Download[1.2MB] source code
Может складывать в базы.
slavius
31.01.2022 12:09В Win7 был удобный инструмент - карта сети.
Это не для громадных сетей, но работало.
В Win10 такого нет:(
Кто что использует?
Shaz
И зачем люди делали glpi с fusion-inventory?
AlexGluck
В своё время пришлось по всем компам пройтись и включить wmi. А надо было продавить с начала хороший ад с гпо.
olegtsss
«Принимает пост переменные и добавляет или обновляет запись в БД» — не забудьте про санитайзинг данных.