400-680-8581
欢迎光临:路由通
【路由通】IT资讯,IT攻略
位置:路由通 > 资讯中心 > 零散代码 > 文章详情

电脑硬件检测代码

作者:路由通
|
245人看过
发布时间:2013-03-05 12:19:24
标签:
特征码推荐组合‌ ‌稳定项‌:DMI UUID(主板)、硬盘序列号、CPU序列号、BIOS序列号 ‌实现方式‌: DMI/BIOS序列号:通过WMI接口获取,硬盘序列号:调用底层API, CPU序列号:需汇编指令直接读取,Linux系统检测(以Ubuntu为例),使用 dmidecode 命令获取DMI信息,或通过 lshw 工具导出完整硬件清单,以上方法需结合实际场景选择,编程实现时需注意权限及跨平台兼容性问题。
电脑硬件检测代码

复制以下代码到记事本,保存为硬件检测.bat

echo off

color 0a
title    硬件检测     
mode con cols=90
sc config  winmgmt start= auto >nul 2<&1
net start winmgmt 2>1nul
setlocal  ENABLEDELAYEDEXPANSION
echo 主版:
for /f "tokens=1, delims==" %%a in (&39;wmic BASEBOARD get Manufacturer^,Product^,Version^,SerialNumber /value&39;) do (
    set /a tee+=1
    if "!tee!" == "3" echo      制造商  = %%b
    if "!tee!" == "4" echo      型  号  = %%b
    if "!tee!" == "5" echo      序列号  = %%b
    if "!tee!" == "6" echo      版  本  = %%b
)
set tee=0
echo      BIOS:
for /f "tokens=1, delims==" %%a in (&39;wmic bios  get
CurrentLanguage^,Manufacturer^,SMBIOSBIOSVersion^,SMBIOSMajorVersion^,SMBIOSMinorVersion^,ReleaseDate /value&39;) do (
    set /a tee+=1
    if "!tee!" == "3" echo      当前语言 = %%b
    if "!tee!" == "4" echo      制造商  = %%b
    if "!tee!" == "5" echo      发行日期 = %%b
    if "!tee!" == "6" echo      版  本  = %%b
    if "!tee!" == "7" echo      SMBIOSMajorVersion = %%b
    if "!tee!" == "8" echo      SMBIOSMinorVersion = %%b
)
set tee=0
echo.
echo CPU:
for /f "tokens=1, delims==" %%a in (&39;wmic cpu get name^,ExtClock^,CpuStatus^,Description /value&39;) do (
    set /a tee+=1
    if "!tee!" == "3" echo      CPU个数  = %%b
    if "!tee!" == "4" echo      处理器版本  = %%b
    if "!tee!" == "5" echo      外  频  = %%b
    if "!tee!" == "6" echo      名称及主频率  = %%b
)
set tee=0
echo.
echo 显示器:
for /f "tokens=1, delims==" %%a in (&39;wmic DESKTOPMONITOR  get name^,ScreenWidth^,ScreenHeight^,PNPDeviceID /value&39;) do (
    set /a tee+=1
    if "!tee!" == "3" echo      类    型  = %%b
    if "!tee!" == "4" echo      其他信息  = %%b
    if "!tee!" == "5" echo      屏幕高    = %%b
    if "!tee!" == "6" echo      屏幕宽    = %%b
)
set tee=0
echo.
echo 硬  盘:
for /f "tokens=1, delims==" %%a in (&39;wmic DISKDRIVE get model^,interfacetype^,size^,totalsectors^,partitions /value&39;) do (
    set /a tee+=1
    if "!tee!" == "3" echo      接口类型  = %%b
    if "!tee!" == "4" echo      硬盘型号  = %%b
    if "!tee!" == "5" echo      分区数    = %%b
    if "!tee!" == "6" echo      容    量  = %%b
    if "!tee!" == "7" echo      总扇区    = %%b
)
echo 分区信息:
wmic LOGICALDISK  where mediatype=&39;12&39; get description,deviceid,filesystem,size,freespace
set tee=0
echo.
echo 网  卡:
for /f "tokens=1, delims==" %%a in (&39;wmic NICCONFIG where "index=&39;1&39;" get ipaddress^,macaddress^,description /value&39;) do (
    set /a tee+=1
    if "!tee!" == "3" echo      网卡类型  = %%b
    if "!tee!" == "4" echo      网卡IP    = %%b
    if "!tee!" == "5" echo      网卡MAC  = %%b
)
set tee=0
echo.
echo 打印机:
for /f "tokens=1, delims==" %%a in (&39;wmic PRINTER get caption /value&39;) do (
    set /a tee+=1
    if "!tee!" == "3" echo      打印机名字  = %%b
)
set tee=0
echo.
echo 声  卡:
for /f "tokens=1, delims==" %%a in (&39;wmic SOUNDDEV get name^,deviceid /value&39;) do (
    set /a tee+=1
    if "!tee!" == "3" echo      其他信息  = %%b
    if "!tee!" == "4" echo      型    号  = %%b
)
set tee=0
echo.
echo 内    存:
for /f "tokens=1, delims==" %%a in (&39;systeminfo^|find "内存"&39;) do (
    echo        %%a 4534 %%b
)
echo.
echo 显    卡:
del /f "%TEMP%temp.txt" 2>nul
dxdiag /t %TEMP%temp.txt
:显卡
rem 这里需要30秒左右!
if EXIST "%TEMP%temp.txt" (
    for /f "tokens=1,2, delims=:" %%a in (&39;findstr /c:" Card name:" /c:"Display Memory:" /c:"Current Mode:" "%TEMP%temp.txt"&39;) do (
        set /a tee+=1
        if !tee! == 1 echo    显卡型号: %%b
        if !tee! == 2 echo    显存大小: %%b
        if !tee! == 3 echo    当前设置: %%b
)  ) else (
    ping /n 2 127.1>nul
    goto 显卡
)
set /p var=需要额外信息吗(y/n):
if /i %var% == y notepad "%TEMP%temp.txt"
del /f "%TEMP%temp.txt" 2>nul
pause

以下为电脑硬件检测代码相关技术要点及实现方法的整理:

一、硬件故障诊断代码




  1. BIOS自检阶段代码


    • 00/FF:主板未正常运行,需检查CPU安装或BIOS芯片状态

    • C0/D0:内存初始化异常,可能需更换内存条或清洁插槽

    • 2A/31:显卡初始化失败,建议检查显卡连接或驱动兼容性

    • 80:POST自检完成但无法进入系统,可能存储设备异常



  2. 品牌BIOS专用代码


    • Award BIOS:0B(内存故障)(IRQ中断异常)

    • AMI BIOS:0D(显示器未检测到)、(ROM数据错误)





二、系统工具检测方法




  1. Windows内置工具


    • 内存检测:通过控制面板启动「Windows内存诊断」工具自动检测

    • 硬盘检测:执行命令 chkdsk X:/f(X为盘符)或通过磁盘属性检查工具

    • 综合诊断:运行 perfmon /report 生成包含硬件状态的详细报告



  2. 硬件信息查询命令


    • 查看机器码/UUID:执行 wmic csproduct get uuid 获取唯一标识

    • 显示硬件信息:运行 dxdiag 生成DirectX诊断报告,包含CPU、内存、显卡等参数





三、编程获取硬件特征码




  1. Python脚本示例


    import wmi wmi_obj = wmi.WMI() devices = wmi_obj.Win32_PnPEntity() for device in devices: print(f"设备ID: device.DeviceID, 描述: device.Description")

    通过WMI获取设备ID与描述信息



  2. 特征码推荐组合


    • 稳定项‌:DMI UUID(主板)、硬盘序列号、CPU序列号、BIOS序列号

    • 实现方式‌:

      • DMI/BIOS序列号:通过WMI接口获取

      • 硬盘序列号:调用底层API

      • CPU序列号:需汇编指令直接读取






四、Linux系统检测(以Ubuntu为例)



  • 使用 dmidecode 命令获取DMI信息,或通过 lshw 工具导出完整硬件清单


以上方法需结合实际场景选择,编程实现时需注意权限及跨平台兼容性问题

相关文章
如何将解压的ISO启动文件重新打包成启动文件
路由器网址打不开怎么办呢?

我们以win7为例:

  1. 首先打开网络和共享中心,选择桌面网络图标右击(xp是网上邻居),选择属性,打开网络和共享中

2013-03-05 10:38:00
95人看过
ZXA10 F660无源光接入网综合网关用户手册(v2.3)
手册见附件。

2013-03-05 09:51:08
223人看过
ZXA10 F460 EPON 家庭网关用户手册

2013-03-04 13:25:30
257人看过
使用加速乐苦逼了

自从使用了加速乐后感觉,打开网站快了。方便联通的网友们。可惜自从加速乐开始收费后,打开网站很慢,有事根本就打不开。

今天晚上20点后奇慢无比,21点打都打不开。进加速乐官网也打不开。果断关闭加速乐的CN...

2013-03-03 21:41:23
321人看过
百度权重截图留念

今天朋友突然发给我张图片:(站长工具)

点击查看原图

我还有点不相信。我的博客都不是经常打理,总结和收集的文章也是为了自己和爱

2013-03-02 16:44:03
297人看过