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

PowerShell创建开机启动计划任务报访问被拒绝(0x80070005)

核心结论

创建配置为开机触发(-AtStartup)的计划任务,必须在管理员权限上下文中运行脚本,你遇到的0x80070005 拒绝访问错误就是权限不足导致的。

原因说明
  • 普通权限启动的PowerShell仅持有标准用户令牌,仅能创建用户态调度类的计划任务(比如你写的每日0点/12点触发的定时任务,这类任务的调度逻辑在用户登录后生效)。
  • 开机触发类任务属于系统级调度规则,触发时机早于用户登录,对应的任务计划存储位置(%SystemRoot%\System32\Tasks目录、系统任务计划注册表分支)有强制权限管控,必须提升到管理员权限才能写入。
  • 你手动通过任务计划程序GUI创建同类型任务能成功,是因为GUI创建系统级任务时会自动触发UAC提权弹窗,确认后操作是在管理员权限下完成的,和你输入的账号本身权限无关——哪怕账号属于本地管理员组,PowerShell默认启动也不会自动获取管理员令牌。
修复方案
  • 手动右键点击PowerShell图标,选择「以管理员身份运行」,之后再执行你的现有脚本即可,其余代码逻辑不需要修改。
  • 如果需要脚本自动检测并申请管理员权限,可以在脚本最开头加入以下代码段,后续直接双击运行脚本就会自动触发UAC提权提示:
# 自动提升至管理员权限运行
$currentPrincipal = New-Object Security.Principal.WindowsPrincipal([Security.Principal.WindowsIdentity]::GetCurrent())
if (-not $currentPrincipal.IsInRole([Security.Principal.WindowsBuiltInRole]::Administrator)) {
    Start-Process powershell.exe "-NoProfile -ExecutionPolicy Bypass -File `"$PSCommandPath`"" -Verb RunAs
    exit
}

补充说明:提权后运行脚本时,Get-Credential弹窗正常输入你之前用的账号密码即可,-User+-Password的参数写法对开机触发类任务完全生效,不需要额外调整任务的运行配置。

内容的提问来源于stack exchange,提问作者Chris Giles

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.28 05:21:22