加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > Windows > 正文

windows – Powershell Set Lid关闭动作

发布时间:2020-12-13 20:39:58 所属栏目:Windows 来源:网络整理
导读:我希望自动设置Windows 7在我的工作笔记本电脑上关闭盖子时所采取的操作,因为每次登录时都会通过GPO重置. 我知道我可以在批处理脚本中使用powercfg命令来实现这个目的: powercfg -setacvalueindex 5ca83367-6e45-459f-a27b-476b1d01c936 0powercfg -setdcva
我希望自动设置Windows 7在我的工作笔记本电脑上关闭盖子时所采取的操作,因为每次登录时都会通过GPO重置.

我知道我可以在批处理脚本中使用powercfg命令来实现这个目的:

powercfg -setacvalueindex 5ca83367-6e45-459f-a27b-476b1d01c936 0
powercfg -setdcvalueindex 5ca83367-6e45-459f-a27b-476b1d01c936 0

然而,这是尝试学习一些PowerShell的一个很好的借口.我的第一次尝试需要10秒以上才能运行.

在运行时和运行方面,我如何改进以下内容?在清洁代码方面.接近下面的惯用PowerShell方法是什么?

$DO_NOTHING = 0

$activePowerPlan = Get-WmiObject -Namespace "rootcimv2power" Win32_PowerPlan | where {$_.IsActive}
$rawPowerPlanID = $activePowerPlan | select -Property InstanceID
$rawPowerPlanID -match '({.*})}'
$powerPlanID = $matches[1]

# The .GetRelated() method is an inefficient approach,i'm looking for a needle and this haystack is too big. Can i go directly to the object instead of searching?
$lidCloseActionOnACPower = $activePowerPlan.GetRelated("win32_powersettingdataindex") | where {$_.InstanceID -eq "Microsoft:PowerSettingDataIndex$powerPlanIDAC{5ca83367-6e45-459f-a27b-476b1d01c936}"}
$lidCloseActionOnBattery = $activePowerPlan.GetRelated("win32_powersettingdataindex") | where {$_.InstanceID -eq "Microsoft:PowerSettingDataIndex$powerPlanIDDC{5ca83367-6e45-459f-a27b-476b1d01c936}"}

$lidCloseActionOnACPower | select -Property SettingIndexValue
$lidCloseActionOnACPower.SettingIndexValue = $DO_NOTHING
$lidCloseActionOnACPower.put()

$lidCloseActionOnBattery | select -Property SettingIndexValue
$lidCloseActionOnBattery.SettingIndexValue = $DO_NOTHING
$lidCloseActionOnBattery.put()
试试WMI加速器:
$class = ([wmi] 'rootcimv2power:Win32_PowerSettingDataIndex.InstanceID="Microsoft:PowerSettingDataIndex{8c5e7fda-e8bf-4a96-9a85-a6e23a8c635c}DC{5ca83367-6e45-459f-a27b-476b1d01c936}"')
$class.SettingIndexValue = 0
$class.Put()

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读