开始折腾#我让AI写了一个PowerShell脚本,可以自动检测 HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\PriorityControl 中 ConvertibleSlateMode 的值,如果是1则改为0,是0则改为1。
Terminal window1# 检查并切换ConvertibleSlateMode注册表值的脚本2# 需要以管理员权限运行3
4# 定义注册表路径和值名称5$registryPath = "HKLM:\SYSTEM\CurrentControlSet\Control\PriorityControl"6$valueName = "ConvertibleSlateMode"7
8# 检查注册表路径是否存在9if (-not (Test-Path $registryPath)) {10 Write-Host "注册表路径不存在: $registryPath"11 exit 112}13
14# 检查值是否存在并获取当前值15try {16 $currentValue = Get-ItemProperty -Path $registryPath -Name $valueName -ErrorAction Stop17} catch {18 Write-Host "注册表值不存在,将创建该值并设置为0"19 Set-ItemProperty -Path $registryPath -Name $valueName -Value 0 -Type DWord20 Write-Host "已创建 $valueName 并设置为 0"21 exit 022}23
24# 切换值25if ($currentValue.$valueName -eq 1) {26 Set-ItemProperty -Path $registryPath -Name $valueName -Value 027 Write-Host "已将 $valueName 从 1 修改为 0"28} elseif ($currentValue.$valueName -eq 0) {29 Set-ItemProperty -Path $registryPath -Name $valueName -Value 130 Write-Host "已将 $valueName 从 0 修改为 1"31} else {32 Write-Host "当前值不是0或1,重置为0"33 Set-ItemProperty -Path $registryPath -Name $valueName -Value 034}35
36Write-Host "操作完成"有了脚本之后,只需要让脚本开机自启动就行了。不过现在有一个问题,使用注册表设置开机自启动会导致用户注销再重进也会执行脚本,使用任务计划程序可能会导致执行的时机不对。于是我便使用了组策略里面的开机启动脚本功能。
要想让脚本在自启动的时候也能修改,需要修改注册表中 HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\PriorityControl 的权限为所有人,这样就可以不需要管理员身份修改了。
具体使用组策略配置启动脚本的配置方法,就在组策略中的 Windows 设置→脚本(启动/关机)→启动→PowerShell 脚本。将上面的脚本放到电脑上任意位置,运行时机选择最后运行Windows PowerShell 脚本,并选择使用这个脚本即可。