2026年01月21日/ 浏览 5
在企业运维、电脑维护或设备批量管理场景中,我们常常需要检测电脑硬件健康状态(CPU、内存、磁盘、主板、网络等),以便提前发现问题。
今天,我们将使用 PowerShell 来实现一键检测并生成健康报告的自动化脚本。
这篇教程适合系统管理员、IT运维工程师、甚至普通用户使用,无需安装第三方工具。
一、实现目标
通过本文,你将实现以下功能:
✅ 一键检测系统主要硬件健康状况
✅ 自动输出检测报告(CPU温度、磁盘健康、内存占用等)
✅ 可批量执行在多台电脑上(企业环境)
✅ 无需安装插件,Windows 11 自带可用
⚙️ 二、环境准备
项目
要求
操作系统
Windows 11 / Windows 10
权限要求
管理员权限
工具
PowerShell 5.1 或 PowerShell 7+
打开 PowerShell(以管理员身份运行):
按下 Win + X → 选择 Windows PowerShell(管理员)
三、检测脚本核心功能概览
我们的检测脚本将分为以下模块:
✅ CPU 信息检测✅ 内存使用率监控✅ 磁盘健康与温度检测✅ 主板与 BIOS 信息读取✅ 网络连接状态与速率检测✅ 自动生成健康报告文件四、完整 PowerShell 脚本
在 PowerShell 编辑器(或记事本)中创建脚本文件:
路径示例:
C:\Scripts\CheckSystemHealth.ps1
将以下完整内容复制进去
# ===========================================
# Windows 11 自动化硬件健康检测脚本
# 作者: Jack Zhang
# 版本: v1.0
# ===========================================
$ReportPath = "C:\Scripts\SystemHealthReport.txt"
"系统硬件健康报告 - $(Get-Date)" | Out-File $ReportPath
# ---- CPU 信息 ----
"------------------ CPU 信息 ------------------" | Out-File $ReportPath -Append
Get-CimInstance Win32_Processor | Select-Object Name, MaxClockSpeed, NumberOfCores, NumberOfLogicalProcessors | Format-Table | Out-String | Out-File $ReportPath -Append
# ---- 内存信息 ----
"------------------ 内存使用率 ----------------" | Out-File $ReportPath -Append
$mem = Get-CimInstance Win32_OperatingSystem
$used = ($mem.TotalVisibleMemorySize - $mem.FreePhysicalMemory) / 1MB
$total = $mem.TotalVisibleMemorySize / 1MB
$percent = ($used / $total) * 100
"当前内存占用: {0:N2} GB / {1:N2} GB ({2:N2}%)" -f $used, $total, $percent | Out-File $ReportPath -Append
# ---- 磁盘健康 ----
"------------------ 磁盘健康状态 --------------" | Out-File $ReportPath -Append
Get-CimInstance Win32_DiskDrive | Select-Object Model, Status, Size | Format-Table | Out-String | Out-File $ReportPath -Append
# ---- 主板信息 ----
"------------------ 主板 & BIOS ---------------" | Out-File $ReportPath -Append
Get-CimInstance Win32_BaseBoard | Select-Object Manufacturer, Product, SerialNumber | Format-Table | Out-String | Out-File $ReportPath -Append
Get-CimInstance Win32_BIOS | Select-Object Manufacturer, SMBIOSBIOSVersion, ReleaseDate | Format-Table | Out-String | Out-File $ReportPath -Append
# ---- 网络检测 ----
"------------------ 网络状态 ------------------" | Out-File $ReportPath -Append
Get-NetAdapter | Select-Object Name, Status, LinkSpeed | Format-Table | Out-String | Out-File $ReportPath -Append
# ---- 输出完成提示 ----
"`n报告已生成:$ReportPath" | Out-File $ReportPath -Append
Write-Host "✅ 系统硬件健康检测完成!报告已保存到:$ReportPath"
五、运行脚本
在 PowerShell 管理员模式下执行:
Set-ExecutionPolicy RemoteSigned -Scope Process -Force
C:\Scripts\CheckSystemHealth.ps1
执行后,你将在 C:\Scripts\SystemHealthReport.txt 看到如下结果:
系统硬件健康报告 - 2025/10/06
------------------ CPU 信息 ------------------
Name: Intel(R) Core(TM) i7-13700H
MaxClockSpeed: 4800
NumberOfCores: 14
NumberOfLogicalProcessors: 20
------------------ 内存使用率 ----------------
当前内存占用: 8.25 GB / 15.89 GB (51.90%)
------------------ 磁盘健康状态 --------------
Model: Samsung SSD 980 PRO
Status: OK
Size: 1000204886016
------------------ 主板 & BIOS ---------------
Manufacturer: ASUS
Product: PRIME B760M-A
SerialNumber: XXXXXXXXXXXX
...
六、可扩展功能
如果你想进一步增强脚本,可添加以下功能模块:
功能
PowerShell 模块
示例命令
GPU 状态
Get-CimInstance Win32_VideoController
检查显卡型号与驱动
温度监控
结合 WMI 或 OpenHardwareMonitor API
获取CPU温度
报告导出为HTML
ConvertTo-Html
生成图文报告
批量检测多台主机
使用 Invoke-Command
远程执行脚本
七、总结
通过本文,你学会了:
使用 PowerShell 自动检测电脑硬件健康 生成详细的健康报告 无需第三方工具即可快速诊断设备该方案非常适合:
企业IT部门批量电脑巡检系统维护人员定期健康检查个人用户定期检测电脑性能