Поиск производителя аппаратного обеспечения, модели и серийного номера?

Вопрос или проблема

Я хочу найти производителя, модель и серийный номер различных машин под управлением Windows (XP, Vista, 2003, 2008) и Linux (Ubuntu, Debian, Fedora) с помощью программного решения.

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

Я хотел бы написать скрипт, так что, в идеале, он не требует сторонних приложений; если это необходимо, то лучше, чтобы это было автономное приложение, которое легко перемещать.

Есть идеи, как это можно сделать лучше всего? Если есть предустановленное (бесплатное) решение, то в идеале я хотел бы, чтобы оно отправляло данные либо в виде сырого текста, либо в базу данных MySQL. Идеально, если это будет небольшой автономный инструмент, я не хочу устанавливать программы на каждом ПК. Тем не менее, как уже упоминалось ранее, я совершенно не против написать скрипт, используя встроенные инструменты ОС. Я знаю, что это возможно, так как видел другие приложения, которые сообщают эту информацию (хотя и в больших массовых пакетах с другими ненужными вещами, например, Spiceworks).

Для Windows вы можете использовать быстрый скрипт PowerShell для обертывания WMI, что-то вроде этого:

function Get-Inventory([string] $computer=".")
{
    $data = ""|select name, vendor, model, serial
    $bios = get-wmiobject 'win32_BIOS' -computername $computer
    $comp = get-wmiobject 'win32_computersystem' -computername $computer
    $data.name = $comp.Name
    $data.vendor = $comp.manufacturer
    $data.model = $comp.Model
    $data.serial = $bios.SerialNumber
    return $data
}

Если вы подадите этому текстовый файл со списком всех своих компьютеров, как этот:

get-content 'mycomputers.txt' | foreach-object{Get-Inventory}

вы получите красивую таблицу компьютеров и деталей оборудования. Если вам нужно архивировать данные, используйте командлет export-csv, чтобы вывести результат прямо в файл.

Для Linux я бы посоветовал посмотреть на dmidecode, который довольно часто предустановлен или может быть легко установлен из репозитория дистрибутива.

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

Существует отличное (хотя и коммерческое) решение, которое делает именно это (сырой текст будет в формате CSV, как я думаю), называемое ISI Snapshot: http://www.isiisi.com/snapshot.htm

Оно быстро получит всю эту информацию.

Я упоминаю об этом, потому что вы сказали “если есть предустановленное решение”….

Правка: Также посмотрите /proc/cpuinfo и lsattr -El sys0

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

Я думаю, вы можете использовать WMI для получения информации о Windows, вы можете получить информацию удаленно, если у вас есть права администраторов.

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

=== START OF INFORMATION SECTION ===
Model Family:     Western Digital Caviar SE Serial ATA family
Device Model:     WDC WD800JD-22LSA0
Serial Number:    WD-XXXXXXXXXXXX (скрыто мною)
Firmware Version: 06.01D06
User Capacity:    80,026,361,856 bytes

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

get-content ‘mycomputers.txt’ | foreach-object {Get-Inventory “$_” ft -autosize}

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

Ответ или решение

Поиск информации о производителе оборудования, модели и серийном номере

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

1. Решение для Windows

Для извлечения информации о системе на компьютерах под управлением Windows вы можете воспользоваться PowerShell и WMI (Windows Management Instrumentation). Ниже приведен пример скрипта, который вы можете использовать:

function Get-Inventory([string] $computer=".")
{
    $data = ""|select name, vendor, model, serial
    $bios = get-wmiobject 'win32_BIOS' -computername $computer
    $comp = get-wmiobject 'win32_computersystem' -computername $computer
    $data.name = $comp.Name
    $data.vendor = $comp.Manufacturer
    $data.model = $comp.Model
    $data.serial = $bios.SerialNumber
    return $data
}

Для обработки списка компьютеров, который вы сможете сохранить в текстовом файле (например, mycomputers.txt), используйте следующую команду:

get-content 'mycomputers.txt' | foreach-object {Get-Inventory}

Таким образом, вы создадите таблицу с данными о каждом компьютере. Для архивирования данных вы можете воспользоваться Export-Csv:

get-content 'mycomputers.txt' | foreach-object {Get-Inventory} | Export-Csv -Path 'inventory.csv' -NoTypeInformation

2. Решение для Linux

Для извлечения информации о аппаратном обеспечении на системах Linux, таких как Ubuntu, Debian и Fedora, вы можете использовать утилиту dmidecode, которая часто предустановлена или доступна в репозиториях дистрибуций. Она генерирует текстовый отчет о всех аппаратных компонентах, включая серийные номера. Для получения информации выполните следующую команду:

sudo dmidecode -t system

Это даст вам необходимую информацию о системе, такую как производитель, модель и серийный номер.

3. Работа с данными для хранения

Для записи полученных данных в базу данных MySQL вы можете создать простой скрипт на Bash или PowerShell, который будет считывать результаты из команд dmidecode или вашего скрипта для Windows и отправлять их на ваш MySQL сервер с помощью mysql команды из терминала.

Пример на Linux может выглядеть следующим образом:

#!/bin/bash

# Получаем информацию о системе
info=$(sudo dmidecode -t system)

# Разбор информации и отправка в MySQL
mysql -u ваш_пользователь -pваш_пароль -D ваша_база_данных -e "INSERT INTO inventarization (vendor, model, serial) VALUES ('$vendor', '$model', '$serial');"

Заключение

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

Эти шаги помогут вам быстро и эффективно обновить запас данных об оборудовании и поддерживать вашу IT-инфраструктуру в актуальном состоянии.

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

Капча загружается...