gpt4 book ai didi

powershell - 如何使用 Powershell 更改 Windows 10 中的电源计划并在长脚本后恢复为原始设置?

转载 作者:行者123 更新时间:2023-12-03 00:57:15 25 4
gpt4 key购买 nike

我如何制作一个 PowerShell 脚本来检查当前的电源计划,将其更改为“高性能”(如果还没有),然后运行一个长的 PowerShell 脚本,然后在脚本之后,切换回原来的电源计划?

我想到了类似的东西,但感觉 -and 语句不起作用,或者我做错了什么?

此时我得到了以下信息:

$PowerSettingsorg = Get-WmiObject -Namespace root\cimv2\power -Class win32_powerplan
$PowerSettings = Get-WmiObject -Namespace root\cimv2\power -Class win32_powerplan


If ($PowerSettings.IsActive -eq $True -And $PowerSettings.ElementName -eq 'Hoge prestaties')
{
write-host "++ Power Plan Settings are correct.!"
}

Else {
$hpPlan = Get-WmiObject -Namespace root\cimv2\power -Class win32_powerplan | Where-Object { $_.ElementName -eq 'Hoge prestaties' }
$hpPlan.Activate()
write-host "++ Power plan Settings are changed to High Performance.!"
}

<Long Script here>


If ($PowerSettingsorg.IsActive -eq 'true' -and $PowerSettingsorg.ElementName -eq 'Gebalanceerd')
{
$orgPlan = Get-WmiObject -Namespace root\cimv2\power -Class win32_powerplan | Where-Object { $_.ElementName -eq 'Gebalanceerd' }
$orgPlan.Activate()
write-host "++ Power plan Settings have been reverted to Belanced.!"
}
Else {
write-host "++ No Power Plan settings have been reverted.!"
}

最佳答案

所以这是我的修复,因为 .Activate() 方法在较新版本的 PS 上神秘地消失了:

使用 Activate 方法和 CIM 的老方法

$p = Get-CimInstance -Name root\cimv2\power -Class win32_PowerPlan -Filter "ElementName = 'High Performance'"      
Invoke-CimMethod -InputObject $p -MethodName Activate

现在使用 powercfg 设置所选计划的新方法

$p = Get-CimInstance -Name root\cimv2\power -Class win32_PowerPlan -Filter "ElementName = 'High Performance'"      
powercfg /setactive ([string]$p.InstanceID).Replace("Microsoft:PowerPlan\{","").Replace("}","")

关于powershell - 如何使用 Powershell 更改 Windows 10 中的电源计划并在长脚本后恢复为原始设置?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61105428/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com