【发布时间】:2018-10-18 10:32:17
【问题描述】:
我正在尝试创建一个在电源计划之间切换的脚本。这是脚本:
$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 相同:
我的目标是将脚本添加到任务计划程序中,每次我锁定计算机时,电源状态都会相应地切换。
【问题讨论】:
-
无法复制。您是否检查了
$PP1和$PP2的值是否符合您的预期? -
我编辑了上面的问题,显示了我在
PP1和$PP2之后得到的值 -
当您执行
$PP1 | Get-Member时,您是否看到方法Activate()?您的对象的实际类型是什么? -
是的,抱歉,但我不确定“您的对象的实际类型是什么?”是什么意思,但我在 MemberType 下得到方法“激活”
-
对象类型显示在
Get-Member输出的最顶部。以TypeName:开头的行。无论如何,如果您确实看到了一个方法Activate但仍然得到您描述的错误,那么还有其他问题。尝试通过从 CMD 窗口或“运行”对话框运行powershell.exe -NoExit -NoProfile来启动干净的 PowerShell 控制台。在该控制台中运行代码时,您是否仍然收到错误消息?
标签: powershell powershell-5.0 powershell-ise