Инвентаризация компьютеров по сети

WMI и Powershell

В WinNT 4.0SP4 администраторы получили новый инструмент для централизованного управления и слежения за работой различных частей операционной системы — WMI (Windows Management Instrumentation, Инструментарий для Управления Windows). Правда, в первых версиях заложенных компонентов было немного (всего 15). Но в последующих Win2k+ их количество увеличивалось вместе с возможностями. Сегодня WMI доступен для всех версий ОС Windows, включая Se7en. Опрашивая различные WMIклассы локальной и удаленных систем, мы можем получить всю необходимую информацию по имеющемуся в компании программному обеспечению и оборудованию.

В примерах предлагаю не использовать VBScript, JScript или другие скриптовые языки, уж слишком они громоздки и неудобны, тем более у нас уже есть роскошный PowerShell, способный выполнить за нас львиную долю работы (подробнее о PS читай в ][ 09.2009 и 05.2010).
Для начала получим список BIOS на подчиненных компьютерах:

PS> Get-WMIObject Win32_BIOS
-computerName synack.ru

Как ты понимаешь, после ‘-computerName’ указывается имя хоста. Хотя при опросе локальной системы этот параметр можно опускать, что мы и будем делать в дальнейшем для краткости. Написав простенький скрипт, легко передать Get-WMIObject список систем, с которых будет собираться информация. Результат при необходимости сохраняем в текстовый файл для дальнейшего анализа.

Аналогично проводим опрос остальных параметров. Например, запрашиваем информацию о CPU:

PS> Get-WMIObject Win32_Processor

Полный список данных, как правило, не нужен, поэтому отбираем только необходимые параметры:

PS> Get-WmiObject Win32_ComputerSystem | Select Manufacturer, Model

Посмотрим, какая у нас материнская плата:

PS> Win32_Baseboard | Select Manufacturer, Name, Product | ft -a

Классы Win32_ComputerSystem, Win32_ComputerSystemProduct и Win32_ OperatingSystem позволят собрать общие данные по компьютеру и системе:

PS> «127.0.0.1», «synack.ru», «pc01» | Check-Online |
Foreach-Object { Get-WMIObject
Win32_ComputerSystem -computerName
$_ }

Запрашиваем версию ОС:

PS> Get-WmiObject Win32_OperatingSystem | Select CSName,Buil
dNumber,ServicePackMajorVersion

При желании результат можно сохранить в файл, например «Export-CliXML C:\check.xml», а затем отфильтровать или обработать:

PS> Import-CliXML C:\check.xml |
Out-GridView

Полный список Win32_* классов и свойств доступен в документации MSDN «Win32_Classes» (http://msdn.microsoft.com/en-us/library/ aa394084%28v=VS.85%29.aspx). Альтернативный вариант — воспользоваться функцией поиска.

К примеру, просмотрим список объектов, в именах которых присутствует слово disk:

PS> Get-WmiObject -List | where {$_.
name -match «disk»}

Готовые утилиты и приложения

Если хорошо поискать в интернете, можно найти не один десяток готовых WMI-скриптов на самых разных языках программирования, которые легко адаптируются под твои нужды.

Мое внимание привлекло HTA-приложение Hardware Inventory (www.robvanderwoude.com/hardware.php) с веб-оболочкой. Просто вводим имя компьютера и получаем данные об установленном оборудовании. При необходимости можно отредактировать сырец в текстовом редакторе, дополнив его нужными параметрами (опрос WMI-объектов реализован на VBScript).

Сторонними разработчиками создан ряд специальных командлетов, упрощающих написание скриптов. Скрипт Computer Inventory Script (CompInv), который доступен на сайте powershellpro.com, позволяет получить информацию о железе, ОС и сохранить все собранные данные в Excel’евский файл для дальнейшего анализа. После запуска скрипт задаст несколько вопросов, отвечая на которые, админ выбирает режим сбора данных. Список компьютеров для проверки определяется при помощи специального текстового файла, также скрипт может автоматически проверить все системы или серверы, входящие в домен. Как вариант — имя компьютера задается вручную. По умолчанию используется текущая учетная запись, но, ответив «Yes» на вопрос «Would you like to use an alternative credential?», можно указать требуемую учетную запись.

Чтобы затем не запускать созданный скрипт самостоятельно, поручим это SchTasks. Например:

В результате создается задание с названием CheckScript, которое будет ежедневно выполнять PS-скрипт check.ps1, причем с наивысшим приоритетом. Вместе с системой инвентаризации оборудования и установленных приложений NetPoint (www.neutex.net) предлагается набор PS-скриптов (GetNet*), предназначенных как раз для сбора определенного типа данных о подчиненных системах. Например, просмотрим наличие свободного места на харде:

PS> Get-NetLogicalDisk -DriveType «Local Disk»
| where { $_.FreeSpace / $_.Size -lt .10 } | % {
$_.ComputerSystemName }

Теперь попробуем собрать информацию об установленных программах:

PS> Get-NetProgram -System synack.ru -Uninstalled $False
| % { $_.DisplayName } | sort -unique

Всего в поставку входит 20 командлетов. Доступна бесплатная версия NetPoint Express Edition, которая работает в 32/64-битных WinXP/2k3/2k8/Vista/Se7en, ее можно применять в сетях любого размера. Для установки NetPoint понадобится наличие PS 2.0, IIS и SQL-сервера (достаточно Express Edition).

Кстати, список установленных программ можно получить, просто прочитав нужную ветку реестра:

Командлет Out-GridView выводит данные в отдельном окне с возможностью поиска и сортировки.

Система инвентаризации Myzci

Многие, кто пробовал систему инвентаризации zCI (zci.sf.net), находили ее довольно удачным решением, но ей не хватало возможности заносить данные вручную и локализованного интерфейса.

Конечно, это не критические моменты, но есть и другие мелочи. Например, нельзя удалить устройство через веб-интерфейс — необходимо вручную составить SQL-запрос на очистку данных из таблиц. Система инвентаризации MyZCI (sf.net/projects/myzci) является форком zCI. Разработкой занимается Юрий Винник, он довел zCI до нужных кондиций: интерфейс переведен на русский и украинский языки, добавлены новые поля в таблицы (например, размещение компьютера) и упрощено управление.

Для работы MyZCI потребуется любой вебсервер с поддержкой PHP (с PECL, PHP Extension Community Library) и MySQL.

Распаковываем архив myzci-1.2.1.zip в корневой каталог веб-сервера и в файле zciconfig.php указываем параметры доступа к MySQL:

$ sudo nano zciconfig.php
return dbx_connect(DBX_MYSQL,»local
host»,»zci»,»zci»,»passwd»);

Чтобы создать таблицы в БД, используем скрипт mysqlscript.sql, находящийся в каталоге engine. Записи внутри нужно привести в соответствие с данными:

$ sudo nano mysqlscript.sql
create database zci;

grant all on zci.* to
‘zci’@’localhost’ identified by
‘passwd’;
# Если не планируется доступ к БД с
других систем, последнюю строку комментируем
# grant select,delete,insert,update
on zci.* to ‘zci’@’%’ identified by
‘zci’;

Локализация интерфейса производится установкой переменной “$Lang” в значение “ru” в файле langconfig.php.

Для сбора информации в Windows-системе используется Windows Script Host, в Linux — lshwclient на Java. Все компоненты находятся в подкаталоге add-ons и engine. Здесь же лежат MS Windows Scripting Host 5.6 и MS WMI Core 1.5, которые необходимы для работы клиентской части в Win95/98/NT4. Перед развертыванием в файлах takedata.js и lshwclient.java следует изменить значение переменной MyZCIpath и MyZCIserver, чтобы она указывала URL сервера.

Процесс настройки клиентской части на конечных системах упрощен. Так, скрипт install.sh, используемый при установке в Linux, проверяет наличие пакетов lshw, jdk и read-edid (инфа о мониторе) и при их отсутствии выдает пояснительное сообщение. Далее происходит сборка Java-клиента и установка задания cron. После развертывания MyZCI нужно подключиться к серверу с удаленной системы и зарегистрировать компьютер, нажав соответствующую ссылку на главной странице. Информация о новой системе должна появиться в базе MyZCI. Скачиваем с главной страницы архив с клиентской частью и запускаем установщик.

После чего скрипты начнут отсылать данные на сервер. Интерфейс предельно прост и позволяет выводить детальную информацию о железе, вносить и редактировать данные о компьютерах, группировать, искать системы по определенному критерию (например, тип видеокарты и монитор), отслеживать изменения.

Меню администратора позволяет определять статус (закреплен, аренда) и местонахождение системы.

Система OCS Inventory NG

Решение OCS Inventory NG (OCSNG, Open Computers and Software Inventory New Generation, ocsinventory-ng.org) позволяет произвести инвентаризацию комплектующих и программного обеспечения, установленных на компьютерах в локальной сети, и отслеживать их изменения, периодически получая данные о конфигурации систем. Еще одной полезной функцией является возможность удаленной установки программ и выполнения команд. Для сбора информации на клиентские компьютеры устанавливается программа-агент.
Агент доступен практически для всех версий Windows от 95 до 2k8R2, Linux, Mac OS X, *BSD, Solaris, IBM AIX и HP-UX. Все собранные данные агенты отправляют на сервер управления (management server) в виде XML-потока, сжатого при помощи библиотеки Zlib. Для передачи используется стандартный протокол HTTP/HTTPS, поэтому проблем с firewall’ом обычно не возникает. При помощи агентов реализована функция «IP discovery», которая помогает находить все сетевые и периферийные устройства, работающие в локалке, в том числе те, на которые нельзя установить агента (свитчи, принтеры, web-камеры и т.д.) Агенты сканируют сеть в поисках подобных устройств и отправляют сведения о них на сервер для анализа.

Версия для Windows написана на C++, *nix вариант — на Perl и С.

Серверная часть OCSNG включает в себя четыре компонента, которые необязательно должны быть установлены на одном сервере. Это СУБД (MySQL) для сбора данных, а также вебсервер, который может играть одну из трех ролей:

  • Служба связи — обеспечивает связь по протоколу HTTP между сервером базы данных и программами-агентами (Apache 1.3.X/2.X с интегрированным Perl, в Debian/Ubuntu пакет libapache-dbi-perl);
  • Служба развертывания — хранение установочных файлов программ-агентов (любой веб-сервер с поддержкой SSL);
  • Консоль управления — просмотр собранных данных в браузере (веб-сервер с поддержкой PHP с ZIP и GD).

Серверная часть OCSNG может быть установлена на компьютер, работающий под управлением Win2k/XP/2k3, Linux, *BSD, Solaris, IBM AIX и MacOS X.

Установка Ocsng

Нужный пакет имеется в репозиториях большинства дистрибутивов, хотя обычно это не самая актуальная версия. Самостоятельная сборка из исходных текстов при внимательном подходе не должна вызвать трудностей. Установочный скрипт setup.sh, находящийся внутри архива, проверит наличие требуемых компонентов и выдаст рекомендации по устранению проблем, если в этом будет необходимость.
В Debian/Ubuntu для ручной сборки нужно накатить пакеты:

И XML::Entities из хранилища CPAN:

$ sudo cpan -i XML::Entities

В процессе установки будут созданы все необходимые конфигурационные файлы и алиасы для веб-сервера. Так как файлы, которые могут распространяться при помощи OCSNG, часто имеют большой размер, следует установить нужные значения переменных post_max_size и upload_max_filesize в файлах /etc/php5/apache2/php.ini (по умолчанию — 8 и 2 Мб) и ocsinventory-reports.conf. После всех настроек вызываем браузер и запускаем установочный скрипт http://localhost/ocsreports/install.php, где указываем параметры доступа к БД. В процессе установки для доступа к базе ocsweb будет создана учетная запись «ocs» с паролем «ocs». Если доступ к базе не ограничен локальной системой, в целях безопасности дефолтный пароль следует изменить. Для установки агента в Linux потребуется наличие некоторых модулей Perl (XML и Zlib) и dmidecode.

После чего агент устанавливается стандартным для Perl’овых приложений способом:

$ tar xzvf Ocsinventory-Agent-1.1.2.tar.gz
$ cd Ocsinventory-Agent-1.1.2
$ perl Makefile.PL
$ make
$ sudo make install

Далее скрипт начнет задавать ряд вопросов по размещению конфигурационных файлов. Вводим данные сервера, создаем тэг (для группировки систем), активируем задачу для cron. По окончании настройки собранные данные о конфигурации компьютера отправляются на сервер. Если связь установлена и получаем ответ «Success!», установку агента можно считать законченной. Его данные появятся в веб-консоли, в разделе «Все компьютеры «. В каталоге /var/lib/ocsinventory-agent будет создан XML-файл, содержащий текущую конфигурацию компьютера. Если же соединения не произошло, запусти агент в режиме отладки:

$ ocsinventory-agent -l /tmp –debug —server http://ocsng-server/ocsinventory

Обычно полученной информации хватает для диагностики ошибок. Агент для Windows может быть установлен несколькими способами. Самый простой — вручную или с помощью прилагающегося logon скрипта.

После инсталляции сервера установочный файл агента можно импортировать в базу OCSNG. Просто выбираем вкладку «Агент» и указываем месторасположение файла, после чего он будет доступен с любого компьютера сети. Установка стандартна: на последнем этапе сообщаем имя или IP-адрес OCSNG сервера, и, чтобы сразу же сформировать и отправить отчет, устанавливаем флажок «Immediately launch inventory». Далее агент прописывается в автозагрузку и стартует в качестве сервиса.

Работа с интерфейсом OCSNG

Интерфейс локализован, поэтому, чтобы разобраться с его использованием, много времени не понадобится. По умолчанию на вкладке «Все компьютеры » показаны семь основных характеристик клиентских машин.

Список «Add column» позволяет легко добавить еще до 23 полей. Очень удобно, что данные поддаются ручному редактированию. Также следует отметить легкий поиск и удаление дубликатов систем.

Как уже говорилось ранее, в OCSNG заложена возможность установки приложений и запуска скриптов (bat, vbs и т.п.) Такая функциональность сильно выручает. Создаем пакет в Deployment — Build и заполняем поля New package building: название, Priority (порядок установки) и действие в Action. Предусмотрено три варианта:

  • Store — копировать на целевую систему;
  • Execute — копировать и выполнить с командой;
  • Launch — копировать и запустить.

Параметры в User notifications позволяют вывести предупреждение пользователю и разрешить ему отменять задачу.

После создания пакета его следует активировать в Deployment — Activate. Вводим URL сервера и нажимаем «Отправить». Выбираем компьютер, на который будем устанавливать пакет, переходим в меню Customization и нажимаем ссылку Add package. Указываем пакет и запускаем процесс нажатием Affect. Состояние задачи выводится в Customization, общая статистика доступна в таблице Activate.

В OCSNG инициатором соединения выступает агент, который подключается к серверу раз в сутки, отправляет информацию о состоянии и получает задания. Если созданный пакет необходимо установить раньше, на клиенте следует принудительно запустить команду ocsinventory-agent.

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

Проект GLPI

GLPI (Gestion Libre de Parc Informatique, glpi-project.org) — еще один проект, который пользуется заслуженной популярностью у админов. Кроме задач по учету компьютеров и комплектующих, он позволяет хранить данные по остальному «хозяйству», включая расходные материалы. В отличие от OCSNG, администратор самостоятельно наполняет базу устройств, используя локализованный веб-интерфейс.
Но проблема эта решается за счет использования плагина, интегрирующего GLPI с OCSNG. Поэтому их часто устанавливают вместе. Для включения поддержки необходимо перейти в «Установки — Общие» и переключить «Активировать режим OCSNG» в значение «Да». После этого в меню появится новая вкладка «Режим OCSNG», в которой можно синхронизировать данные.

На основе GLPI легко организовать службу технической поддержки пользователей, что очень удобно, ведь вместо звонка юзер оставляет заявку, которая регистрируется системой. Затем IT-подразделение ее обрабатывает. Это дисциплинирует пользователей — они перестают звонить по мелочам, а у админов появляется база обращений для отчета о проделанной работе. Но возможности GLPI этим не ограничиваются. Он позволяет создать базу знаний, состоящую из статей, вести учет поставщиков, договоров. Система снабжена большим количеством самых разных отчетов с возможностью экспорта результата в файл формата PDF, CSV или SLK. Поддерживается синхронизация календаря по протоколам iCal, Webcal.

Функци ональность легко расширяется за счет плагинов, доступных на сайте проекта (plugins.glpi-project.org). Кроме OCSNG можно импортировать данные с сервера Cacti или Nagios.

Пакет GLPI имеется в репозитариях основных *nix дистрибутивов. Установка при помощи исходных текстов стандартна для приложений, написанных на PHP и требующих наличия веб-сервера и MySQL.

Срочная инвентаризация. Или хочу всё знать

Захотелось поделится с хабросообществом парой способов провести инвентаризацию техники быстро и без особых усилий. Сподвигла меня вот эта статья, но как сторонник UNIX-way я расскажу способы сделать всё то же самое и даже больше без необходимости окружать себя гомогенной сетью из одинаковых рабочих станций или привязки к одной технологии.

Что мы хотим?

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

Способ первый, без затрат.

Хотим мы получить инфу о начинке системных блоков организации, например для составления плана модернизации. Вы слышали про встроенную в Windows команду SYSTEMINFO? А она очень полезная. Даст вам информацию о всей системе в удобоваримом виде:
Имя узла: VIRTUAL-PC Название ОС: Microsoft Windows 7 Версия ОС: 6.1.7601 Service Pack 1 сборка 7601 Изготовитель ОС: Microsoft Corporation Параметры ОС: Рядовая рабочая станция Сборка ОС: Multiprocessor Free Зарегистрированный владелец: virtual Зарегистрированная организация: Код продукта: ****************** Дата установки: 12.03.2011, 5:28:25 Время загрузки системы: 15.02.2012, 13:21:15 Изготовитель системы: innotek GmbH Модель системы: VirtualBox Тип системы: X86-based PC Процессор(ы): Число процессоров — 1. : x64 Family 6 Model 15 Stepping 11 Genuin eIntel ~2574 МГц Версия BIOS: innotek GmbH VirtualBox, 01.12.2006 Папка Windows: C:\Windows Системная папка: C:\Windows\system32 Устройство загрузки: \Device\HarddiskVolume1 Язык системы: ru;Русский Язык ввода: en-us;Английский (США) Часовой пояс: (UTC+04:00) Волгоград, Москва, Санкт-Петербург Полный объем физической памяти: 631 МБ Доступная физическая память: 248 МБ Виртуальная память: Макс. размер: 1 655 МБ Виртуальная память: Доступна: 1 056 МБ Виртуальная память: Используется: 599 МБ Расположение файла подкачки: C:\pagefile.sys Домен: *********** Сервер входа в сеть: \\SERVER Исправление(я): Число установленных исправлений — 54. Сетевые адаптеры: Число сетевых адаптеров — 2. : Intel(R) PRO/1000 MT Desktop Adapter Имя подключения: Подключение по локальной сети DHCP включен: Нет IP-адрес : 192.168.16.170 : Intel(R) PRO/1000 MT Desktop Adapter Имя подключения: Подключение по локальной сети 2 DHCP включен: Нет IP-адрес : 192.168.19.1 : ****::25e7:a222:dc08:****
Просто и понятно.
Но не бегать же по всей фирме запуская консоль и копируя вывод команды в текстовик на какой-нибудь шаре. У нас в компании такое в принципе невозможно, политиками запрещено пользователям запускать CMD, а при использовании «Запуск от имени» все переменные окружения летят в тартарары. Что делать? ВАШЕМУ ВНИМАНИЮ PS-TOOLS!
А конкретнее входящяя в её состав утилита psexec.exe. Но не PSEXEC-ом единым жив человек, вывода на экран нам мало, нам бы это ещё и сохранить всё это безобразие, да желательно с комфортом.
Всё предельно просто:

  • Создаём шару с правами на запись всем подряд, а то мало ли какие урезанные права у рабочих станций (sic! Именно станций, потому как права пользователей этих станций нам не интересны, всё будем делать от своего имени). Ну например \\share\audit\
  • Рисуем файлик в нашими айпишниками. Дело в том, что psexec по неясным причинам не понимает диапазоны адресов типа 192.168.0.1-192.168.0.254 или 192.168.0.0/24. Его, конечно, можно обмануть и подсунуть подобное, но это не стабильно и вредно, ниже объясню почему. Я пользуюсь OO Calc для создания списка IP-адресов. В итоге получаем текстовик (.txt) с примерно таким содержимым:
    192.168.0.1 192.168.0.2 … 192.168.0.254
    192.168.16.255 — широковещательный и не нужно его использовать. Так же из списка можно исключить адреса оборудования и серверов к которым Вы подключаться не хотите. Можно использовать и список с именами компов, но я так не делаю.

Далее, открываем cmd и пишем:
psexec.exe @c:\ip-list.txt -d -n 12 systeminfo > \\share\audit\%COMPUTERNAME%.txt
ip-list.txt — это текстовик с ip-адресами.
-d — значит, что psexec не будет ждать пока команда исполнится, а просто запустит systeminfo как демон и отключится от клиента.
-n 12 — это период ожидания ответа клиента (вообще-то правельнее СЕРВЕРА, но так и запутаться недолго), у меня 12 секунд. Если за это время не удастся подключится, то psexec его пропустит. Для пустых IP это не нужно, а вот ко всяким сетевым принтерам и т.п. psexec может пытаться подключится долго и нудно.
Когда скрипт отработает, в \\share\audit\ мы получим кучу текстовиков названых по именам компьютеров в сети. Что с ними дальше делать я попозже расскажу.
Всем хорош этот способ и быстр и прост, но есть у него и недостатки.

  • Тут информация только по содержимому коробки системного блока и чуть-чуть по Windows.
  • Хотя установленные программы хранятся внутри системного блока про них тоже ничего не выводится
  • Даже по внутренностям мало информации, например нет ничего про тип оперативной памяти, только объём. Да и процессор освещён весьма скудно.

Хочу ВСЁ знать

И когда уже недостаточно только отчёта встроенной утилиты на помощ приходит AIDA64 от FinalWire. это тот же EVEREST только уже купленный другой компанией и которому было возвращено историческое название.
В принципе можно обойтись покупкой Business Edition и установкой на все станции. потом разрешить им обмениваться информацией и подключатся друг к другу на коком-нибудь порту, после чего клепать отчёты из приятного интерфейса. Но, во-первых это не тру, а во-вторых с автоматизацией процесса могут возникнуть заминки.
Я обхожусь Extreme Edition, всё то же самое но без сетевых отчётов.
Что бы начать вкушать плоды автоматизации нужно несколько несложных операций.

  1. Повторяем этапы подготовки для Systeminfo
  2. Ставим AIDA64
  3. Копируем папку с установленной AIDA64 из Program Files куда-нибудь на общедоступную шару. Например \\share\audit\aida
  4. В AIDA идём в мастер отчётов

    Пункт «По выбору пользователя»
  5. И здесь выбираем нужную нам информацию.

    Главное не переусердствуйте. Слишком большое количество выбранных пунктов существенно нагрузит клиентские машины, к тому же получится огромный, чрезмерно избыточный отчёт, около 1Mb текстовой информации.
  6. Жмём далее и выбираем нужный тип отчёта. Я рекомендую TEXT или XML, их проще разбирать.
    Затем нажимаем Готово и получаем отчёт по нашей машине. В папке программы появится файлик aida64.rpf. Его мы копируем туда же в шару, где у нас лежит исполняемый файл: \\share\audit\aida.
    Мой файл выглядит так:
    ReportProfile=»Custom» ProfileFile=»\\share\audit\aida\aida64.rpf» ReportFormat=»txt» (не важный параметр, мы будем его подменять в консоли) RemoteReportFolder=»C:\Users\***\Documents\AIDA64 Reports» (не важный параметр, мы будем его подменять в консоли) RemoteReportFileName=»$HOSTNAME» (не важный параметр, мы будем его подменять в консоли) InfoPage=»Computer;Summary» InfoPage=»Computer;Computer Name» InfoPage=»Computer;DMI» InfoPage=»Computer;Sensor» InfoPage=»Motherboard;CPU» InfoPage=»Motherboard;CPUID» InfoPage=»Motherboard;Motherboard» InfoPage=»Motherboard;Memory» InfoPage=»Motherboard;Chipset» InfoPage=»Motherboard;BIOS» InfoPage=»Operating System;Operating System» InfoPage=»Server;Share» InfoPage=»Server;Opened Files» InfoPage=»Display;Windows Video» InfoPage=»Display;GPU» InfoPage=»Display;Monitor» InfoPage=»Storage;Logical Drives» InfoPage=»Storage;Physical Drives» InfoPage=»Network;Windows Network» InfoPage=»Software;Installed Programs»
  7. Готово!

Теперь используя всё тот же psexec.exe пришем простенький скрипт который будет запускать AIDA на рабочих станциях с нужными нам параметрами:
psexec.exe @c:\ip-list.txt -d -n 12 \\share\audit\aida\aida64.exe /R \\share\audit\%COMPUTERNAME% /TEXT /CUSTOM \\share\audit\aida\aida64.rpf
Параметр /R <путь> — означает что аида не будет выводить отчёт на экран, а будет складывать его по указанному пути. %computername% — это переменная окружения cmd и на каждом компьютере где мы будем запускать Aida она будет соответствовать имени компьютера. Можно использовать любую другую переменную, но так удобнее всего.
Параметр /TEXT — предопределит тип создаваемого отчёта и автоматически подставит нужное расширение файла, поэтому после %computername% не нужно ставить .txt (%computername%.txt) иначе получим %computername%.txt.txt
Параметр /CUSTOM — даёт понять AIDA откуда брать список нужных компонентов отчёта.
Вот и всё. Запускаем эту строку в CMD и смотрим как в шару складываются очень подробные отчёты включающие в себя полную информацию по всей периферии.

В домене

Я добавил исполнение этого скрипта (без части с psexec) в Startup Scripts в политиках домена.
Это было бы не правильно без некоторой доработки, в итоге скрипт в политиках выглядит так:
if not exist \\share\audit\%COMPUTERNAME%.txt ( \\share\audit\aida\aida64.exe /R \\share\audit\%COMPUTERNAME% /TEXT /CUSTOM \\share\audit\aida\aida64.rpf ) else exit
Благодаря этому, при загрузке, каждый компьютер в сети проверяет, посылал ли он отчёт и если нет, то делает его, а если да, то не делает ничего.
А для того что бы обнавить данные по одной или нескольким машинам, я просто удаляю или переношу соответствующие очёты и через некоторое время у меня свежая инфа.
Внимание: на некоторых экзотических аппаратных платформах (которые AIDA не распознаёт) отработка программы вызывает сбои и даже падения, редкость, но имеет место. По этому на критически важных рабочих станциях и серверах отчёты лучше делать вручную. Полноценно запуская AIDA64 в графическом режиме, тогда компьютер не выдаёт ошибок, а AIDA просто не запускается.

Разбор полученных логов

Я сохраняю отчёты в простом текстовом виде так как пользуюсь для их разбора и анализа bash скрипты, а шара для хранения отчётов хранится на linux машине. По этому если я хочу узнать обо всех машинах: их имя,ip и mac, количество установленной памяти, то делается примерно следующее:
iconv -f cp1251 ./*.txt | egrep -i «Имя компьютера|с ip|с mac|Тип ЦП|Системная память»
Это простейшая обработка, но когда освою парсинг XML на каком-нибудь языке, конечно перейду на отчёты в этом формате.

Лирика

Можно обсудить ещё и возможность удалённого включения рабочих станция, да и управление компьютерами по сети не последний вопрос. Но ничего универсальнее Wake On Lan ещё не изобрели, а многообразие средств удалённого управление столь велико, что не уместится в рамки этой статьи. Тем более это дело вкуса.
UDP: Neuronix подсказал про OCS NG + GLPI. Красивый и удобный сервер под *nix c поддержкой графиков и отчётов + клиентские части под все возможные ОС. У меня, правда, возникли проблемы с клиентами под Windows 7, но возможно от неестественной кривизны рук. Решение стационарное, нужен какой-нибудь сервер.
UDP2: Да AIDA64 платная, но нам вполне хватит триала, по части консольного использования ничем не ограниченного.
UDP3: Решение с AIDA64 полностью portable. Скинуть всё необходимое на флешку, использовать относительные пути в скриптах и по приходу в любую фирму понадобится только компьютер и права админа.

Обзор Total Network Inventory — утилиты для автоматической инвентаризации парка компьютеров

С ростом компьютерного парка в организациях возрастает опасность забыть, какое периферийное устройство находится внутри той или иной рабочей станции, или вообще потерять одно из них. Потеря может произойти из-за халатности сотрудника отдела технического обеспечения или по злому умыслу работника, решившего улучшить быстродействие своего домашнего компьютера за счет фирмы. У начальника технической службы или системного администратора существует несколько путей для недопущения такого рода происшествий. Например, можно опломбировать корпуса системных блоков и проводить регулярную инспекцию целостности пломб. Можно производить опись компонентов каждое утро (или вечер). Также действенным может оказаться установка средств визуального наблюдения. Все эти методы имеют свои плюсы и свои минусы. Основным минусом этих средств является повышенная их трудоемкость, а также весьма серьезная затратная часть (средства визуального наблюдения, пломбы, увеличенное рабочее время для контроля). Подобные минусы отсутствуют у еще одного варианта учета — программного.

Система Total Network Inventory от Softinventive позволяет вести полный учет программного обеспечения, установленного на компьютере, а также осуществлять контроль аппаратной части компьютеров офисов, малых и больших корпоративных локальных сетей. Не сходя со своего места, администратор может просканировать сеть и получить исчерпывающую информацию о каждом компьютере. Никаких предварительно установленных модулей не требуется — они устанавливаются автоматически. Программа позволяет сканировать сеть как в реальном времени (немедленно), так и, используя скрипт, в момент подключения клиента к домену.

Внешний вид программы

Total Network Inventory имеет как обязательный в наше время мастер, дающий пользователю при минимуме напряжения мозга получить весьма впечатляющий результат, так и режим ручного сканирования, позволяющий пользователю настраивать все параметры самостоятельно. Возможности сканера впечатляют. Сканирование ведется по трем видам информации: по оборудованию, по установленному программному обеспечению, а также по системной информации реального времени (запущенные в системе процессы, службы, общие ресурсы, переменные среды).

Внешний вид программы напоминает «Проводник», наглядно отображая в левой панели дерево локальной сети с разбивкой на группы. Название группы соответствует положению рабочей станции в иерархии сети либо выбирается пользователем вручную. При выборе компьютера в центральной части главного окна программы отображается информация о нем. Детализация о той или иной подсистеме выбирается на основании отмеченной категории в соответствующей панели, отображаемой справа. Интерфейс у программы масштабируемый и легко поддается настройке на свой вкус. Большое количество визуальных тем оформления, настраиваемые панели, инструменты, а также насыщенность клавиатурными сокращениями позволят даже самому привередливому пользователю адаптировать интерфейс программы под себя.

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

Мастер сканирования сети

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

При сканировании компьютеров, используя логон-скрипт, администратор получает возможность добавить строку вызова программы-сканера в доменный логон-скрипт, позволяя собирать информацию о каждом компьютере, который подключается к домену, используя данный скрипт (при установленной и запущенной службе WMI). Мастер позволяет выбрать общую папку, куда помещаются файлы программы-сканера, и папку для сохранения результатов сканирования. Далее, модифицировав логон-скрипт, администратору остается только ждать, когда пользователи начнут подключаться к домену, и время от времени контролировать информацию, полученную с помощью программы.

Онлайн-сканирование имеет большее количество шагов для достижения результата. Этот тип сканирования подразумевает два варианта поиска компьютеров: «Сетевое окружение» и «Диапазон IP-адресов». В первом случае программа просматривает дерево компьютеров, видимых через сетевое окружение. Этот вариант позволяет администратору увидеть структуру своей сети Microsoft Windows (рабочие группы, домены) и визуально выбрать узлы для сканирования. Если же сетевое окружение отображается медленно, или у администратора есть несколько подсетей для сканирования, или с ними нет NetBIOS-соединения, следует выбрать второй путь — «Диапазон IP-адресов». Данный путь позволит задать один или несколько диапазонов адресов, по которым будет производиться сканирование. В каждом из вариантов нужно указать имя пользователя с соответствующими привилегиями (имеющего права работы с административными ресурсами).

Два варианта поиска компьютеров — «Диапазон IP-адресов» и «Сетевое окружение»

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

  • имя компьютера;
  • инвентарный номер;
  • зарегистрированный пользователь;
  • стоимость компьютера;
  • название организации;
  • дата оплаты и установки;
  • рабочая группа или домен компьютера;
  • IP-адрес;
  • персональные данные;
  • дополнительные информационные поля.

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

Полнота информации, собираемой Total Network Inventory, позволяет вести наблюдение за любой аппаратной или программной составляющей системы, отслеживая любые изменения и своевременно реагируя на них. Для эффективной работы с данными в программе предусмотрена панель категорий, дублируемая кнопками на панели инструментов. Пользователь, выбирая категорию, получает исчерпывающую информацию о ней. Например, при выборе подкатегории «процессор» из категории «оборудование» программа выдаст все о процессоре, начиная от его названия и заканчивая напряжением ядра и частотой работы кеш-памяти второго уровня.

Содержимое панели категорий отбора

Для упорядочивания всего этого океана информации в системе предусмотрен построитель отчетов. Используя меню «Отчеты» или нажав соответствующую кнопку на панели инструментов, пользователь получает доступ к инструментарию, связанному с отчетами. Построитель способен сводить в удобной форме данные на основе выбранных пользователем критериев. Критерии отбора в программе условно разделены на четыре основные группы: общая информация, оборудование, программы, другое. При переключении в режим построения отчетов администратору становятся доступны инструменты работы с отчетами, а также множественный выбор критериев в соответствующей панели. Благодаря этому у оператора программы Total Network Inventory существует множество возможностей для контроля текущей ситуации с технико-программной базой офисной или корпоративной сети. В зависимости от реалий той или иной фирмы программа предоставляет возможность воспользоваться либо предустановленными схемами отчетов, либо создать свою, наиболее полно отображающая требуемую картину с техникой. В меню «Отчеты» собраны схемы отображения отчетов. Они (отчеты) делятся на две группы: полные и краткие. Например, отчет по критерию «Компьютер и мат. плата» в полном виде занимает страницу и содержит подробную информацию. Это информация о системном блоке, материнской плате (производитель, имя, серийный номер, версия), информация BIOS (имя, производитель, дата выпуска, версия SMBIOS). В краткой же форме этот отчет занимает треть страницы и в нем сведена та же информация, но без конкретизации по датам, серийным номерам и прочему.

Отчет

Построитель позволяет генерировать отчеты как для всей сети, так и для выбранных в панели «Обзор сети» компьютеров или групп. Вы можете включить в отчет любое количество компьютеров и категорий в любой комбинации, то есть выбрать несколько компьютеров из разных сетей или групп, сочетая это с любой комбинацией информационных категорий. Полученный отчет администратор может сохранить во внутреннем формате, а также в формате текстового файла ASCII, HTML-, CSV- и RTF-файла. В случае надобности отчет можно распечатать.

И, наконец, настройки программы. В зависимости от настроек безопасности сети, а также конфигурации сети программа позволяет настроить варианты соединения с удаленными станциями. Это может быть либо использование в соединении именованных административных каналов по протоколу SMB, либо подключение к службе WMI через протокол RPC, либо их комбинации. Также настройки позволяют администратору учесть наличие или отсутствие в сети DNS-сервера и определить, разрешать ли IP-адреса при сканировании или нет. Множество остальных настроек позволяют весьма гибко управлять теми или иными параметрами программы в зависимости от текущей надобности администратора или конфигурации локальной сети.

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

Инвентаризация Компьютеров в Сети

Инвентаризация Компьютеров в Сети Инвентаризация Компьютеров в Сети — удобный инструмент для проведения учета компьютерной техники и программного обеспечения Вашей сети. Программа предоставляет множество возможностей для контроля лицензионной политики ПО любого предприятия. Помимо отчета с детальной информацией об установленном в сети программном обеспечении, можно создавать отдельные отчеты со списком программ, сгруппированных по названию, версии, разработчику и др. Каждой программе можно присвоить такие статусы, как разрешенная, запрещенная или обязательная к установке и в считанные минуты получить, например, отчет со списком компьютеров с нелицензионным программным обеспечением. Вести учет оборудования в сети также очень удобно. Программа соберет детальную информацию по аппаратному оснащению каждого компьютера в сети, на основании которой можно планировать обновление компьютерного парка предприятия. Всю информацию по программному и аппаратному обеспечению сети программа предоставляет в виде отчетов. В отчёты можно включать любые, необходимые для анализа, комбинации параметров по любым компьютерам в сети. Для упрощения процедуры построения отчётов составлены готовые шаблоны. Более того, любые из составленных отчетов можно экспортировать в различные форматы (HTML, CSV, TSV, SQL, XML) и распечатать.

ВОЗМОЖНОСТИ ПРОГРАММЫ

Учёт программного обеспечения и аудит лицензий

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

Инвентаризация и учёт аппаратного обеспечения

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

Контроль изменений конфигурации ПК пользователей

Программа отслеживает все изменения в конфигурациях удалённых ПК. Если кто-то удалил или поставил новую программу, подключил или отключил устройство, программа занесёт эту информацию в Журнал изменений и вы сможете провести анализ. Вы также можете получать оповещения о новых изменениях по электронной почте.

Контроль здоровья жёстких дисков и компьютеров

Программа проводит удалённую диагностику и обнаруживает проблемные ПК. Осуществляйте мониторинг состояния и температуры жестких дисков ПК с помощью S.M.A.R.T. удаленно по сети. Или если не установлен/устарел антивирус, кончается место на дисках, вы узнаете о проблемах и сможете устранить их до потери данных пользователем.

Подготовка и планирование апгрейдов

Создайте отчёт, содержащий компьютеры с недостаточным объёмом памяти (например, все ПК с объемом RAM меньше 2 ГБ), маленькими мониторами и старыми процессорами. Вовремя проведённый апгрейд позволит сэкономить средства и улучшить продуктивность сотрудников предприятия.

Отчёты и экспорт инвентарной информации

Все данные, содержащиеся в программе, можно выгрузить во внешние СУБД для более детального анализа. Программа содержит более 100 готовых отчётов, систему фильтрации и дизайнер отчетов для отбора данных по условиям и подготовки практически любого отчёта. Если не найдёте нужного — обращайтесь к нам. 🙂

ДОСТИЖЕНИЯ

Лауреат премии «Российское ПО 2014: инновации и достижения» журнала PC Magazine.

14.12.2014: «ПК опрашиваются в фоновом режиме, предоставляя администратору актуальные отчеты о комплектующих и программах, установленных на компьютерах. Пакет позволяет загружать информацию с ПК за маршрутизаторами и NAT, извлекать данные с ноутбуков и Android-гаджетов мобильных сотрудников.»

Лауреат награды «PC Magazine/RE. Лучшее ПО 2013 г.»

12.12.2013: «Удобная система инвентаризации ИТ-инфраструктуры, что особенно полезно в компаниях СМБ с их «зоопарком» оборудования. Система фиксирует марки оборудования, конфигурацию ПК, версии ПО и лицензии. Одна из самых полезных возможностей — отслеживание изменений в оборудовании, дающая возможность обнаруживать выход из строя, пропажу или подмену комплектующих.»

02.10.2007: «Мощный инструмент для централизованной инвентаризации аппаратного и программного обеспечения компьютеров локальной сети. Позволяет обнаруживать компьютеры в сети и собирать информацию о них в базу данных… Возможность выбора в отчет компьютеров, конфигурации которых удовлетворяют заданному условию, упрощает решение таких задач, как планирование модернизации.»

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *