powershell - 使用 PowerShell 更改电源计划
问题描述
我正在尝试创建一个在电源计划之间切换的脚本。这是脚本:
$PP1 = Get-WmiObject -Namespace root\cimv2\power -Class Win32_PowerPlan |
where {$_.elementname -eq "Balanced"}
$PP2 = Get-WmiObject -Namespace root\cimv2\power -Class Win32_PowerPlan |
where {$_.elementname -eq "My Custom Plan 1"}
if ($PP1) {
$PP2.Activate()
}
if ($PP2) {
$PP1.Activate()
}
这是我得到的错误:
异常调用“激活”:“此方法未在任何类中实现” 在行:6 字符:1 + $PP2.Activate() +~~~~~~~~~~~~~~~ + CategoryInfo : NotSpecified: (:) [], MethodInvocationException +fullyQualifiedErrorId:WMIMethodException 异常调用“激活”:“此方法未在任何类中实现” 在行:10 字符:1 + $PP1.Activate() +~~~~~~~~~~~~~~~ + CategoryInfo : NotSpecified: (:) [], MethodInvocationException +fullyQualifiedErrorId:WMIMethodException
知道如何解决这个问题吗?
下面是我执行后得到的输出$PP1
。输出与以下相同$PP2
:
__属:2 __CLASS : Win32_PowerPlan __SUPERCLASS : CIM_SettingData __DYNASTY : CIM_ManagedElement __RELPATH : Win32_PowerPlan.InstanceID="Microsoft:PowerPlan\\{381b4222-f694-41f0-9685-ff5bb260df2e}" __PROPERTY_COUNT : 5 __DERIVATION : {CIM_SettingData, CIM_ManagedElement} __服务器:PCLP2 __NAMESPACE : 根\cimv2\power __PATH : \\PCLP2\root\cimv2\power:Win32_PowerPlan.InstanceID="Microsoft:PowerPlan\\{381b4222-f694-41f0-9685-ff5bb260df2e }" 标题 : 描述:在有能力的硬件上自动平衡性能和能耗。 元素名称:平衡 InstanceID : Microsoft:PowerPlan\{381b4222-f694-41f0-9685-ff5bb260df2e} IsActive : 真 PS计算机名称:PCLP2
我的目标是将脚本添加到任务计划程序中,每次我锁定计算机时,电源状态都会相应地切换。
解决方案
我发现由于某种我不知道确切原因的原因,此方法在 Windows 10 上不起作用,所以我只是使用powercfg
命令来解决这个问题,这是一个工作脚本。
$PP1 = Get-WmiObject -Namespace root\cimv2\power -Class win32_powerplan | where {$_.elementname -eq "Balanced"}
if ($PP1.IsActive -eq "False") {
powercfg /setactive 47f02214-4297-464e-8b31-f95e26d28082
} Else {
powercfg /setactive 381b4222-f694-41f0-9685-ff5bb260df2e
}
因为我只有 2 个电源计划,所以这更简单,这就是为什么我有 1 个变量,它只能是 PowerPlan A 或 PowerPlan B。
不知道如何在任务计划程序上进行这项工作,因为如果我运行该任务,它会为我打开一个记事本,尽管我可以使用带有powercfg
命令的 bat 文件来完成这项工作,但只是好奇。有什么办法可以使这项工作?
推荐阅读
- loops - 如何访问飞镖循环之外的变量?
- swift - swift 5中选项之间的编辑器导航栏
- python - python list split 转换为 int 并添加
- java - Java 中是否存在包含所有其他数字类型的数字类型(原始类型或类)?
- python - 如何在 Django Rest Framework 中进行单元测试时模拟修补 Serializer.is_valid() 方法
- android - 将 RecyclerView A 中的 cardview 传递给 RecyclerView B
- python - Prophet 不适用于特定情况(normal_lpdf:位置参数 [1] 是 -nan(ind),但必须是有限的!)
- c# - 如何找出传递给父级的泛型类型
- python - 尝试使用 Selenium 从 Web 下载数据并出现奇怪的错误
- bootstrap-4 - Bootstrap 4.5 表 TR 后跟 TH