我想删除网络上多台计算机上的“非本机”计划任务。这些任务的名称各不相同(取决于用户安装的软件),但它们都位于计划任务应用程序的根\文件夹中。
使用schtasks /delete /tn * /f
将删除这些任务,但它也进入任务子目录并删除所有本机窗口任务,我相信这不是一件好事!
我尝试了/tn "\*"
等的变体。但schtasks不接受此输入。
似乎有一些在线的powershell代码可能会这样做,但它似乎只适用于windos 8及以上版本。我的很多机器仍然是Windows 7。
我该如何解决这个问题?
答案 0 :(得分: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)
}