Срочная инвентаризация. Или хочу всё знать. Инвентаризация серверов без отвращения. Фигуры и задний фон

Применимо к:Windows Server 2012, Windows Server 2012 R2

В этом техническом обзоре рассказывается о функции инвентаризации программного обеспечения, которая была представлена в Windows Server 2012 R2 и позволяет упростить для администраторов центра обработки данных задачу ведения журналов управления лицензиями на ПО как активами Майкрософт для своих развертываний. Прежде чем использовать инвентаризацию программного обеспечения в Windows Server 2012 R2, установите обновление Windows KB 3000850 и KB 3060681 в каждой системе Windows Server 2012 R2, подлежащей инвентаризации. Эта функция выполняется локально на каждом сервере, подлежащем инвентаризации. Сбор данных с удаленных серверов не выполняется.

Функцию инвентаризации программного обеспечения можно также добавить в две версии Windows Server, предшествующие Windows Server 2012 R2 . Для добавления функции инвентаризации программного обеспечения в Windows Server 2012 и Windows Server 2008 R2 SP1 можно установить следующие обновления:

    Windows Server 2012 (выпуски Standard или Datacenter)

    Примечание

    WMF 4.0 .

    • Пакет обновления WMF 4.0 для Windows Server 2012: KB 3119938
  • Windows Server 2008 R2 с пакетом обновления 1 (SP1)

    Примечание

    Прежде чем применять следующий пакет обновления, убедитесь, что у вас установлено приложение WMF 4.0 .

    • Пакет обновления WMF 4.0 для Windows Server 2008 R2: KB 3109118

Описание компонента

Журнал инвентаризации программного обеспечения в Windows Server - это компонент с простым набором командлетов PowerShell, который помогает администраторам получить список программ Майкрософт, установленных на их серверах. Он также предоставляет возможность периодически собирать и перенаправлять эти данные по сети с помощью протокола HTTPS для статистической обработки. Управление этим компонентом, главным образом для ежечасного сбора и перенаправления, также выполняется с помощью команд PowerShell.

Примечание

Сервер статистической обработки, запущенный в веб-службе, можно настроить отдельно. См. дополнительные сведения о .

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

Практическое применение

Интерфейсы инвентаризации программного обеспечения предназначены для сокращения эксплуатационных расходов на получение точной информации о программном обеспечении Майкрософт, локально развернутом на сервере, особенно на множестве серверов в ИТ-среде (при условии, что компонент развернут и работает в ИТ-среде). Возможность перенаправлять эти данные на сервер агрегации (если это задано ИТ-администратором) позволяет собрать данные в одном месте с помощью универсальной автоматической процедуры. Несмотря на то, что аналогичный результат можно получить при опросе интерфейсов напрямую, инвентаризация программного обеспечения при использовании архитектуры перенаправления (по сети), запускаемой на каждом сервере, позволяет устранить множество проблем с обнаружением компьютеров, типичных для многих сценариев инвентаризации программного обеспечения и управления активами. Для защиты данных, перенаправляемых по HTTPS серверу агрегации администратора, используется протокол SSL. Если все данные находятся в одном месте (на одном сервере), их проще анализировать, с ними проще работать, на их основе проще создавать отчеты. Важно отметить, что ни один фрагмент этих данных не передается в Майкрософт в процессе работы компонента. Компонент ведения журнала инвентаризации программного обеспечения и предоставляемые им функции предназначены исключительно для использования владельцем и администраторами лицензированного серверного программного обеспечения.

Журнал инвентаризации программного обеспечения может помочь администраторам серверов в осуществлении следующих задач.

    Удаленное получение информации о перечне программного обеспечения и серверов по запросу от Windows Server.

  • Tutorial

Доброго дня почтенной публике.

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

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

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

И тут возникает вопрос: а что же ожидает бухгалтер от ИТ-подразделения? Ответ прост, их интересует всего лишь одно: на месте ли предмет с инвентарным номером ABC1234? Несколько более продвинутого бухгалтера может также заинтересовать, соответствует ли всё ещё инвентарному номеру ABC1234 то изделие, которому этот номер был присвоен? Другими словами, не пытаются ли нам выдать микроволновку LG за дисковое хранилище HP EVA P6000? Иногда нас еще волнует вопрос, соответствует ли изделию с этим инвентарным номером заранее известный нам заводской номер - этот вопрос мы тоже решим. Следует также понимать, что упомянутая микроволновка от упомянутого дискового хранилища с точки зрения бухгалтера отличается именно что инвентарным номером (ну там есть еще стоимость, амортизация и так далее, но, по счастью, это уже не айтишная головная боль). А это понимание нас приводит к дополнительному бонусу: мы легким движением руки можем выстроить прекрасные отношения не только с бухгалтерией, но и с тем подразделением, что учитывает шкафы, столы и стулья, предоставив им удобный инструмент для работы. Кстати, заодно мы решим еще одну задачу: облегчение идентификации оборудования, принадлежащего вашей компании - это поможет вашим коллегам из сторонних организаций легко определить, кто забыл ноутбук в их переговорке.

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

А, и еще я предполагаю, что у вас установлен Microsoft Office. Всю работу мы будем делать именно в нем.

Итак, наш первый шаг - изготовление правильной инвентарной этикетки.

Правильная инвентарная этикетка это то, чего как правило нет нигде. Как делают инвентарную этикетку, если вообще ею заморачиваются? Пишут туда то, что не нужно, не пишут то, что нужно, изготавливают ее неподобающим инструментом (например, ленточным принтером LetraTag - вещь прикольная, только вот не контролирует уникальность вводимых данных и изготовить на ней пару тысяч этикеток без ошибок невозможно. Хоть раз, да облажаешься.)

Правильная инвентарная этикетка, с моей точки зрения, должна содержать:
1. Краткое название объекта хранения (чтоб ни у кого не возникало соблазна при увольнении, например, наклеить инвентарник от дорогого ноутбука на дырокол).
2. Собственно, инвентарный номер объекта
3. Машиночитаемый инвентарный номер - здесь уместен и достаточен только штрихкод. Я видел предложение кодировать информацию QR-кодом, оно ужасно, и я быстро объясню, почему: это решение не предполагает быстрого и массового ввода информации в компьютер. Сканер баркодов представляет собой с точки зрения компьютера usb-клавиатуру, считывание баркода приводит к отправке в компьютер символьной последовательности закодированного текста, как если бы его набрали руками на клавиатуре и нажатию кнопки Enter. Соответственно, при желании можно идти по офису с ноутбуком, к которому подключен сканер бар-кодов, снимать код за кодом и получить на выходе инвентарную таблицу. Будете использовать QR-коды - такого у вас не получится. Ну сосканируете вы код телефоном, ну распознаете, а что дальше?
4. Логотип компании

Сейчас мы это все и сделаем, причем не потратим ни копейки на софт для того, чтобы сделать действительно годную штуку.

Для начала мы получаем в бухгалтерии таблицу с инвентарными номерами и описанием позиций. Не смущаемся, что там много текста в описаниях, он нам нужен, чтобы понимать, о чем идет речь, но печатать на этикетках мы будем свое и сами.
Важно: то, что мы получили инвентарную таблицу от бухгалтерии в электронном виде, дает нам 100% гарантию того, что мы будем делать этикетки с
заведомо правильными инвентарными номерами.
Не менее важно: убедитесь, что инвентарные номера не содержат кириллицы. Если содержат - решите этот вопрос, пока не начали делать всё остальное.

Итак, исходный вид таблицы (описания позиций взяты из реальной жизни, инвентарные номера и логотип компании - нет, но это неважно):

Таблица хороша, будем ее дорабатывать. Введем еще несколько колонок:
Line 1 - сюда мы впишем тип устройства (ноутбук, МФУ, сервер или что там у вас еще есть)
Line 2 - сюда мы впишем марку и модель устройства (например HP Elitebook 6930p)
Barcode - сюда мы вставим баркод-представление нашего инвентарного номера. Об этом чуть ниже.
Sheet - не менее важный параметр. Он нужен для того, чтобы легко находить нужную этикетку на этикеточном листе. Если вы решитесь делать все с нуля по моему рецепту, у вас образуется прорва листов, на которых будут некоторым образом упорядоченные этикетки. Проблема в том, что оборудование разбросано по офису абсолютно хаотичным образом, и, подходя к очередному устройству, вы вряд ли захотите перелопачивать все свои 50-60 листов по 48 этикеток на листе. Позаботьтесь о себе заранее, укажите, на каком листе у вас находится нужная вам этикетка: первые 48 записей - лист 1, с 49 по 96 - лист 2 и так далее. Уверен, справитесь.

Самый важный момент - как же транслировать инвентарный номер в баркод-представление.

Чуть не забыл: к этому моменту у вас под рукой уже должны быть инвентарные этикетки, на которых мы все и будем печатать. Я использую этикетки Avery L6009-20, чего и вам желаю. Они имеют оптимальный размер (45.7 x 21.2 мм), они прочные, они хорошо клеятся и хорошо проходят через лазерный принтер. С моей точки зрения, идеал. Вы можете использовать другие размеры, в этом случае делайте соответствующие поправки при создании макета.

Итак, Avery Wizard для Microsoft Office установлен, открываем MS Word, в нем уже появилось меню Avery c единственной кнопкой:

Нажимаем ее, запускаем плагин, нажимаем очевидное «Далее». В меню выбора этикеток находим нужный нам сорт L6009:

В следующем окне выбираем «Слияние данных из существующего файла», жмем «Далее».

В следующем окне находим и выбираем выбираем созданный нами файл Excel, нажимаем «Далее»

В следующем окне выбираем очевидный «Лист1$» или «Sheet1$», не забываем поставить чекбокс, что первая строка содержит заголовки:

И в результате получаем окно верстки наклейки. По сути, это все то же окно Microsoft Word с практически всеми инструментами верстки текста. В правой части окна верстки имеется список полей таблицы, двойной щелчок вставляет нужное нам поле данных в нужное место этикетки.

Чтобы сэкономить время верстающим, сразу дам оптимальные величины:
Первая строка – поле Line1: Шрифт Arial, высота шрифта 8пт.
Вторая строка – поле Line2: Шрифт Arial, высота шрифта 8пт.
Третья строка – инвентарный номер: Шрифт Arial полужирный, высота шрифта 10пт.
Четвертая строка – баркод-представление инвентарного номера. Шрифт Barcode, высота шрифта 18пт. Обратите внимание, что во время верстки эта строка выглядит ужасно. Этого не надо бояться, так и должно быть.
Слева остается полно места для размещения логотипа.

Итак, вот наш макет:

И мы в одном шаге от победы.
Нажимаем «Далее», нажимаем «Готово», плагин далее сам раздраконит наш файл данных и подготовит листы с этикетками.

Печатаем этикетки на обчном лазерном принтере, получаем этикеточные листы. Не забываем эти листы пронумеровать. Хотите, можете сделать это через добавление колонтитулов с номером страницы, не хотите - надпишите каждый лист ручкой. Будете делать колонтитул - проконтролируйте, чтоб он не сдвинул содержимое вниз.

Итак, вот у нас этикетки:

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

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

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

Итак, у нас есть чудесные инвентарные этикетки, мы оклеили ими все, до чего смогли дотянуться в нашей организации, при помощи сканера баркодов мы установили соответствие инвентарных номеров заводским - там, где это можно сделать. Мы молодцы? Да. Можно остановиться? Да, но можно сделать и еще лучше.

Сейчас мы можем быстро проинвентаризировать все офисное имущество, но еще не можем ответить на вопрос «где что лежит?».

Давайте сделаем так, чтобы и это было возможно.

Берем в руки план офиса - нас в нем интересует все вообще: как расположены рабочие места, где комнаты печати, где складские помещения, где что еще.

Взяв план, берем карандаш и начинаем нумеровать все, что видим. У себя я применяю следующую схему:
Location/Room/Place
Где:
Location - трехбуквенная аббревиатура офиса. Например, MSW - Москва, SPB - Питер, NSK - Новосибирск и так далее.
Room - номер помещения
Place - номер места в помещении. Это может быть номер стола, за которым сидит работник, номер полки на складе, номер шкафа и так далее.

В результате у нас получается нечто вроде MSW/123/15A

Полученные номера сводим в табличку Excel - в ней будет всего четыре колонки:
Address - адрес рабочего места
Barcode - баркод-представление адреса
Comment - текстовый комментарий для себя любимого. Я в это поле пишу фамилию работника, если речь идет об адресе рабочего места и прочие комментарии, если это требуется обстоятельствами.
Sheet - номер этикеточного листа, мы это уже проходили.

Теперь, имея подготовленную табличку в Excel, формируем этикетки. Не буду перегружать рассказ картинками, просто расскажу готовый рецепт:

Формат наклейки: наклейка белого цвета Avery Zweckform №3659 (97x42.3мм)
Расположение и формат надписей на наклейке:
1. Первая строка - логотип компании
2. Вторая строка – описание типа места (рабочее место, складское место, складское помещение и т.п.) Шрифт Arial, высота шрифта 11пт.
3. Третья строка – идентификатор рабочего места (вот это вот MSW/123/15A ). Шрифт Arial, полужирный, высота шрифта 14пт.
4. Четвертая строка – баркод-представление идентификатора места. Тип кодирования CODE128. Шрифт – Barcode, высота шрифта 18пт.
5. Пятая строка – контактная информация службы ИТ-поддержки.

Заметили?

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

А заодно мы пронумеровали все рабочие места, и теперь любой работник может объяснить, где он находится, не прибегая к языку жестов, HR-служба сможет нам давать заявки на организацию рабочих мест для новых работников, не прибегая к рассказам про «это через стол от Любочки», а новый работник хелпдеска не будет бродить по всему офису в поисках того, кто его позвал, он просто спросит номер рабочего места и посмотрит в поэтажный план, чтобы понять, куда ему идти.

Я намеренно не рассказываю о том, каким софтом пользоваться для сбора и анализа данных. Это может быть и Access, и Excel, и модуль учета 1С, и что угодно еще.
Все, что мы сейчас сделали, может быть интегрировано в любую существующую систему управления активами.

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

В дальнейшем надо просто поддерживать информацию в актуальном состоянии. Задача не из тяжелых.

И, резюмируя:

1. Для управленческого учета вообще не имеют значения начинка компьютеров и характеристики периферии. Имеют значение только инвентарный номер, ФИО материально ответственного лица, местонахождение и, факультативно, заводской номер изделия.
2. Баркоды рулят. Все остальное - не рулит. Из баркодов рулит кодировка Code128.
3. Если что-то можно баркодировать, это нужно баркодировать.
4. Чтобы получить профессионально изготовленные этикетки, надо всего лишь купить этикетки. Софт покупать не надо.
5. Баркод-сканер ускоряет работу в тысячи раз. Даже самый дешевый.
6. При условии, что вы поддерживали инвентарную ведомость в актуальном состоянии, годовую инвентаризацию вы сможете провести практически с той скоростью, с которой вы в состоянии перемещаться по офису. Задиктовывать вслух инвентарные номера и забивать их в компьютер руками вам больше не придется.

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

В общем, я доволен.

Чего и вам желаю.

Добрый день!
Начну без прелюдии!

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

Итак, в скрипт были внесены следующие изменения:
1. Отключены все диалоговые окна, так как процесс работы скрипта был утомительным ибо если компьютер из списка не доступен (а таких было много) приходилось часто щелкать мышью
2. Вывод недоступных компьютеров в отдельную папку в виде файла с именем этого компьютера (вывести в отдельный файл списком не получилось)
3. Выполнения скрипта для каждого компьютера из списка представленного тхт файлом
4. Добавление версии установленной программы
5. Отключение вывода не очень нужной для меня информации

"настройки для инвентаризации программ
Const UPDATES = False "не учитывать обновления
Const TITLE = "Инвентаризация установленных программ" "заголовок диалоговых окон
Const DATA_DIR = "soft\" "каталог для сохранения отчетов + "\" в конце
Const Error_Dir = "Error\" " Каталог для файлов ошибок
"Const DATA_DIR = "\\SRV\Invent\soft\" "сетевой ресурс для сохранения отчетов + "\" в конце

"настройки для инвентаризации обновлений
"Const UPDATES = True "учитывать только обновления
"Const TITLE = "Инвентаризация установленных обновлений" "заголовок диалоговых окон
"Const DATA_DIR = "updates\" "каталог для сохранения отчетов + "\" в конце
"Const DATA_DIR = "\\SRV\Invent\updates\" "сетевой ресурс для сохранения отчетов + "\" в конце

"прочие настройки
Const DATA_EXT = ".csv" "расширение файла отчета
Const SILENT = False "тихий режим отключен, будет запрошено имя компьютера
"Const SILENT = True "режим отчета о локальном компьютере без вывода диалогов
Const HEAD_LINE = True "выводить заголовки в первой строке CSV-файла

"не завершать скрипт аварийно
On Error Resume Next

"== ВЫПОЛНЕНИЕ

"Указываем файл-источник и необходимые переменные
Set FSO = CreateObject("Scripting.FileSystemObject")
Set File = FSO.GetFile("Указать место откуда брать список компьютеров")" Список компьютеров
Set TextStream = File.OpenAsTextStream(1)
Str = vbNullString

"Начало цикла перебора комьютеров

While Not TextStream.AtEndOfStream

"глобальные переменные
Dim comp, wmio

"узнать имя локального компьютера
Dim nwo
Set nwo = CreateObject("WScript.Network")
comp = LCase(nwo.ComputerName)

"запросить имя удаленного компьютера
If Not SILENT Then
comp = TextStream.ReadLine()
"проверить доступность компьютера
If Len(comp) > 0 And Unavailable(comp) Then


Set TextStream1 = FSO1.CreateTextFile(Error_Dir & comp,True) "Создаем файл с именем недоступного компьютера

TextStream1.Close
comp = ""

End If
End If

"провести инвентаризацию
If Len(comp) > 0 Then InventSoft

"если ошибка
If Len(Err.Description) > 0 Then

Set FSO1 = CreateObject("Scripting.FileSystemObject")
Set TextStream1 = FSO1.CreateTextFile(Error_Dir & comp & Err.Description,True) "Создаем файл с именем недоступного компьютера

End If
" Конец цикла
Wend

TextStream.Close

"== ПОДПРОГРАММЫ

"обращение к WMI оформлено в подпрограмму, чтобы можно было корректно обработать возможную ошибку
Sub InventSoft

"подключить реестр удаленного компьютера через WMI
Set wmio = GetObject("WinMgmts:{impersonationLevel=impersonate}!\\" & comp & "\Root\default:StdRegProv")

"создать файл отчета
Dim fso, tf
Set fso = CreateObject("Scripting.FileSystemObject")
If Not fso.FolderExists(DATA_DIR) Then
If Not SILENT Then MsgBox "Не найден каталог для сохранения отчета:" & vbCrLf & DATA_DIR, vbExclamation, TITLE
Exit Sub
End If
Set tf = fso.CreateTextFile(DATA_DIR & comp & DATA_EXT, True)

"записать заголовки столбцов
If HEAD_LINE Then tf.WriteLine "Название и Версия"

"искать программы и оформить текст для отчета
Dim s
s = ExtractSoft("SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\")
If Len(s) > 0 Then tf.Write s

"для 64-битных систем есть еще другой ключ! (32-битные программы на 64-битной системе)
s = ExtractSoft("SOFTWARE\Wow6432Node\Microsoft\Windows\CurrentVersion\Uninstall\")
If Len(s) > 0 Then tf.Write s

"закрыть файл отчета
tf.Close

"проверить указанный ключ реестра; вернуть строку для записи в файл отчета
Function ExtractSoft(key)

"получить коллекцию
Const HKLM = &H80000002 "HKEY_LOCAL_MACHINE
Dim items
wmio.EnumKey HKLM, key, items
If IsNull(items) Then
ExtractSoft = ""
Exit Function
End If

"отобрать нужные элементы
Dim s, item, ok, name, publ, inst, x, prev
s = "" "результат накапливать в строке
For Each item In items

Ok = True "флаг продолжения

"название, пропускать пустые и повторяющиеся
prev = name
wmio.GetStringValue HKLM, key & item, "DisplayName", name
If IsNull(name) Or Len(name) = 0 Or name = prev Then
ok = False
Else "не допускать символ ";"
name = Replace(name, ";", "_")
End If

"отделить заплатки, по значению параметра ParentKeyName = "OperatingSystem"
If ok Then
wmio.GetStringValue HKLM, key & item, "ParentKeyName", x
"для программ
If UPDATES Then
If IsNull(x) Or x <> "OperatingSystem" Then ok = False
"для обновлений
Else
If Not IsNull(x) And x = "OperatingSystem" Then ok = False
End If
End If

"Версия
If ok Then
wmio.GetStringValue HKLM, key & item, "DisplayVersion", publ
If IsNull(publ) Or Len(publ) = 0 Then publ = "-"
End If

"If ok Then s = s & name & ";" & publ & ";" & inst & vbCrLf
If ok Then s = s & name & publ & ";" & vbCrLf

Next
ExtractSoft = s

"проверить доступность компьютера в сети; вернуть True, если адрес недоступен
Function Unavailable(addr)
Dim wmio, ping, p
Set wmio = GetObject("WinMgmts:{impersonationLevel=impersonate}")
Set ping = wmio.ExecQuery("SELECT StatusCode FROM Win32_PingStatus WHERE Address = "" & addr & """)
For Each p In ping
If IsNull(p.StatusCode) Then
Unavailable = True
Else
Unavailable = (p.StatusCode <> 0)
End If
Next
End Function

Вот собственно и все. Сердечно благодарю автора скрипта Павела Железнова. Думаю в полной мере назвать эту статью плагиатом нельзя, и надеюсь это будет кому-то полезно.

З.Ы. Исходный скрипт, легко добавляется в групповые политики, и будет постоянно поддерживать актуальную информацию об установленном в сети ПО на Windows машинах.

Теги: инвентаризация, скрипты


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

Система 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 позволит сэкономить немало сил и нервов системному администратору.

17 февраля 2012 в 14:50

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

  • Системное администрирование

Захотелось поделится с хабросообществом парой способов провести инвентаризацию техники быстро и без особых усилий. Сподвигла меня вот , но как сторонник 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, всё то же самое но без сетевых отчётов.
Что бы начать вкушать плоды автоматизации нужно несколько несложных операций.

Теперь используя всё тот же 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 ещё не изобрели, а многообразие средств удалённого управление столь велико, что не уместится в рамки этой статьи. Тем более это дело вкуса.
  • Сергей Савенков

    какой то “куцый” обзор… как будто спешили куда то