带有虚拟帐户的任务计划程序可以吗?

Fow*_*owl 5 security service-accounts scheduled-task windows-server-2008-r2

目前,我正在使用LOCAL SERVICE用户帐户来执行各种常规任务,并且想知道是否可以使用虚拟帐户来代替。

任务计划程序似乎拒绝NT SERVICE\样式帐户名称。

Ian*_*oyd 4

您无法将其作为虚拟用户帐户运行。但您可以使用虚拟组帐户运行它。(但由于该“组”与任务具有 1:1 关系,因此它实际上是一个用户)。

假设您以本地服务用户身份运行计划任务。该组的令牌中有一系列 SID:

本地服务

  • 每个人 (S-1-1-0
  • 当地的 (S-1-2-0
  • NT AUTHORITY\经过身份验证的用户 ( S-1-5-11)
  • 内置\用户 ( S-1-5-32-535)

任务计划程序使用根据任务名称计算出的附加 SID 来运行任务。

  • SID 将是权威的孩子S-1-5-87
  • 并将有一个以下形式的名称NT TASK\[Task Name]

相对id 87来自于定义的常量winnt.h

SECURITY_TASK_ID_BASE_RID  (0x00000057L)
Run Code Online (Sandbox Code Playgroud)

您可以通过运行以下命令手动将任务名称“散列”到 SID 中:

>schtasks /showsid /TN "The quick brown fox jumped over the lazy dog"
SUCCESS: The SID "S-1-5-87-2312335432-65297056-3549082870-2589977271-250352331" for the user name "The quick brown fox jumped over the lazy dog" has been computed successfully.
Run Code Online (Sandbox Code Playgroud)

该任务不必存在;它向您显示当具有该名称的任务运行时它将使用的SID

  • 任务名称The quick brown fox jumped over the lazy dog
  • 关联SID: S-1-5-87-2312335432-65297056-3549082870-2589977271-250352331
  • 团队名字NT TASK\The quick brown fox jumped over the lazy dog

这意味着当您的计划任务运行时,它将在其安全令牌中拥有一个新的 SID:

本地服务

  • 每个人 (S-1-1-0
  • 当地的 (S-1-2-0
  • NT AUTHORITY\经过身份验证的用户 ( S-1-5-11)
  • 内置\用户 ( S-1-5-32-535)
  • NT 任务\敏捷的棕色狐狸跳过了懒狗( S-1-5-87-2312335432-65297056-3549082870-2589977271-250352331)

使用令牌中这个新组 SID 的标签,您可以编辑文件和文件夹的权限,以便只有计划任务可以访问它们:

>icacls icacls yellow.png /grant "*S-1-5-87-2312335432-65297056-3549082870-2589977271-250352331:(M)"
Run Code Online (Sandbox Code Playgroud)

在此输入图像描述

奖金闲聊

感谢您运行您的任务Local Service- 这是正确的选择。它是一个特殊的行权限帐户,任何人都无法登录,并且在网络上没有任何权限(除了“匿名”用户获得的相同权限)。许多“安全专家”认为任务需要使用他们在 Active Directory 中创建的特殊帐户和复杂的随机密码来运行。这些人不了解安全的基础知识,这让我很抓狂。

奖励阅读