You need to enable JavaScript to run this app.
最新活动
大模型
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

Windows 11下如何实现开机时以管理员权限运行PowerShell命令?

Windows 11下如何实现开机时以管理员权限运行PowerShell命令?

嘿,我懂你的困扰——把快捷方式丢进Startup文件夹本以为能搞定,结果Windows完全不按预期来,连UAC提示都没影。其实Startup文件夹里的快捷方式在开机阶段默认不会触发管理员权限提升(毕竟权限变更需要用户手动确认,开机登录流程里系统不会主动弹UAC),所以得换个更靠谱的方案,首推任务计划程序,这是Windows里最稳定的自动化任务工具,操作也不复杂:


方法一:用任务计划程序实现(最推荐)

这个方法能确保命令以管理员权限运行,还能灵活控制触发时机和运行状态:

  1. 打开任务计划程序:按下Win+R,输入taskschd.msc回车就能启动。
  2. 创建新任务:右键左侧的「任务计划程序库」,选择「创建基本任务」。
  3. 命名任务:比如叫「Chocolatey开机自动升级」,描述可以写“开机时自动用管理员权限升级所有Chocolatey包”,点下一步。
  4. 设置触发条件:选择「当计算机启动时」(如果想等用户登录后再运行,也可选「当用户登录时」,看你的需求),点下一步。
  5. 选择操作类型:选「启动程序」,点下一步。
  6. 配置程序和参数
    • 用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"
  7. 关键权限设置:别直接点完成!勾选窗口底部的「打开此任务属性的对话框」,再点完成。
    • 在弹出的属性窗口里,切换到「安全选项」标签,勾选「使用最高权限运行」——这是让任务获取管理员权限的核心步骤。
    • 要是担心任务偶尔失败,还能去「设置」标签,勾选「如果任务失败,重新启动」,比如设置重试3次,每次间隔1分钟。

设置完后,你可以右键任务选「运行」测试一下,看看会不会弹出UAC提示(如果你的UAC设置不是最低档的话),或者后台有没有正常执行Chocolatey升级。


为什么你之前的快捷方式方法不行?

Startup文件夹里的快捷方式就算勾选了「以管理员身份运行」,Windows在开机登录的启动流程里也不会自动触发UAC提升——毕竟涉及权限变更,系统默认需要用户主动确认,而开机阶段不会自动弹出这个提示,所以手动点快捷方式能触发,但开机时就没反应了。


备选方法:批处理+Startup文件夹(不推荐,仅作补充)

如果你坚持想用Startup文件夹,可以试试这个:

  1. 新建一个文本文件,复制下面的内容进去,保存为ChocoUpgrade.bat(注意后缀是.bat不是.txt):
@echo off
powershell -Command "choco upgrade -y all"
  1. 右键这个批处理文件,创建快捷方式,把快捷方式拖到Startup文件夹(C:\Users\<你的用户名>\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\Startup)。
  2. 右键快捷方式→「属性」→「快捷方式」标签→「高级」,勾选「以管理员身份运行」,确定保存。

不过还是要提醒,这个方法大概率还是会遇到开机时UAC不弹出的问题,所以优先用任务计划程序的方案。

备注:内容来源于stack exchange,提问作者Artur Meinild

火山引擎 最新活动