SchTasks.exe创建任务文件夹

时间:2012-03-20 21:52:01

标签: windows-server-2008 scheduled-tasks

是否有命令在Windows 2008中创建计划任务文件夹?我正在尝试使用SchTasks.exe来创建任务,并希望将这些任务放在任务文件夹下。实质上,在任务调度程序内部,添加一个新文件夹并在该文件夹下添加多个任务。从UI可以选择创建文件夹,但不确定命令参考

提前致谢

4 个答案:

答案 0 :(得分:26)

几次试验并解决了这个问题;关键是在任务名称中使用“\”。示例schtask.exe命令行,

schtasks /create /xml "MyTask.xml" /tn "My Task Folder\My New Task"

创建新的任务文件夹我的任务文件夹,并在新文件夹下创建新任务我的新任务

如果需要在现有文件夹下创建任务,请尝试

schtasks /create /xml "MyTask.xml" /tn "Existing Task Folder\My New Task"

在现有任务文件夹现有任务文件夹

下创建新任务我的新任务

答案 1 :(得分:3)

似乎没有办法通过SchTasks.exe执行此操作。如果在命令提示符下运行SchTasks.exe /Create /?,它将显示可用选项。就我所见,为任务创建一个文件夹并不会显示为其中之一。

您可以通过ITaskScheduler界面执行此操作。有关差异的讨论,请参阅this question,以及封装接口的库的链接。 (我没有看过图书馆,也不知道任何关于它的内容;它只是作为解决方案出现在联系问题的接受答案上。)

答案 2 :(得分:1)

一个名叫RégisLainé的家伙在Tec​​hNet Gallery上写了一个杀手script的脚本。我只是把它放在这里,以防该站点被拆除。

Function Move-ScheduledTask {
    $SelectedItems = Get-ScheduledTask | Sort-Object -Property TaskName | Select-Object -Property TaskName, TaskPath, State | Out-GridView -Title "Select Tasks To Move" -OutputMode Multiple
    if ($SelectedItems -ne $null)
    {
        $TargetFolder = Get-ChildItem -Path "C:\Windows\System32\tasks" -Force -Recurse -ErrorAction SilentlyContinue | Select-Object -Property Name -Unique | Out-GridView -Title "Select Target Folder" -OutputMode Single;
        if ($TargetFolder -ne $null)
        {
            foreach ($item in $SelectedItems)
            {
                try
                {
                    Write-Host ("About to Move " + $item.TaskName + " : ") -NoNewline;
                    $SelectedScheduledTask = Get-ScheduledTask -TaskName $item.TaskName -TaskPath $item.TaskPath ;
                    Register-ScheduledTask -Xml ($SelectedScheduledTask | Export-ScheduledTask) -TaskName $SelectedScheduledTask.TaskName -TaskPath $TargetFolder.Name -ErrorAction Stop | Out-Null;
                    $SelectedScheduledTask | Unregister-ScheduledTask -Confirm:$false;
                    Write-Host ("Success") -ForegroundColor Green;
                }
                catch
                {
                    Write-Host ("Error when processing : " + $item.TaskName) -ForegroundColor red;
                    write-Host ("`t" + $_.Exception.Message) -ForegroundColor Red; 
                    break;
                }
            } 
        }
    }
}


Clear-Host;
Move-ScheduledTask; 

https://gallery.technet.microsoft.com/Dplacer-des-tches-planifies-1eabc70d/view/Discussions#content

用法:将代码段保存到名为Move.ps1的文件中或执行某些操作。它会询问您要在提示中移动的任务,甚至可以按州/名称等过滤它。然后只需单击确定,然后等待魔术发生!

答案 3 :(得分:0)

这是一个旧线程,但我在其他地方找不到答案所以我写了一个小的PowerShell脚本,它将任务复制到一个新文件夹并重写UserId,如果需要的话。 不要忘记手动删除旧任务。

.svg