Получить системную информацию из интерфейса командной строки

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

Есть ли программа, которая предлагает интерфейс командной строки для создания текстового файла, содержащего упрощенные компьютерные спецификации в ОС Windows?

Просто основная информация для потребителя. то есть: RAM, CPU, HDD и т. д. Мне не нужны и не нужны все подробности о компьютере.

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

Единственные два обходных пути, которые я могу придумать, - это либо использовать Windows-эквивалент команды grep / cat / awk, чтобы отсеивать только необходимую информацию. Что может оказаться довольно утомительным, поскольку каждая система, очевидно, будет иметь разные спецификации. В качестве альтернативы, используйте программу (если таковая существует), чтобы указать, какие спецификации собирать, а какие оставить.


person Community    schedule 19.03.2015    source источник
comment
Вы можете использовать Powershell, но это требует обучения. Сначала см. Википедию.   -  person mins    schedule 19.03.2015


Ответы (2)


В PowerShell:

$System = Get-CimInstance CIM_ComputerSystem
$BIOS = Get-CimInstance CIM_BIOSElement
$OS = Get-CimInstance CIM_OperatingSystem
$CPU = Get-CimInstance CIM_Processor
$HDD = Get-CimInstance Win32_LogicalDisk -Filter "DeviceID = 'C:'"
$EXTXT = "$env:USERPROFILE\Desktop\welp.txt"
Clear-Host

"Manufacturer: " + $System.Manufacturer >> $EXTXT
"Model: " + $System.Model >> $EXTXT
"CPU: " + $CPU.Name >> $EXTXT
"RAM: " + "{0:N2}" -f ($System.TotalPhysicalMemory/1GB) + "GB" >> $EXTXT
"HDD Capacity: "  + "{0:N2}" -f ($HDD.Size/1GB) + "GB" >> $EXTXT
"Operating System: " + $OS.caption >> $EXTXT

Ответы на мой вопрос улучшили мои результаты поиска. Большая часть исходного кода находится здесь: http://community.spiceworks.com/scripts/show_download/1831
Я смог потом собрать все воедино. Сохраните в формате .ps1, и все готово.

Или, если вы предпочитаете, вот тот же относительный сценарий, написанный на Python. Использование собственных команд Windows и PowerShell.

import os
import wmi
import math

c = wmi.WMI()    
SYSINFO = c.Win32_ComputerSystem()[0]
OSINFO = c.Win32_OperatingSystem()[0]
CPUINFO = c.Win32_Processor()[0]
HDDINFO = c.Win32_LogicalDisk()[0]
RAMINFO = c.Win32_PhysicalMemory()[0]

MANUFACTURER = SYSINFO.Manufacturer
MODEL = SYSINFO.Model
RAMTOTAL = int(SYSINFO.TotalPhysicalMemory)
HDDTOTAL = int(HDDINFO.size)
RAMSIZE = round(RAMTOTAL)
HDDSIZE = round(HDDTOTAL)

os.system('cls')
print "Model: " + MANUFACTURER + " " + MODEL
print "\r"
print "HDD: " + str(HDDTOTAL) + "GB"
print "RAM: " + str(RAMTOTAL) + "GB"
print "CPU: " + CPUINFO.name
print "OS: " + OSINFO.caption
person Community    schedule 19.03.2015

Помимо PowerShell, WMIC - это встроенный инструмент командной строки, который предназначен для создания отчетов о данных WMI, включая все виды системной информации, и вывода их в различных форматах. В нем нет стандартного отчета о системном оборудовании, но вы можете использовать его для получения именно тех настроек, которые вам нужны.

Например, чтобы вывести список дисков на компьютере, я могу выдать следующее:

C:\>wmic diskdrive get  Manufacturer,Partitions,Size /value
Manufacturer=(Standard disk drives)
Partitions=2
Size=320070320640

...

Или, если вам нужна полная информация о конкретном предмете, вы можете использовать это:

wmic cpu list /format:list

AddressWidth=64
Architecture=9
Availability=3
Caption=Intel64 Family 6 Model 26 Stepping 5
ConfigManagerErrorCode=
ConfigManagerUserConfig=
CpuStatus=1
CreationClassName=Win32_Processor
CurrentClockSpeed=2794
CurrentVoltage=
DataWidth=64
Description=Intel64 Family 6 Model 26 Stepping 5
DeviceID=CPU0

...

LoadPercentage=24
Manufacturer=GenuineIntel
MaxClockSpeed=2794
Name=Intel(R) Xeon(R) CPU           W3530  @ 2.80GHz

На этом сайте показаны отличные примеры для WMIC. или PowerShell

У Microsoft есть полный документацию в Интернете, но она не дает вам понять, как ее использовать.

person GuitarPicker    schedule 19.03.2015