У меня есть скрипт Powershell, над которым я работаю, чтобы автоматизировать некоторые процессы нашего метода развертывания для миграции на Windows 10.Часть этого скрипта активирует опцию High Power Power Plan с помощью powercfg.Он отлично работает на тех настольных компьютерах, которые мы используем, когда три обычных плана (Balanced / HP / Power Saver) уже присутствуют / созданы, но на ноутбуках, на которых я его тестирую, присутствует только Balanced в меню «Выберите план питания».
Обычно я щелкаю через графический интерфейс, чтобы «Создать план электропитания», который спрашивает меня, хочу ли я основать его на существующем плане.Здесь я могу выбрать шаблон плана High Performance, затем назвать его как High Performance и использовать его таким образом.Я ищу способ сделать это в скрипте Powershell, чтобы я мог запускать этот скрипт как на ноутбуках, так и на настольных компьютерах.
Вот что у меня есть для изменения плана электропитания на Высокая производительность на машинах, где HPПлан питания уже создан, и в меню «Выбрать ...» (любезно предоставлено SQL Soldier ):
Try {
$HighPerf = powercfg -l | %{if($_.contains("High performance")) {$_.split()[3]}}
$CurrPlan = $(powercfg -getactivescheme).split()[3]
if ($CurrPlan -ne $HighPerf) {powercfg -setactive $HighPerf}
Write-Host "Power plan has been configured to High performance."
}
Catch {
Write-Warning -Message "Unable to set power plan to high performance"
}
У меня есть переменная с именем $ Laptop, которая при -eq to "y "или" Да "Я выполняю другие действия в сценарии, поэтому я хотел бы обернуть этот код в оператор if, основанный на $ Laptop, который бы создал план электропитания, затем активировать его, если компьютер является ноутбуком, и выполнить командувыше код нормально, если нет.Я понимаю, что этот код не совсем железный, но на самом деле мы выбираем только несколько моделей, поэтому я не пытаюсь сделать его надежным.
Пожалуйста, дайте мне знать, если я смогу что-то уточнить.