Довольно часто нужно быстро, кратко, но информативно получить информацию о стационарном компьютере или ноутбуке, без дополнительного ПО и не «вскрывая крышку».
Скрипт не собирает все данные о ПК — для этого существует множество специализированного ПО!
Он предназначен лишь получить общую информацию, например:
— «Привет! Мой комп стал сильно тормозить и не тянет новые программы… Посоветуй, как можно модернизировать его?!».
Минимальный набор данных о «железе» это:
- процессор;
- материнская плата;
- ОЗУ;
- жесткий диск.
Минимальный набор данных об ОС это:
- имя ПК;
- IP-адрес активного сетевого подключения;
- имя активного пользователя.
Один из вариантов — средствами ОС Windows, используя командную строку.
Создаем bat-файл:
@echo off
:имя файла для записи информации
set fname=pcinfo.txt
:имя компьютера
Echo pcname: %computername% >>%fname%
:IP-адрес компьютера по его имени
FOR /F "usebackq tokens=2 delims=[]" %%i IN (`ping %Computername% -n 1 -4`) DO if not "%%i"=="" Set ip=%%i
Echo IP %computername%: %ip% >>%fname%
:имя активного пользователя
Echo username: %username% >>%fname%
:модель ноутбука
set cmd=wmic computersystem get model
for /f "skip=1 delims=" %%Z in ('%cmd%') do (
set _pn=%%Z
GOTO BREAK1
)
:BREAK1
echo CS Model: %_pn% >>%fname%
:процессор
set cmd=wmic cpu get name
for /f "skip=1 delims=" %%Z in ('%cmd%') do (
set _cpu=%%Z
GOTO BREAK1
)
:BREAK1
echo CPU: %_cpu% >>%fname%
:материнская плата
set cmd=wmic baseboard get product
for /f "skip=1 delims=" %%Z in ('%cmd%') do (
set _mb=%%Z
GOTO BREAK2
)
:BREAK2
echo MB: %_mb% >>%fname%
:оперативная память
SETLOCAL ENABLEDELAYEDEXPANSION
set mmr=0
for /f "skip=1 delims=" %%i in ('WMIC MemoryChip get BankLabel^,DeviceLocator^,PartNumber^,Speed^,Capacity') do (
for /f "tokens=1-5 delims=" %%A in ("%%i") do (
set BnkLbl=%%A
set /a mmr=!mmr!+1
set BnkLbl=!BnkLbl:BANK 22=DDR2 FB-DIMM!
set BnkLbl=!BnkLbl:BANK 21=DDR2!
set BnkLbl=!BnkLbl:BANK 24=DDR3!
set BnkLbl=!BnkLbl:BANK 0=DDR4!
echo Memory !mmr!: !BnkLbl! >>%fname%
))
:жесткие диски
SETLOCAL ENABLEDELAYEDEXPANSION
set mmr=0
for /f "skip=1 delims=" %%i in ('wmic diskdrive get model^,size') do (
for /f "tokens=1-2 delims=" %%A in ("%%i") do (
set HDDLbl=%%A
set /a mmr=!mmr!+1
echo HDD !mmr!: !HDDLbl! >>%fname%
))
alexmay
1. есть powershell
2. Для чего cp866? UTF-8 же, а не бНОПНЯ )
А так да, милый скрипт
aafin
1. На старых компах с ним могут быть сложности
2. Так консоль в винде такая.
aszhitarev
для старого ПК разгон один — SSD
Для всего остального — HWInfo