Windows 11下如何实现开机时以管理员权限运行PowerShell命令?
Windows 11下如何实现开机时以管理员权限运行PowerShell命令?
嘿,我懂你的困扰——把快捷方式丢进Startup文件夹本以为能搞定,结果Windows完全不按预期来,连UAC提示都没影。其实Startup文件夹里的快捷方式在开机阶段默认不会触发管理员权限提升(毕竟权限变更需要用户手动确认,开机登录流程里系统不会主动弹UAC),所以得换个更靠谱的方案,首推任务计划程序,这是Windows里最稳定的自动化任务工具,操作也不复杂:
方法一:用任务计划程序实现(最推荐)
这个方法能确保命令以管理员权限运行,还能灵活控制触发时机和运行状态:
- 打开任务计划程序:按下Win+R,输入
taskschd.msc回车就能启动。 - 创建新任务:右键左侧的「任务计划程序库」,选择「创建基本任务」。
- 命名任务:比如叫「Chocolatey开机自动升级」,描述可以写“开机时自动用管理员权限升级所有Chocolatey包”,点下一步。
- 设置触发条件:选择「当计算机启动时」(如果想等用户登录后再运行,也可选「当用户登录时」,看你的需求),点下一步。
- 选择操作类型:选「启动程序」,点下一步。
- 配置程序和参数:
- 用PowerShell 7的话,在「程序/脚本」里填:
C:\Program Files\PowerShell\7\pwsh.exe - 用默认PowerShell 5的话,填:
powershell.exe - 在「添加参数(可选)」里填:
-Command "choco upgrade -y all",要是不想开机弹出PowerShell窗口,再加个-WindowStyle Hidden,变成:-WindowStyle Hidden -Command "choco upgrade -y all"
- 用PowerShell 7的话,在「程序/脚本」里填:
- 关键权限设置:别直接点完成!勾选窗口底部的「打开此任务属性的对话框」,再点完成。
- 在弹出的属性窗口里,切换到「安全选项」标签,勾选「使用最高权限运行」——这是让任务获取管理员权限的核心步骤。
- 要是担心任务偶尔失败,还能去「设置」标签,勾选「如果任务失败,重新启动」,比如设置重试3次,每次间隔1分钟。
设置完后,你可以右键任务选「运行」测试一下,看看会不会弹出UAC提示(如果你的UAC设置不是最低档的话),或者后台有没有正常执行Chocolatey升级。
为什么你之前的快捷方式方法不行?
Startup文件夹里的快捷方式就算勾选了「以管理员身份运行」,Windows在开机登录的启动流程里也不会自动触发UAC提升——毕竟涉及权限变更,系统默认需要用户主动确认,而开机阶段不会自动弹出这个提示,所以手动点快捷方式能触发,但开机时就没反应了。
备选方法:批处理+Startup文件夹(不推荐,仅作补充)
如果你坚持想用Startup文件夹,可以试试这个:
- 新建一个文本文件,复制下面的内容进去,保存为
ChocoUpgrade.bat(注意后缀是.bat不是.txt):
@echo off powershell -Command "choco upgrade -y all"
- 右键这个批处理文件,创建快捷方式,把快捷方式拖到Startup文件夹(
C:\Users\<你的用户名>\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\Startup)。 - 右键快捷方式→「属性」→「快捷方式」标签→「高级」,勾选「以管理员身份运行」,确定保存。
不过还是要提醒,这个方法大概率还是会遇到开机时UAC不弹出的问题,所以优先用任务计划程序的方案。
备注:内容来源于stack exchange,提问作者Artur Meinild




