【发布时间】:2020-04-08 16:27:17
【问题描述】:
如何制作一个 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.!"
}
【问题讨论】:
-
尝试将 AND 比较器括起来:($PowerSettings.IsActive -And ($PowerSettings.ElementName -eq 'Hoge prestaties')
-
它一直说它是 $True,而我的 Powerplan 处于平衡状态:如果 ($PowerSettings.IsActive -And ($PowerSettings.ElementName -eq 'Hoge prestaties')) 我希望这是错误的://
-
对我来说很好。您确定 ElementName 使用的是区域语言吗?如果输入 $PowerSettings.ElementName 会得到什么?
-
- Gebalanceerd - Hoge prestaties - Energiebesparing 对我来说似乎是正确的?
标签: powershell settings energy