本文目录导读:

- 方法一:使用
powercfg命令 + 批处理脚本(最常用,适合本地/少量机器) - 方法二:使用 PowerShell 脚本(适合域环境或远程管理)
- 方法三:使用 VBScript(老系统兼容)
- 重要注意事项
使用 powercfg 命令 + 批处理脚本(最常用,适合本地/少量机器)
powercfg 是Windows自带的命令行工具,可以查询、创建、修改和删除电源方案。
查询现有电源计划
需要知道电源计划的 GUID(全局唯一标识符)。
powercfg /list
输出类似于:
现有电源使用方案 (* 活动)
---------------------------
8c5e7fda-e8bf-4a96-9a85-a6e23a8c635c 高性能
381b4222-f694-41f0-9685-ff5bb260df2e 平衡
a1841308-3541-4fab-bc81-f71556f20b4a 节能
创建一个批处理脚本(set_powerplan.bat)
@echo off批量设置电源计划为高性能模式
REM 将此GUID替换为你想要设置的电源计划
set "HighPerformanceGUID=8c5e7fda-e8bf-4a96-9a85-a6e23a8c635c"
echo 正在切换到高性能电源计划...
powercfg /setactive %HighPerformanceGUID%
IF %ERRORLEVEL% EQU 0 (
echo 成功:电源计划已切换。
) ELSE (
echo 失败:请以管理员身份运行此脚本。
)
pause
保存并运行
- 保存为
.bat文件。 - 右键点击 -> 以管理员身份运行。
批量修改特定设置(比如关闭显示器时间、硬盘休眠时间):
REM 设置“接通电源”下关闭显示器为30分钟 powercfg /change standby-timeout-ac 30 REM 设置“使用电池”下关闭显示器为15分钟 powercfg /change standby-timeout-dc 15 REM 禁用硬盘休眠(接通电源和电池) powercfg /change hibernate-timeout-ac 0 powercfg /change hibernate-timeout-dc 0 REM 将“平衡”计划的处理器最小状态设置为5% powercfg /setacvalueindex 381b4222-f694-41f0-9685-ff5bb260df2e sub_processor 5%
使用 PowerShell 脚本(适合域环境或远程管理)
PowerShell 可以结合 powercfg,并且通过 Invoke-Command 远程执行。
脚本示例 Set-PowerPlan.ps1
# 定义目标电源计划的GUID
$planGUID = "8c5e7fda-e8bf-4a96-9a85-a6e23a8c635c" # 高性能
# 获取当前系统上的电源计划列表
$plans = powercfg /list | Select-String -Pattern "(\{.*?\})"
# 检查目标计划是否存在
$exists = $plans | Where-Object { $_ -match [regex]::Escape($planGUID) }
if ($exists) {
Write-Host "找到目标电源计划,正在应用..."
powercfg /setactive $planGUID
Write-Host "电源计划已切换。"
} else {
Write-Host "错误:未找到指定的电源计划GUID,请使用 powercfg /list 查看可用计划。"
}
远程执行(需开启WinRM):
$computers = Get-Content -Path "C:\list_of_pcs.txt" # 每行一个计算机名或IP
foreach ($pc in $computers) {
Invoke-Command -ComputerName $pc -ScriptBlock {
powercfg /setactive "8c5e7fda-e8bf-4a96-9a85-a6e23a8c635c"
} -Credential (Get-Credential)
}
使用 VBScript(老系统兼容)
如果你需要兼容 Windows XP/2003 等老系统:
' set_powerplan.vbs
Set objShell = CreateObject("WScript.Shell")
' 设置为高性能(GUID可能需要根据系统调整)
objShell.Run "powercfg /setactive 8c5e7fda-e8bf-4a96-9a85-a6e23a8c635c", 0, True
WScript.Echo "电源计划已切换。"
重要注意事项
-
管理员权限
修改电源计划需要管理员权限,批处理或PowerShell脚本必须“以管理员身份运行”。 -
GUID获取
不同Windows版本、不同语言系统的电源计划GUID不完全相同。- 高性能:通常是
8c5e7fda-e8bf-4a96-9a85-a6e23a8c635c(英文系统常见) - 平衡:通常是
381b4222-f694-41f0-9685-ff5bb260df2e - 节能:通常是
a1841308-3541-4fab-bc81-f71556f20b4a
务必先用powercfg /list确认实际GUID。
- 高性能:通常是
-
批量修改特定子设置
如果你需要修改“处理器最大状态”或“无线适配器节能”等具体参数,语法如下:powercfg /setacvalueindex <PlanGUID> <SubGroupGUID> <SettingGUID> <Value>
常用的子组和设置GUID可以查阅微软官方文档,但简单的做法是先手动设置好一个计划,然后导出:
powercfg /export myplan.pow <PlanGUID>
然后在其他机器上导入:
powercfg /import myplan.pow powercfg /setactive <NewGUID>
-
远程执行权限
使用PowerShell远程管理时,需确保域控制器或计算机的WinRM服务已启动,且防火墙允许5985/5986端口。
| 场景 | 推荐方法 |
|---|---|
| 单台机器,快速切换 | 批处理脚本 + powercfg |
| 局域网多台机器,有域环境 | PowerShell + Invoke-Command |
| 多台机器,无域环境 | 批处理脚本配合 psexec(Sysinternals工具) |
如果你能提供更详细的使用场景(比如是个人电脑定期调整,还是公司批量部署),我可以给出更具体的脚本模板。