为什么用户帐户“无权运行此任务”?

为什么用户帐户“无权运行此任务”?

我正在使用 XML 创建通过 PowerShell 配置的计划任务:

$LogonTask_xml = @"
<?xml version="1.0" encoding="UTF-16"?>
<Task version="1.3" xmlns="http://schemas.microsoft.com/windows/2004/02/mit/task">
  <RegistrationInfo>
    <Date>$(get-date -Format yyyy-MM-ddTHH:mm:ss.00000)</Date>
    <Author>Interactive</Author>
    <Description>$LogonDescription</Description>
  </RegistrationInfo>
  <Triggers>
    <LogonTrigger>
      <Enabled>true</Enabled>
      <Delay>PT1H</Delay>
      <ExecutionTimeLimit>PT4H</ExecutionTimeLimit>
    </LogonTrigger>
  </Triggers>
  <Principals>
    <Principal id="Author">
      <GroupId>S-1-5-32-545</GroupId>
      <RunLevel>LeastPrivilege</RunLevel>
    </Principal>
  </Principals>
  <Settings>
    <MultipleInstancesPolicy>StopExisting</MultipleInstancesPolicy>
    <DisallowStartIfOnBatteries>false</DisallowStartIfOnBatteries>
    <StopIfGoingOnBatteries>true</StopIfGoingOnBatteries>
    <AllowHardTerminate>true</AllowHardTerminate>
    <StartWhenAvailable>true</StartWhenAvailable>
    <RunOnlyIfNetworkAvailable>false</RunOnlyIfNetworkAvailable>
    <IdleSettings>
      <StopOnIdleEnd>true</StopOnIdleEnd>
      <RestartOnIdle>false</RestartOnIdle>
    </IdleSettings>
    <AllowStartOnDemand>true</AllowStartOnDemand>
    <Enabled>true</Enabled>
    <Hidden>false</Hidden>
    <RunOnlyIfIdle>false</RunOnlyIfIdle>
    <DisallowStartOnRemoteAppSession>false</DisallowStartOnRemoteAppSession>
    <UseUnifiedSchedulingEngine>false</UseUnifiedSchedulingEngine>
    <WakeToRun>false</WakeToRun>
    <ExecutionTimeLimit>PT4H</ExecutionTimeLimit>
    <Priority>7</Priority>
  </Settings>
  <Actions Context="Author">
    <Exec>
      <Command>$VBScriptPath</Command>
    </Exec>
  </Actions>
</Task>
"@

我希望所有用户都在自己的环境中运行 - 但不能修改 - 当他们测试它时,他们不断遇到“用户帐户没有权限运行此任务”。

如您所见,该任务以Users组身份运行,并允许按需启动。如果我以管理员身份运行该任务,则该任务运行正常。“用户”组可以看到此特定任务,并且对任务文件(位于 c:\Windows\System32\Tasks)具有读取和执行权限,并且用户可以创建其他任务并运行它们。我敢发誓这曾经有效。

当我创建另一个任务并操作 ACL 以完全匹配“麻烦”的任务时,第二个任务仍然会根据用户的请求运行,没有任何问题。

某些任务肯定有其他原因可以阻止非特权用户运行它们,但我不知道那是什么。救命!

答案1

为了防止将来有人遇到这个问题,这里是答案......

在某些时候,微软停止使用任务文件来C:\Windows\System32\Tasks控制计划任务的安全性。据称这种情况发生在 Win10 上,但这不可能是 Win10 的早期版本,因为我的问题直到较新的版本才出现。

尽管如此,运行计划任务的能力现在通过注册表设置进行控制HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Schedule\TaskCache\Tree,但这些键受到“普通”管理员的保护。我发现在此处添加权限的代码,并将其清理成我将使用它来允许任何用户运行单个任务

希望这对某人有帮助。

相关内容