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

whitzsjs  于 2023-01-13  发布在  Shell
关注(0)|答案(2)|浏览(532)

我刚刚设置了一个新的Windows Server 2019示例,并尝试通过Windows任务计划程序运行任务(C#控制台应用程序)。我已将其设置为以某个Windows用户的身份登录,该用户具有“管理员”权限。但是,当我尝试运行任务(按计划或按需登录并运行)时,它给出了错误:
“Access is Denied”(访问被拒绝),错误代码为0x80070005。到目前为止,我已尝试过以下操作:

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

我想知道其他人是否也遇到过Windows Server 2019的这个问题,以及他们是如何运行计划任务的?

fhity93d

fhity93d1#

在Windows 7 SP1中,我遇到了同样的问题。没有工作。
我找到了解决方法:
1)在“任务调度器”中导出任务(到.xml)。
2)删除任务计划程序中的任务。
3)编辑. xml文件:
3.1)在第二个字符串中替换

Task version="1.2"

Task version="1.3"

3.2)将字符串

<UseUnifiedSchedulingEngine>false</UseUnifiedSchedulingEngine>

替换为

<UseUnifiedSchedulingEngine>true</UseUnifiedSchedulingEngine>

,或者如果缺少字符串

<UseUnifiedSchedulingEngine>false</UseUnifiedSchedulingEngine>

,则在字符串

<Settings>

之后添加字符串

<UseUnifiedSchedulingEngine>true</UseUnifiedSchedulingEngine>


4)将. xml文件导入到任务调度器。
现在任务运行。
当我注意到内置的Windows任务运行正常时,我发现了这个变通方法。

zpjtge22

zpjtge222#

当试图在Powershell上创建一个计划任务以将文件复制到Map驱动器时,我也遇到了类似的挑战。

    • 以下是我的计划任务命令**:
$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来调度作业。

这将允许计划任务以管理权限在最高级别运行。
就这样。
"我希望这能帮上忙"

相关问题