锁定屏幕后阻止Skype for Business自定义状态变更,能否修改Script新增注册表项?
调整脚本修改额外注册表项,阻止Skype for Business(Lync)锁屏后切换状态
当然可以调整现有脚本来添加额外的注册表项修改操作!只要这些注册表项确实关联着Lync/Skype for Business的状态检测逻辑,就能实现你想要的锁屏后保持自定义状态的需求。
先搞懂核心逻辑:Lync状态自动切换的控制项
Lync/Skype for Business默认会根据系统锁屏、用户无操作等行为自动切换状态,这类行为主要由几个注册表项管控,常见的有:
HKCU\Software\Microsoft\Office\<版本号>\Lync\EnableAutoAway:设为0可禁用自动切换到“离开”状态HKCU\Software\Microsoft\Office\<版本号>\Lync\EnableAutoIdle:设为0可禁用空闲状态的自动检测- 部分版本还会用到
HKCU\Software\Microsoft\Office\<版本号>\Lync\IdleTimeThreshold:可以调整触发空闲状态的时间阈值
怎么修改现有脚本?
假设你手里的脚本是PowerShell或者VBScript(这类脚本最常用在注册表修改场景),直接追加对应的注册表写入命令就行:
举个PowerShell的例子
如果原脚本已经有修改注册表的逻辑,你直接加这段代码:
# 禁用自动切换到Away状态 Set-ItemProperty -Path "HKCU:\Software\Microsoft\Office\16.0\Lync" -Name "EnableAutoAway" -Value 0 -Type DWord # 禁用自动Idle状态检测 Set-ItemProperty -Path "HKCU:\Software\Microsoft\Office\16.0\Lync" -Name "EnableAutoIdle" -Value 0 -Type DWord # (可选)把空闲检测阈值拉满到24小时(1440分钟) Set-ItemProperty -Path "HKCU:\Software\Microsoft\Office\16.0\Lync" -Name "IdleTimeThreshold" -Value 1440 -Type DWord
注意:把
16.0换成你的Office版本号——比如Office 2013是15.0,2010是14.0
如果是VBScript的话
追加这段代码就好:
Set WshShell = CreateObject("WScript.Shell") ' 禁用自动Away状态 WshShell.RegWrite "HKCU\Software\Microsoft\Office\16.0\Lync\EnableAutoAway", 0, "REG_DWORD" ' 禁用自动Idle状态 WshShell.RegWrite "HKCU\Software\Microsoft\Office\16.0\Lync\EnableAutoIdle", 0, "REG_DWORD" ' 设置空闲检测阈值为24小时 WshShell.RegWrite "HKCU\Software\Microsoft\Office\16.0\Lync\IdleTimeThreshold", 1440, "REG_DWORD"
几个必须注意的点
- 修改注册表前一定要关闭Lync/Skype for Business,不然修改可能不生效,甚至导致程序出问题
- 修改完重启软件,然后锁屏测试状态是否保持——如果还是变,可能是组策略或者Office更新覆盖了你的注册表设置
- 如果原脚本是针对其他场景写的,要确保新增的注册表路径、键名完全匹配你的Office版本和软件安装情况
要是能给我看看现有脚本的代码片段,或者你明确要修改的具体注册表项名称,我可以帮你调整得更精准。
内容的提问来源于stack exchange,提问作者Storm
相关产品推荐
相关产品推荐

