如何在Windows任务计划程序中配置带管理员权限的PowerShell命令
解决Chocolatey更新任务计划窗口闪退及执行验证问题
一、修改执行命令,保留窗口并记录日志
直接运行cup all -y会因任务完成后立即关闭窗口导致无法查看结果,且无日志回溯。调整任务的「操作」命令:
powershell -NoExit -Command "choco upgrade all -y | Tee-Object -FilePath 'C:\ChocoUpdates\choco_update_log.txt'"
-NoExit:让PowerShell执行完命令后保持窗口打开,方便查看过程Tee-Object:同时把输出打印到窗口和写入日志(需先手动创建C:\ChocoUpdates文件夹)- 用完整的
choco upgrade代替缩写cup,避免环境变量识别异常
二、修正权限与执行环境设置
- 「常规」选项卡:
- 勾选「以最高权限运行」
- 选择你日常登录的管理员账户(不要用系统账户,避免权限环境不匹配)
- 「操作」→「编辑」:
- 「起始于(可选)」填写Chocolatey安装目录(一般是
C:\ProgramData\chocolatey\bin,不确定的话在PowerShell里输where choco查看),防止找不到choco命令
- 「起始于(可选)」填写Chocolatey安装目录(一般是
- 「设置」选项卡:
- 取消「如果任务运行时间超过X小时就停止」的勾选,避免大更新被中途终止
- 勾选「允许任务按需运行」「如果错过计划启动时间,立即运行任务」
三、验证执行结果
- 手动触发任务:右键任务→「运行」,观察PowerShell窗口是否正常显示更新流程
- 查看日志:打开
C:\ChocoUpdates\choco_update_log.txt,里面会详细记录每个包的更新状态(成功、失败或无需更新) - 核对包版本:在PowerShell里输
choco list --local-only,对比更新前后的版本号
四、可选:后台静默执行(无弹窗)
如果不需要弹窗,仅需确认结果,可改用以下命令:
powershell -Command "choco upgrade all -y | Out-File -FilePath 'C:\ChocoUpdates\choco_update_log.txt' -Append"
任务会在后台执行,完成后直接查看日志即可
内容的提问来源于stack exchange,提问作者Vikas Rajbhar
相关产品推荐
相关产品推荐

