在Windows Server 2019上运行计划的任务时,“访问被拒绝”(0x80070005)

时间:2019-01-29 14:43:10

标签: windows-server taskscheduler windowstaskschedule windows-server-2019

我刚刚设置了一个新的Windows Server 2019实例,并试图通过Windows Task Scheduler运行任务(C#控制台应用程序)。我已将其设置为以具有“管理员”权限的特定Windows用户身份登录。但是,当我尝试运行任务(按计划或通过按需登录并按需运行)时,出现错误:

“访问被拒绝”,错误代码为0x80070005。到目前为止我尝试过的事情:

  • 再次检查用户帐户的密码是否正确。
  • 再次检查它们是否在管理员组中。
  • 尝试使用其他管理员用户帐户。
  • 安装了所有Windows更新。
  • 重新启动服务器。
  • 授予作业可执行文件所在目录的所有权限。
  • 选中该框以“最高特权”运行作业。

什么都没起作用...我想知道其他人是否在Windows Server 2019中遇到了这个问题,以及他们如何使计划任务运行?

2 个答案:

答案 0 :(得分:0)

在Windows 7 SP1中,我遇到了同样的问题。什么都没做。
我找到了解决方法:
1)在Task Scheduler导出任务中(到.xml)。
2)在任务计划程序中删除任务。
3)编辑.xml文件:
    3.1)在第二个字符串中将

Task version="1.2"
替换为
Task version="1.3"

    3.2)如果不存在字符串
<UseUnifiedSchedulingEngine>false</UseUnifiedSchedulingEngine>
,则将字符串
<UseUnifiedSchedulingEngine>true</UseUnifiedSchedulingEngine>
替换为
<UseUnifiedSchedulingEngine>true</UseUnifiedSchedulingEngine>
或在字符串
  <Settings>
之后添加字符串
<UseUnifiedSchedulingEngine>false</UseUnifiedSchedulingEngine>

4)将.xml文件导入Task Scheduler。
现在,任务开始运行。
当我发现内置Windows任务正常运行时,我发现了这种解决方法。

答案 1 :(得分:0)

我在尝试在 Powershell 上创建计划任务以将文件复制到映射驱动器时遇到了类似的挑战。

下面是我的计划任务命令

$TaskName = "FileSync"
$Description = "This task will run periodically to sync .fin files from a specified source directory to a specified destination directory"
$ScriptPath = "C:\Users\my_userDesktop\file_sync.ps1"
$UserAccount = "COMP1\my_user"
$Action = New-ScheduledTaskAction -Execute "PowerShell.exe" -Argument "-ExecutionPolicy Bypass -File $ScriptPath"
$Principal = New-ScheduledTaskPrincipal -UserID $UserAccount -LogonType ServiceAccount -RunLevel Highest
$Trigger = New-ScheduledTaskTrigger -Once -At (Get-Date) -RepetitionInterval (New-TimeSpan -Minutes 1) -RepetitionDuration ([System.TimeSpan]::MaxValue)
Register-ScheduledTask -TaskName $TaskName -Action $Action -Description $Description -Trigger $Trigger -Principal $Principal

但是,当命令运行时,我收到以下错误:

Register-ScheduledTask : Access is denied.
At line:1 char:1
+ Register-ScheduledTask -TaskName $TaskName -Action $Action -Description $Descrip ...
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    + CategoryInfo          : PermissionDenied: (PS_ScheduledTask:Root/Microsoft/...S_ScheduledTask) [Register-Schedul
   edTask], CimException
    + FullyQualifiedErrorId : HRESULT 0x80070005,Register-ScheduledTask

这是我修复它的方法

问题的原因是 -RunLevel Highest 命令:

$Principal = New-ScheduledTaskPrincipal -UserID $UserAccount -LogonType ServiceAccount -RunLevel Highest

-RunLevel Highest 注册在具有最高权限的管理员用户组的登录成员下运行的计划任务。

这意味着当您将 -RunLevel 设置为 Highest 时,它要求您以管理员身份安排 Powershell 作业,即您必须以管理员身份运行 Powershell安排作业,而不是仅仅启动/运行 Powershell 广告,让普通用户来安排作业。

enter image description here

这将允许计划任务以管理权限在最高级别运行。

仅此而已。

我希望这会有所帮助