任务调度程序中任务的合法性

任务调度程序中任务的合法性

有没有办法知道 Windows Server 2008 和 2003 中任务计划程序中任务的来源和合法性?我可以检查任务是由 Microsoft(即来自 sccm)还是由第三方应用程序添加的?

对于任务计划程序中的每个任务,我想验证该任务是否由第三方应用程序创建。我只想允许标准 Microsoft 任务并禁用所有其他非标准任务。

我已经创建了一个 PowerShell 脚本,它可以遍历 C:\Windows\System32\Tasks 目录中的所有 xml 文件,并且我能够成功读取所有 xml 任务文件,但我不清楚如何验证任务。

以下是供您参考的脚本:

Function TaskSniper()
{
   #Getting all the fils in the Tasks folder
   $files = Get-ChildItem "C:\Windows\System32\Tasks" -Recurse | Where-Object {!$_.PSIsContainer};
   [Xml] $StandardXmlFile = Get-Content "Edit Me";

   foreach($file in $files)
   {
       #constructing the file path
       $path = $file.DirectoryName + "\" + $file.Name 

       #reading the file as an XML doc
       [Xml] $xmlFile = Get-Content $path


       #DS SEE: http://social.technet.microsoft.com/Forums/en-US/w7itprogeneral/thread/caa8422f-6397-4510-ba6e-e28f2d2ee0d2/
       #(get-authenticodesignature C:\Windows\System32\appidpolicyconverter.exe).status -eq "valid"

       #Display something
       $xmlFile.Task.Settings.Hidden

   }

}

答案1

合法性听起来很模糊。

如果您要按来源查阅作者,则可在“主体”节点中找到:

$xmlFile.Task.Principals.ChildNodes

id                                      GroupId                                 RunLevel
--                                      -------                                 --------
Author                                  S-1-5-32-545                            LeastPrivilege

另一种方法可能是审核何时以及谁创建了计划任务。以下是 Windows 2008 R2 的安全事件 ID:

4698    A scheduled task was created.
4700    A scheduled task was enabled.
4702    A scheduled task was updated.

相关内容