如何在Win10/11客户端自动禁用所有设备的“允许计算机关闭此设备”选项并生成相关设备列表
2026-4-22
如何在Win10/11客户端自动禁用所有设备的“允许计算机关闭此设备”选项并生成相关设备列表
#
嘿,这个需求我熟!针对Win10/11客户端批量处理设备的电源管理选项,用PowerShell就能完美解决——既能生成启用了“允许计算机关闭此设备”的设备清单,也能一键禁用这个选项。下面给你具体的实现方法:
一、生成启用该选项的设备列表 #
先给你一个PowerShell脚本,它会自动扫描所有带电源管理选项的设备,找出那些开启了“允许计算机关闭此设备”的设备,输出到控制台的同时还会保存成CSV文件方便后续查看:
# 生成启用"允许计算机关闭此设备"的设备列表 $deviceList = @() # 遍历注册表中所有设备的电源管理设置 Get-ChildItem "HKLM:\SYSTEM\CurrentControlSet\Enum" -Recurse -ErrorAction SilentlyContinue | Where-Object { $_.Name -match "Device Parameters\\Power Management" } | ForEach-Object { $allowIdle = Get-ItemProperty -Path $_.PSPath -Name "AllowIdlePowerDown" -ErrorAction SilentlyContinue if ($allowIdle -and $allowIdle.AllowIdlePowerDown -eq 1) { # 获取设备友好名称 $devicePath = Split-Path (Split-Path $_.PSPath -Parent) -Parent $deviceInfo = Get-ItemProperty -Path $devicePath -Name "FriendlyName" -ErrorAction SilentlyContinue $deviceName = if ($deviceInfo) { $deviceInfo.FriendlyName } else { $_.Name.Split('\')[-3] } $deviceList += [PSCustomObject]@{ DeviceName = $deviceName RegistryPath = $_.PSPath AllowIdlePowerDown = $allowIdle.AllowIdlePowerDown # 输出列表到控制台并保存到CSV文件 $deviceList | Format-Table -AutoSize $deviceList | Export-Csv -Path "EnabledIdlePowerDownDevices.csv" -NoTypeInformation -Encoding UTF8
脚本说明: #
-
它会遍历系统注册表中存储设备电源设置的路径,检查
AllowIdlePowerDown值(1表示启用该选项,0表示禁用) - 收集设备的友好名称和注册表路径,最后生成的CSV文件会保存在脚本运行的目录下
二、批量禁用所有设备的该选项 #
如果确认要禁用这些设备的选项,用下面这个PowerShell脚本就能一键完成:
# 批量禁用所有设备的"允许计算机关闭此设备"选项
Get-ChildItem "HKLM:\SYSTEM\CurrentControlSet\Enum" -Recurse -ErrorAction SilentlyContinue | Where-Object {
$_.Name -match "Device Parameters\\Power Management"
} | ForEach-Object {
$allowIdle = Get-ItemProperty -Path $_.PSPath -Name "AllowIdlePowerDown" -ErrorAction SilentlyContinue
if ($allowIdle -and $allowIdle.AllowIdlePowerDown -eq 1) {
# 修改值为0以禁用
Set-ItemProperty -Path $_.PSPath -Name "AllowIdlePowerDown" -Value 0
$deviceName = (Get-ItemProperty (Split-Path (Split-Path $_.PSPath -Parent) -Parent)).FriendlyName
Write-Host "已禁用设备: $deviceName"