本文目录导读:

获取系统分级(通常指Windows的“Windows 体验指数”或“系统性能分级”)的信息,可以使用多种脚本方法,最直接的方法是通过PowerShell查询WMI(Windows Management Instrumentation)或注册表。
以下是几种常见的方法,适用于不同的需求和环境。
使用PowerShell(推荐,最灵活)
这种方法可以直接获取每个子分数(处理器、内存、图形、游戏图形、磁盘)和基础分数。
核心命令:
# 获取Win32_WinSAT对象(如果之前运行过评估) Get-CimInstance -Namespace "root\CIMV2" -ClassName "Win32_WinSAT"
完整示例脚本(带错误处理和输出美化):
<#
.SYNOPSIS
获取并显示Windows系统性能分级(体验指数)信息。
.DESCRIPTION
此脚本读取Windows评估结果(WinSAT),并显示各个组件的评分以及基础分数。
如果系统未运行过性能评估,会给出提示。
#>
function Get-SystemPerformanceRating {
try {
# 尝试获取Win32_WinSAT实例
$winsat = Get-CimInstance -Namespace "root\CIMV2" -ClassName "Win32_WinSAT" -ErrorAction Stop
# 检查是否为有效的评估数据
if ($null -eq $winsat) {
Write-Warning "未找到系统性能评估数据,请先运行 'winsat formal' 命令来评估系统性能。"
return
}
# 定义组件名称与WMI属性的映射
$ratings = @{
"处理器" = [math]::Round($winsat.CPUScore, 1)
"内存 (RAM)" = [math]::Round($winsat.MemoryScore, 1)
"图形" = [math]::Round($winsat.GraphicsScore, 1)
"游戏图形" = [math]::Round($winsat.D3DScore, 1)
"主硬盘" = [math]::Round($winsat.DiskScore, 1)
}
# 计算基础分数(各子分数中的最小值)
$baseScore = [math]::Round($winsat.WinSPRLevel, 1)
# 输出结果
Write-Host "======= 系统性能分级信息 =======" -ForegroundColor Cyan
foreach ($component in $ratings.Keys) {
Write-Host ("{0,-20}: {1:F1}" -f $component, $ratings[$component])
}
Write-Host ("{0,-20}: {1:F1}" -f "基础分数 (WinSPR)", $baseScore) -ForegroundColor Yellow
Write-Host "================================" -ForegroundColor Cyan
# 返回对象,便于后续脚本使用
return $winsat
}
catch [Microsoft.Management.Infrastructure.CimException] {
Write-Error "无法连接到WMI,请以管理员身份运行或检查系统,错误: $($_.Exception.Message)"
}
catch {
Write-Error "发生未知错误: $($_.Exception.Message)"
}
}
# 调用函数
Get-SystemPerformanceRating
运行方式:
- 打开 PowerShell(普通权限即可)。
- 复制粘贴上述代码并执行。
使用CMD(批处理脚本,简单直接)
如果你需要一个 .bat 或 .cmd 文件,可以通过读取注册表来实现。
批处理脚本 (Get-PerformanceRating.bat):
@echo off
setlocal enabledelayedexpansion
echo ======= 系统性能分级信息 =======
echo 正在从注册表读取...
:: 读取各子分数(如果不存在则设为"N/A")
for %%a in (ProcessorScore MemoryScore GraphicsScore D3DScore DiskScore) do (
set "%%a=N/A"
for /f "tokens=3 skip=2" %%b in ('reg query "HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\WinSAT" /v %%a 2^>nul') do (
set "%%a=%%b"
)
)
:: 读取基础分数(WinSPRLevel)
set "BaseScore=N/A"
for /f "tokens=3 skip=2" %%c in ('reg query "HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\WinSAT" /v WinSPRLevel 2^>nul') do (
set "BaseScore=%%c"
)
:: 输出结果
echo 处理器评分: !ProcessorScore!
echo 内存评分: !MemoryScore!
echo 桌面图形评分: !GraphicsScore!
echo 游戏图形评分: !D3DScore!
echo 主硬盘评分: !DiskScore!
echo.
echo 基础分数: !BaseScore!
if "!BaseScore!"=="N/A" (
echo.
echo 注意: 未找到评估数据,请运行 'winsat formal' 以生成数据。
)
endlocal
pause
运行方式:
- 将上述代码保存为
Get-Rating.bat。 - 双击运行或通过CMD执行。
使用VBScript(旧版系统/兼容性)
VBScript同样通过WMI查询,适用于更老的脚本环境。
VBScript脚本 (GetRating.vbs):
Dim objWMIService, colItems, objItem
' 连接到WMI
Set objWMIService = GetObject("winmgmts:\\.\root\cimv2")
' 查询Win32_WinSAT类
Set colItems = objWMIService.ExecQuery("Select * from Win32_WinSAT")
If colItems.Count = 0 Then
WScript.Echo "未找到性能评估数据,请先运行 'winsat formal'。"
Else
For Each objItem in colItems
WScript.Echo "处理器评分: " & Round(objItem.CPUScore, 1)
WScript.Echo "内存评分: " & Round(objItem.MemoryScore, 1)
WScript.Echo "桌面图形评分: " & Round(objItem.GraphicsScore, 1)
WScript.Echo "游戏图形评分: " & Round(objItem.D3DScore, 1)
WScript.Echo "主硬盘评分: " & Round(objItem.DiskScore, 1)
WScript.Echo "基础分数: " & Round(objItem.WinSPRLevel, 1)
Next
End If
运行方式:
- 保存为
GetRating.vbs。 - 双击运行或在CMD中执行
cscript GetRating.vbs。
重要说明
-
数据来源:
- WMI路径:
root\CIMV2\Win32_WinSAT - 注册表路径:
HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\WinSAT - 数据存储文件:
%SystemRoot%\Performance\WinSAT\DataStore\...Formal.Assessment...XML
- WMI路径:
-
权限:
- 读取数据通常不需要管理员权限,正常运行即可。
Get-CimInstance可能会因为系统策略失败,此时可以尝试使用Get-WmiObject(但Get-CimInstance是更现代、更安全的标准)。
-
数据缺失:
- 如果系统从未运行过性能评估(例如新安装的系统或精简版系统),上述脚本可能返回空值或提示“未找到”。
- 在这种情况下,你需要先运行
winsat formal来生成评估数据,这个命令需要管理员权限,并且运行时间较长(几分钟)。
-
版本差异:
- Windows 8及以上:基础分数范围是 0 到 9.9。
- Windows 7:基础分数范围是 0 到 7.9。
- Windows Vista:基础分数范围是 0 到 5.9。
- 脚本会自动显示实际的数值,你只需要根据系统版本理解其范围即可。
总结建议
- 对大多数用户和运维场景:推荐使用 PowerShell脚本(方法一),它最清晰、可扩展性强,并且能很好地处理错误。
- 对需要双击运行的简单场景:可以使用 批处理脚本(方法二)。
- 对旧系统或特定部署环境:可以使用 VBScript(方法三)。
选择适合你环境的方法即可。
版权声明:NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
足球直播
足球直播
足球直播
篮球直播
篮球直播
篮球直播
NBA直播
NBA直播
NBA直播
CBA直播
CBA直播
CBA直播
亚冠直播
亚冠直播
亚冠直播
欧冠直播
欧冠直播
欧冠直播
英超直播
英超直播
英超直播
西甲直播
西甲直播
西甲直播
中超直播
中超直播
中超直播
足球直播
足球直播
足球直播
篮球直播
篮球直播
篮球直播
NBA直播
NBA直播
NBA直播
CBA直播
CBA直播
CBA直播
亚冠直播
亚冠直播
亚冠直播
欧冠直播
欧冠直播
欧冠直播
英超直播
英超直播
英超直播
西甲直播
西甲直播
西甲直播
中超直播
中超直播
中超直播
足球直播
足球直播
足球直播
篮球直播
篮球直播
篮球直播
NBA直播
NBA直播
NBA直播
CBA直播
CBA直播
CBA直播
亚冠直播
亚冠直播
亚冠直播
欧冠直播
欧冠直播
欧冠直播
英超直播
英超直播
英超直播
西甲直播
西甲直播
西甲直播
中超直播
中超直播
中超直播
足球直播
足球直播
足球直播
篮球直播
篮球直播
篮球直播
NBA直播
NBA直播
NBA直播
CBA直播
CBA直播
CBA直播
亚冠直播
亚冠直播
亚冠直播
欧冠直播
欧冠直播
欧冠直播
英超直播
英超直播
英超直播
西甲直播
西甲直播
西甲直播
中超直播
中超直播
中超直播
曼联直播
曼联直播
曼联直播
日职联直播
日职联直播
日职联直播
澳超直播
澳超直播
澳超直播
阿森纳直播
阿森纳直播
阿森纳直播
足球直播
足球直播
足球直播
NBA直播
NBA直播
NBA直播
曼联直播
曼联直播
曼联直播
日职联直播
日职联直播
日职联直播
澳超直播
澳超直播
澳超直播
阿森纳直播
阿森纳直播
阿森纳直播
足球直播
足球直播
足球直播
NBA直播
NBA直播
NBA直播
曼联直播
曼联直播
曼联直播
日职联直播
日职联直播
日职联直播
澳超直播
澳超直播
澳超直播
阿森纳直播
阿森纳直播
阿森纳直播
足球直播
足球直播
足球直播
NBA直播
NBA直播
NBA直播
曼联直播
曼联直播
曼联直播
日职联直播
日职联直播
日职联直播
澳超直播
澳超直播
澳超直播
阿森纳直播
阿森纳直播
阿森纳直播
足球直播
足球直播
足球直播
NBA直播
NBA直播
NBA直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
足球直播
足球直播
足球直播
足球直播
足球直播
英超直播
英超直播
英超直播
英超直播
英超直播
篮球直播
篮球直播
篮球直播
篮球直播
篮球直播
CBA直播
CBA直播
CBA直播
CBA直播
CBA直播
中超直播
中超直播
中超直播
中超直播
中超直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
足球直播
足球直播
足球直播
足球直播
足球直播
英超直播
英超直播
英超直播
英超直播
英超直播
篮球直播
篮球直播
篮球直播
篮球直播
篮球直播
CBA直播
CBA直播
CBA直播
CBA直播
CBA直播
中超直播
中超直播
中超直播
中超直播
中超直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播