Hardware info windows cmd

Windows: Получить информацию о железе и ОС через cmd (утилита WMIC).

Частенько возникают ситуации когда нужно узнать аппаратную начинку ПК, не отрывая при этом пользователя от работы. На мой взгляд, самый быстрый вариант запустить удаленно командную строку с помощью PsExec или DameWare Remote Support и поглядеть нужную информацию. Ваш покорный слуга чаще всего использует утилиту WMIC для этих целей. Ниже приведена общая информация и список часто используемых ключей.

WMI — запиленная под windows реализация стандарта Web-Based Enterprise Management ( WBEM ). Стандарт используется многими крупными компаниями для мониторинга и управления различными системами и компонентами распределенной информационной среды предприятия с использованием объектно-ориентированных идеологий и протоколов HTML и XML

Утилита WMIC (Windows Management Instrumentation Command) — консольная утилита для вызова объектов и методов WMI. Присутствует во всех версиях Windows начиная с Windows XP.

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

1. Получить информацию о процессоре. (Название, количество ядер, количество потоков, максимальная частота)

2. Получить информацию о материнской плате (Производитель, модель)

3. Получить информацию о BIOS (Производитель, Дата, Версия)

4. Получить информацию о модулях памяти (Объем, модель, серийный номер)

5. Получить информацию о HDD (Модель, Размер)

6. Получить информацию о логических дисках. (Буква, общий объем, свободное место, имя)

7. Получить список принтеров и их статусы.

8. Получить информацию об операционной системе (Название, версия)

Собрать информацию о железе, инвентаризация

Потребовалось собрать информацию о комплектующих на ПК пользователей в домене

Для начала пишем CMD-скрипт, который будет собирать следующую информацию:

  • Процессор: Модель, частота
  • Материнская плата: Производитель, модель
  • Оперативная память: Количество планок, объем каждой планки, общий объем, производитель
  • Жесткий диск: Количество, производитель, модель
  • Видеокарта: Производитель, объем памяти, модель
  • Операционная система: Название, Имя ПК, Сервис пак

Содержимое скрипта hardware_info.cmd

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

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

Далее можно этот скрипт распространить на ПК через групповую политику, но так как эта информация будет обновляться довольно редко, я решил выполнить запуск этого скрипта через команду psexec, которая входит в комплект программ PsTools

Читайте также:  Как выглядит windows 10 creators update

Необходимо получить список ПК в домене, на которых будет выполняться скрипт. Запускаем командную строку и выполняем команду

Файл сохраняется сразу в расшаренную папку, его следует отредактировать, чтоб в нем был только перечень ПК

Теперь распространим скрипт hardware_info.cmd
Для этого на доменном контроллере, куда мы ранее установили утилиту psexec, запускаем командную строку и выполняем команду

После выполнения которой в каталоге \\192.168.1.99\share\inv появится список текстовых файлов с информацией о железе

UPD: Столкнулся с проблемой: команда, указанная выше, не могла запустить удаленное выполнение скрипта на ПК с Windows 10. Для решения этой проблемы использовал следующую команду:

Как проверить всю информацию о компьютере через командную строку CMD

Cmd.exe — интерпретатор командной строки для операционных систем OS/2, Windows CE и для семейства операционных систем, базирующихся на Windows NT

Практически у всех установлена операционная система windows, все мы управляем курсором и кликаем по разным функциям.

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

1-Вся информация через команду msinfo32.exe

нажимаем WIN + R и вводим команду msinfo32.exe

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

Опять нажимаем win + r вводим здесь cmd и нажимаем ОК.

После этого у вас появится командная строка

Набираем команду SYSTEMINFO

SYSTEMINFO — выдает подробную информацию о конфигурации системы, в том числе сведения о версии, типе и изготовителе операционной системы, процессоре, версии BIOS, объеме памяти, региональных стандартах, часовом поясе и конфигурации сетевого адаптера.

Чтобы посмотреть какие у вас установлены драйвера

Проделываем всё также как я писал выше, открываем CMD и набираем команду DRIVERQUERY

DRIVERQUERY — выводит список всех установленных драйверов устройств и их свойства, в том числе имя моду¬ля (module name), отображаемое имя (display name), тип драйвера и дату сборки (driver link date). В режиме отображения всей информации (/V) сообщается статус (status) и состояние (state) драйвера, режим запуска, сведения об использовании памяти и путь в файловой системе. Параметр /V также включает вывод детальной информации обо всех неподписанных драйверах.

Это будет полезна для тех, кто хочет увидеть какие драйвера были установлены и когда.

Информация о компьютере: просто и быстро

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

Это можно реализовать, например, средствами командной строки ОС Windows или PowerShell.
CMD — проверенный временем функционал, который есть в любой версии Windows.
Кроме того, для простых задач администрирования cmd использовать привычнее, а где-то и удобнее.

Что лучше — CMD или PowerShell? Я не готов однозначно ответить на этот вопрос.
Впрочем, ничто не мешает нам пользоваться и тем и другим, все зависит от поставленной задачи.

Читайте также:  Might and magic heroes linux

Мы не будем собирать всю информацию о ПК — для этого существует множество специализированного ПО!

Реализация с помощью CMD.

Сбор информации будем осуществлять использованием переменных среды Windows и выполнением сценариев WMI.

Для вывода всех переменных окружения в Windows и их значений служит команда set.

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

Подсказку по работе с утилитой wmic.exe можно получить по команде:

  • wmic /? — отобразить общую справку.
  • wmic /?:BRIEF — отобразить краткую справку.
  • wmic /?:FULL — отобразить полную справку.

Мы будем использовать:

  • BASEBOARD (управление системной платой);
  • COMPUTERSYSTEM (управление компьютером);
  • CPU (управление ЦП);
  • DISKDRIVE (управление физическими дисками);
  • MEMORYCHIP (информация о микросхемах памяти).

Скрипт содержит много циклов с FOR.
Отличительной особенностью FOR /F является умение работать через токены, а также поддержка дополнительных ключевых слов:

  • skip (пропуск определенного кол-ва обрабатываемых строк от начала файла);
  • delims (задать другой разделитель(-ли), по умолчанию, пробел и знак табуляции);
  • tokens (количество получаемых токенов (подстрок) в теле цикла и пределы разбивки по разделителю). Также можно задать конкретный № токена, который попадет в первую переменную цикла;
  • usebackq (изменение правил использования кавычек внутри IN (. )).

Реализация с помощью PowerShell.

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

Сбор информации будет осуществляться использованием в основном Get-WmiObject -Class win32, все просто, работа с циклами.

Мы будем использовать:

  • Get-WmiObject -Class win32_processor;
  • Get-WmiObject -Class win32_baseboard;
  • Get-WmiObject Win32_PhysicalMemory;
  • Get-PhysicalDisk;
  • Get-WmiObject -Class Win32_ComputerSystem;
  • Get-WmiObject Win32_NetworkAdapter;
  • Win32_NetworkAdapterConfiguration.

Есть небольшие сложности при определении IP-адреса активной сетевой карты. Для этого применяем фильтр NetConnectionStatus — «2», после берем информацию mac-адрес от класса Win32_NetworkAdapter и IP-адрес из класса Win32_NetworkAdapterConfiguration и объединяем в один запрос:

Для получения параметров сети по MACAddress активной сетевой карты дополнительно считываем Win32_NetworkAdapterConfiguration.

Читают сейчас

Редакторский дайджест

Присылаем лучшие статьи раз в месяц

Скоро на этот адрес придет письмо. Подтвердите подписку, если всё в силе.

Похожие публикации

Экономим время при работе с командной строкой

Тяжкое наследие прошлого. Проблемы командной строки Windows

20 приёмов работы в командной строке Linux, которые сэкономят уйму времени

Вакансии

AdBlock похитил этот баннер, но баннеры не зубы — отрастут

Минуточку внимания

Комментарии 20

1. есть powershell
2. Для чего cp866? UTF-8 же, а не бНОПНЯ )

А так да, милый скрипт

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

Вот несколько скриптов PS для получения сериников мамки и накопителей и ключа винды:

Function GetSerialNumber()
Set oWMI = GetObject(«WinMgmts:»)
Set col = oWMI.InstancesOf(«Win32_DiskDrive»)
For Each obj In col
sAns = sAns & obj.Model & » — » & obj.SerialNumber & vbCrLf
Next
GetSerialNumber=sAns
End Function

Читайте также:  Работа с панелью задач windows

К сожалению, для оптических приводов он серийники не выдает. Даже вообще их не видит. Да и для некоторых старых HDD накопителей выдает какую-то километровую строчку. А у некоторых SSD серийник из этого скрипта не совпадает с напечатанными на этикетке — вот и думай, кто тут химичит.

Function GetSerialNumber()
Set oWMI = GetObject(«WinMgmts:»)
Set col = oWMI.InstancesOf(«Win32_BaseBoard»)
For Each obj In col
sAns = sAns & obj.Product & «: » & obj.SerialNumber & vbCrLf
Next
GetSerialNumber=sAns
End Function

Dim strComputer, objWMIService, objItem, Caption, colItems

Set objWMIService = GetObject(«winmgmts:\\.\root\cimv2»)
Set colItems = objWMIService.ExecQuery(«Select * from Win32_OperatingSystem»,,48)
For Each objItem in colItems
Caption = objItem.Caption
Next

If InStr(Caption,«Windows») > 0 Then
Dim objshell,path,DigitalID, Result
Dim fil
Set objshell = CreateObject(«WScript.Shell»)
‘Set registry key path
Path = «HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\»
‘Registry key value
DigitalID = objshell.RegRead(Path & «DigitalProductId»)
Dim ProductName,ProductID,ProductKey,ProductData
‘Get ProductName, ProductID, ProductKey
ProductName = «Product Name: » & objshell.RegRead(Path & «ProductName»)
fil = objshell.RegRead(Path & «ProductName»)
ProductID = «Product ID: » & objshell.RegRead(Path & «ProductID»)
ProductKey = «Installed Key: » & ConvertToKey(DigitalID)
ProductData = ProductName & vbNewLine & ProductID & vbNewLine & ProductKey
‘Show messbox if save to a file
If vbYes = MsgBox(ProductData & vblf & vblf & «Save to a file?», vbYesNo + vbQuestion, «BackUp Windows Key Information») then
Save ProductData
End If

Else
MsgBox «Please run this script in Windows 8.x»
End If

‘Convert binary to chars
Function ConvertToKey(Key)
Const KeyOffset = 52
Dim isWin8, Maps, i, j, Current, KeyOutput, Last, keypart1, insert
‘Check if OS is Windows 8
isWin8 = (Key(66) \ 6) And 1
Key(66) = (Key(66) And &HF7) Or ((isWin8 And 2) * 4)
i = 24
Maps = «BCDFGHJKMPQRTVWXY2346789»
Do
Current= 0
j = 14
Do
Current = Current* 256
Current = Key(j + KeyOffset) + Current
Key(j + KeyOffset) = (Current \ 24)
Current=Current Mod 24
j = j -1
Loop While j >= 0
i = i -1
KeyOutput = Mid(Maps,Current+ 1, 1) & KeyOutput
Last = Current
Loop While i >= 0
If (isWin8 = 1) Then
keypart1 = Mid(KeyOutput, 2, Last)
insert = «N»
KeyOutput = Replace(KeyOutput, keypart1, keypart1 & insert, 2, 1, 0)
If Last = 0 Then KeyOutput = insert & KeyOutput
End If
ConvertToKey = Mid(KeyOutput, 1, 5) & «-» & Mid(KeyOutput, 6, 5) & «-» & Mid(KeyOutput, 11, 5) & «-» & Mid(KeyOutput, 16, 5) & «-» & Mid(KeyOutput, 21, 5)

End Function
‘Save data to a file

Function Save(Data)
Dim fso, fName, txt,objshell,UserName,Cur,Computer
Set objshell = CreateObject(«wscript.shell»)
Cur = CreateObject(«Scripting.FileSystemObject»).GetParentFolderName(WScript.ScriptFullName)
‘Get current user name
UserName = objshell.ExpandEnvironmentStrings(«%UserName%»)
Computer = objshell.ExpandEnvironmentStrings(«%computername%»)
‘Create a text file on desktop
fName = Cur & «\» & «KeyBackup» & «.txt»
Set fso = CreateObject(«Scripting.FileSystemObject»)
Set txt = fso.OpenTextFile(fName, 8, True)
txt.Writeline Computer
txt.Writeline UserName
txt.Writeline Data
txt.WriteBlankLines 1
txt.Close
End Function

Где-то были еще скрипты для получения более подробной инфы по процессору и серийников планок памяти — не нашел.

Вместо IP лучше давать MAC (ну или вместе).
Вместо текущего пользователя — дескриптор компа в сетевом окружении.

Оцените статью