Mar*_*ark 136 scheduled-task task task-scheduler windows-server-2008-r2
我在 Windows 2008 R2 上的任务计划程序中有一些任务。我以管理员身份创建它们,并以管理员身份登录。我没有简单的方法来重命名任务。我能做的唯一方法是将任务配置导出到 XML 文件并重新导入到新任务,在那里更改名称,然后删除旧任务。有更容易的方法吗?
Wes*_*ley 150
恭喜!您遇到了困扰许多 Windows 用户/管理员的问题。不可以,除了导出、重命名和再次导入外,您不能重命名任务。是的,这很愚蠢。也许有进取心的脚本编写者可以创建一个简单的 PowerShell 脚本来自动执行此操作,但在此之前,您只能执行导出/导入两步操作。对不起。=(
(您也无法在创建任务文件夹后对其进行重命名。)
小智 10
不是最好的方法,但可以挽救生命。
任务C:\Windows\System32\Tasks以 XML 格式存储,可使用schtasks.exe. 正如 Weasly 所说,重命名文件不起作用,但创建/删除会。也就是说,您需要运行用户密码(您拥有)
与 Weasly 的建议相比,它只是跳过了导出阶段。
在 Tasks 文件夹中使用srcname和dstname和管理shell:
C:\Windows\System32\Tasks>schtasks /Create /tn dstname /xml srcname /ru [running username] /rp [password]
SUCCESS: The scheduled task "dstname" has successfully been created.
C:\Windows\System32\Tasks>schtasks /delete /tn srcname /f
SUCCESS: The scheduled task "srcname" was successfully deleted.
Run Code Online (Sandbox Code Playgroud)
笔记:
Task/Principals/Principal/UserId)/rp [password]部分不幸的是没有。现在就是这样做的。我相信这是出于安全目的,因此在实际设置和启用设置任务时无法修改它们。
您无法重命名计划任务,因为这会更改SID任务的运行方式。
该名称构成任务运行时用户的安全标识符(SID)。重命名任务会破坏任何现有权限。
很多人抱怨无法重命名计划任务。这是有原因的。
计划任务以某个用户身份运行,例如:
Local Service (好的)Network Service (好的)System (坏的)这意味着如果您的任务需要访问某些资源,您需要授予该用户对这些资源的访问权限。
我们真正希望它授予对该任务的访问权限;该计划任务本身应该具有权限 - 而不是任务运行的用户。这称为任务安全强化。
当计划任务运行时,任务计划程序会在运行该任务的用户的令牌中添加一个附加的安全标识符(SID)。例如:
名称:( NT TASK\[Task name] 例如“NT TASK\敏捷的棕色狐狸跳过了懒狗”)
组 sid: S-1-5-87-xxxxx(例如 S-1-5-87-2312335432-65297056-3549082870-2589977271-250352331)
该组的sid是根据定时任务名称的hash动态生成的。组 sid 是权限的子级S-1-5-87。SID 的相对 ID 87来自以下中定义的常量winnt.h:
SECURITY_TASK_ID_BASE_RID (0x00000057L)
Run Code Online (Sandbox Code Playgroud)
您可以在启动进程的安全令牌中看到这个额外的组 SID:
您可以手动散列任务名称,或者通过运行命令行工具查看该任务的假设 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)
您可以使用 icacls 向该组授予权限:
>icacls yellow.png /grant "*S-1-5-87-2312335432-65297056-3549082870-2589977271-250352331:(M)"
Run Code Online (Sandbox Code Playgroud)
如果计划任务位于文件夹中,则还需要包含该文件夹:
>schtasks /showsid /TN "Stackoverflow\Answer Question About Security"
SUCCESS: The SID "S-1-5-87-1865438416-972601292-3915696002-2261943663-3756584440"
for the user name "Stackoverflow-Answer Question About Security"
has been computed successfully.
Run Code Online (Sandbox Code Playgroud)
并且,您可以再次授予该对象的 SID 权限:
>icacls yellow.png /grant "*S-1-5-87-1865438416-972601292-3915696002-2261943663-3756584440:(M)"
processed file: yellow.png
Successfully processed 1 files; Failed processing 0 files
Run Code Online (Sandbox Code Playgroud)
您可以看到该组已被授予权限(在本例中为修改权限):
好处是:
NT SERVICE组的服务和 IIS 应用程序身份使用)Local Service和Network Service账户问题是这些帐户没有密码——任何用户都不允许以它们的身份登录。这意味着您不必担心密码泄露。
最重要的是,当您使用NT TASK、NT SERVICE或IIS APPPOOL虚拟帐户分配权限时:无法模拟该用户。从任何意义上来说,它都不是用户。这些是额外的安全边界,这是一件非常好的事情。
如果您一直在注意,您现在就会明白为什么不能重命名计划任务,或将其移动到另一个文件夹:它会更改任务名称的哈希值,更改任务的NT TASKSID,并使授予的任何权限无效。
| 归档时间: |
|
| 查看次数: |
58596 次 |
| 最近记录: |