You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Windows锁屏状态下如何以完全管理员权限运行脚本?

问题根因

锁屏状态下点击utilman(轻松使用)触发的进程,运行在Winlogon安全桌面的受限SYSTEM令牌上下文中,持有的不是完整权限的系统令牌:

  • 该令牌默认剥离了操作系统核心对象(包括win32_userprofile类WMI对象)必需的敏感特权,直接触发0x80070522 (ERROR_PRIVILEGE_NOT_HELD)报错
  • 由于父进程令牌自带限制属性,你用Get-Credential传入管理员凭据、Start-Process -Verb RunAs、第三方提权工具elevate.exe都无效:子进程会默认继承父进程的令牌限制,且锁屏下UAC提权弹窗无法在安全桌面正常完成交互授权,根本拿不到完整高权限令牌。

未锁屏状态下脚本能正常运行,是因为此时utilman运行在当前登录用户的可交互桌面上下文,只要拿到管理员提权就能获得对应操作特权,和锁屏场景的令牌逻辑完全不同。

COM异常报错截图
Remove-WmiObject返回结果代码截图

可行解决方案

最稳定、无版本兼容问题的方案是通过计划任务中转执行,避开受限令牌继承问题:

  1. 提前在系统中创建手动触发的计划任务,配置项如下:
    • 运行账户选择SYSTEM,勾选「使用最高权限运行」选项
    • 操作项配置为启动powershell.exe,添加启动参数:-NoProfile -ExecutionPolicy Bypass -File "你的故障排查脚本全路径.ps1"
    • 自定义简单好记的任务名称,比如UtilmanTroubleshoot
  2. 修改原来点击utilman触发的入口脚本,删掉直接执行故障排查的逻辑,只保留一行触发计划任务的命令即可:
    schtasks /run /tn "UtilmanTroubleshoot"
    

该方案的原理是Windows计划任务服务本身运行在系统完整权限上下文,手动触发启动的PowerShell进程会拿到无限制的SYSTEM令牌,自带所有操作WMI、删除用户配置文件需要的特权,完全不需要交互提权,锁屏、未锁屏状态下都能稳定运行。

避坑提示
  • 不要尝试直接在utilman触发的原始PowerShell进程中调用API调整特权,受限令牌的限制是内核层面写入的,用户态脚本无法突破
  • 不要在锁屏场景依赖UAC提权逻辑,安全桌面的交互限制会直接拦截所有提权弹窗流程,根本走不完授权
  • 调试时可以在脚本开头加whoami /priv | Out-File C:\priv_debug.log,对比锁屏直接触发、计划任务触发两种场景输出的特权列表,就能直观看到两种令牌的权限差异。

内容的提问来源于stack exchange,提问作者Robert Wyllyam

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.03 05:09:33