It invent не сканирует компьютеры в сети

Обновлено: 28.06.2024

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

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 на подчиненных компьютерах:

Как ты понимаешь, после '-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> Get-WmiObject Win32_OperatingSystem | Select CSName,Buil
dNumber,ServicePackMajorVersion

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

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

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

PS> Get-WmiObject -List | where name -match "disk">

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

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

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

> SchTasks /CREATE /TN CheckScript /TR "powershell.exe `
-noprofile -executionpolicy Unrestricted `
-file check.ps1" /IT /RL HIGHEST /SC DAILY

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

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

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

PS> Get-ItemProperty HKLM:\SOFTWARE\Microsoft\
Windows\CurrentVersion\Uninstall\* | Format-Table
DisplayName,Publisher | Out-GridView

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

Минусы использования скриптов

Если сбор данных при помощи WMI/PowerShell довольно прост, то все отчеты и изменения в конфигурациях приходится контролировать вручную. Конечно, можно усложнять свои скрипты, пытаясь автоматизировать процесс, но не каждый захочет тратить на это время. Здесь стоит напомнить, что Microsoft предлагает необходимую функциональность в SCCM (System Center Configuration Manager), о котором мы уже писали в номерах 08.2009, 09.2009 и 01-02.2010. Но в тех случаях, когда в распоряжении админа находятся также *nix системы, всевозможные роутеры и прочее оборудование, которое необходимо учитывать, WMI — уже не помощник. Кроме того, остается проблема визуального представления данных и отчетов. Здесь придется прибегнуть к сторонним программам (в том числе распространяемым под свободными лицензиями), благо, есть из чего выбирать.

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

Для работы 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. Записи внутри нужно привести в соответствие с данными:

Локализация интерфейса производится установкой переменной “$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 сервера.

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

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

Система OCS Inventory NG

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

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

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

Установка Ocsng

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

$ sudo apt-get install libapache2-mod-perl2
libdbi-perl libapache-dbi-perl libdbd-mysqlperl
libsoap-lite-perl libxml-simple-perl
libnet-ip-perl libcompress-zlib-perl php5-gd

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

$ sudo cpan -i XML::Entities

$ sudo apt-get install libcompress-zlib-perl libnet-ipperl
libnet-ssleay-perl libwww-perl libxml-simple-perl
po-debconf ucf dmidecode pciutils

После чего агент устанавливается стандартным для 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-файл, содержащий текущую конфигурацию компьютера. Если же соединения не произошло, запусти агент в режиме отладки:

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

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

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

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

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

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

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

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

Заключение

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

Локализация OCSNG/GLPI

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

Дело в том, что в OCSNG изначально используется кодировка ISO-8859-1 (для отображения CP1251), в GLPI — UTF8. При импорте данных OCSNG -> GLPI также возникают проблемы с кодировками.

Известно два пути решения:

Кроме того, в файле inc/ocsng.class.php следует изменить строку «$this->dbenc="latin1";» на «$this->dbenc="utf8";» и в /etc/php5/apache2/ php.ini проверить установку «default_charset = "utf-8"».

Links

Проект GLPI

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

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

Теперь пытаюсь перейти на БД SQL у меня такая ошибка (цифра 1).
Окно подключения программы IT Invent (цифра 2). Нажимаю проверить соединение и ошибка.

На SQL сервере крутятся 1С БД. Порты открыты для подключения, TCP соединение включено. 1С предприятие (клиентская) - по сети к SQL серверу прекрасно коннектится. База данных IT Invent создана по образу 1С-вских БД. Модель восстановления простая, совместимость с 2008 sql сервером, авторизация SQL сервера, владельца БД назначил пользователя с ролями: dbcreator, processadmin, public. Его же указываю для подключения в окошке программы ITInvent. В инструкции размещенной на сайте IT Invent , правда при создании БД они не указывают владельца.

Разработчику или в службу поддержки программы IT Invent обращался, вразумительного ответа не дали.
Сказали только, что вопрос подключения к MS SQL слишком общий.
Возможно есть некое имя инстанса (алиас (псевдоним)) сервера и его нужно указывать после IP адреса: 192.168.3.100/ИмяИнстанса

Хотя я пробовал по разному. Если указывать конкретно IP сервера или его имя, тогда ошибка - недопустимое соединение.
Если указывать дополнительно с именем или IP адресом сервера алиас SQL и "/" и с другим "\" слешами - то ошибка доступа к серверу или неверно указаны учетные данные, как то так.

WarAnt
результат команды telnet 192.168.3.100 1433?

Тут не совсем понятно, а что должно быть? Ранее когда в "Диспетчер конфигурации SQL Server" был отключен порт 1433, так и писало, что не возможно соединиться по данному порту. Теперь когда включил настраивая программу IT Invent, вот что происходит Рис. 2

ОК, попробовал. Снова ошибка. Поставщика данных выбрал Microsoft OLE DB Provider for SQL Server, когда нажал выбирите сервер, он нашел мой SERVER1. Указал учетные данные для подключения. Нажал выберите БД и аля оп ((

Konst_One
ЗЫ
поставьте себе на клиента клиентскую часть SQL Server (и SSMS)

как ее поставить? взять дистрибутив SQL 2008 и выбрать только одну компоненту?
и извиняюсь за тупой вопрос, что мне это даст? например, для настройки чего либо ч/з SSMS мне не сложно зайти на сервер
или это как то может решить мою проблему?

InventIT это пользователь созданный в SSMS в безопасности (имя входа) он же владелец БД DB_INVENT. Авторизация на сервере средствами SSMS под InventIT - проходит на ура.

с клиентского ПК все выполнил:
tracert server1 tracert 192.168.3.100 ping server1 ping 192.168.3.100

WarAnt
а ваш inventit какие вообще права на сервере имеет, судя по ошибке ему даже просмотр списка баз запрещен.
хотя нет, глупость сморозил:)

как уже выше написал пользователь InventIT создан через SSMS. В серверной винде в локальных пользователях его нет.

LSV
Мож дело в галочке SSMS "Allow remote connections to this server" ?

Стоит.

1. Выберите или введите имя сервера:
192.168.3.100\ULTRASQL
Пользователь: sa
Пароль: *****

1. Попробуйте соединиться с клиента к серверу через ODBC (Панель управления\Система и безопасность\Администрирование\Источники данных ODBC)

Читайте также: