Есть ли способ узнать источник и легитимность задач в планировщике задач в Windows Server 2008 и 2003? Могу ли я проверить, была ли задача добавлена Microsoft (например, из sccm) или сторонним приложением?
Для каждой задачи в планировщике задач я хочу убедиться, что задача не была создана сторонним приложением. Я хочу только разрешить стандартные задачи Microsoft и отключить все другие нестандартные задачи.
Я создал сценарий PowerShell, который просматривает все файлы xml в каталоге C: \ Windows \ System32 \ Tasks, и я смог успешно прочитать все файлы задач 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
}
}
Легитимность звучит расплывчато.
Если по источнику вы ссылаетесь на автора, он доступен в узле «Принципы»:
$xmlFile.Task.Principals.ChildNodes
id GroupId RunLevel
-- ------- --------
Author S-1-5-32-545 LeastPrivilege
Альтернативный подход может заключаться в проверке того, когда и кто создает запланированную задачу. Hera - это идентификаторы событий безопасности для Windows 2008 R2:
4698 A scheduled task was created.
4700 A scheduled task was enabled.
4702 A scheduled task was updated.