2015-12-08 47 views
2

我想删除网络上多台计算机上的“非本地”计划任务。这些任务的名称会有所不同(具体取决于用户安装的软件),但它们都位于计划任务应用程序的root \文件夹中。从Windows的文件夹中删除非本地计划任务

使用schtasks /delete /tn * /f将删除这些任务,但它也会进入任务子目录并删除所有本机窗口任务,我相信这不会是一件好事!

我试过了/tn "\*"等的变体,但schtasks不接受这个输入。

似乎有一些可以做到这一点的PowerShell代码,但它似乎只适用于Windos 8及以上版本。我的很多机器仍然是windows 7.

我该如何解决这个问题?

回答

1

你可以使用一个Task Scheduler Scripting Object

# Create the scripting object 
$TaskScheduler = New-Object -ComObject Schedule.Service 

# Connect to the task scheduler library on the local machine 
$TaskScheduler.Connect('localhost') 

# Retrieve all (non-hidden) tasks from the root folder 
$RootFolder = $TaskScheduler.GetFolder('\') 
$Tasks = $RootFolder.GetTasks(0) 

# Iterate over each task and delete it 
foreach($Task in $Tasks){ 
    $RootFolder.DeleteTask($Task.Name,$null) 
}