我需要备份任务计划程序任务。这些任务已分组到任务计划程序中的一个子文件夹中。但我发现的唯一方法是使用
schtasks.exe /query /tn "<path>\<taskname>"
为此,我必须指定每个任务......但这些任务在不同的机器上可能会有所不同。
我正在寻找一种使用通配符的简单方法。例如
schtasks.exe /query /tn "<path>\*"
有没有办法
- 不导出整个列表?(我真的不关心微软自己的任务,如 \Microsoft\Windows\Wininet\CacheTask)
- 导出整个文件夹?
答案1
使用 Powershell。在 Windows Server 2008 R2 上,您可以使用以下代码;
$x = New-Object -ComObject("Schedule.Service") ; $x.Connect() ; $x.GetFolder("\CustomTasks").GetTasks(1) | % {$_.XML | Out-File "C:\temp\$($_.Name).xml"}
这会将“CustomTasks”文件夹下的所有任务导出到 C:\Temp 文件夹,文件名为“WhateverTheTaskNameIs.xml”。
对于 Windows Server 2012 及更高版本,您可以使用Get-ScheduledTask
和Export-ScheduledTask
cmdlet。