如何通过PowerShell命令/脚本在组策略中禁用屏幕保护程序密码保护?
解决PowerShell修改屏保密码保护无效及方法调用报错问题
直接改HKCU注册表为啥没用?
组策略的配置优先级高于用户个人注册表(HKCU),哪怕你把HKCU:\Control Panel\Desktop下的ScreenSaveUsePassword改成0,组策略会强制覆盖这个设置,所以根本不生效。要搞定得改组策略对应的注册表项,或者直接用组策略命令配置。
正确操作方法
1. 修改组策略专属注册表项(需要管理员权限)
组策略里的屏保密码保护设置存在HKLM\Software\Policies\Microsoft\Windows\Control Panel\Desktop路径下,执行以下命令:
# 先创建路径(不存在就新建) New-Item -Path "HKLM:\Software\Policies\Microsoft\Windows\Control Panel\Desktop" -Force # 禁用屏保密码保护 Set-ItemProperty -Path "HKLM:\Software\Policies\Microsoft\Windows\Control Panel\Desktop" -Name ScreenSaveUsePassword -Value 0
弄完之后要么重启电脑,要么强制刷新组策略:
gpupdate /force
2. 修复Set-OnResumeDisplayLogon调用报错
之前执行Set-OnResumeDisplayLogon(0)报错,是因为没拿到正确的WMI对象。正确步骤是先获取对应的WMI实例,再调用方法:
# 如果是远程桌面环境,用这个获取实例 $scrSaver = Get-WmiObject -Namespace root\cimv2\terminalservices -Class Win32_TSGeneralSetting -Filter "TerminalName='RDP-tcp'" # 如果是本地桌面,换成这条命令 # $scrSaver = Get-WmiObject -Namespace root\cimv2 -Class Win32_Desktop # 调用方法禁用恢复时登录 $scrSaver.SetOnResumeDisplayLogon(0)
注意:本地桌面和远程桌面的WMI命名空间、类不一样,选错了就会拿到空对象,报你遇到的那个错。
怎么确认生效了?
- 打开组策略编辑器(输入
gpedit.msc),找到用户配置>管理模板>控制面板>个性化,看看“屏幕保护程序恢复时显示登录屏幕”是不是改成“已禁用”了 - 查一下
HKLM:\Software\Policies\Microsoft\Windows\Control Panel\Desktop下的ScreenSaveUsePassword值是不是0
内容的提问来源于stack exchange,提问作者DMUN
相关产品推荐
相关产品推荐

