如何使用 PowerShell 从任务计划程序中删除文件夹?

jrs*_*rsr 8 powershell scheduled-tasks

我可以使用 Register-ScheduledTask PowerShell cmdlet 和特定路径(即使用 -TaskPath "\SomePath\" 和 -TaskName "SomeName")在 Windows 中创建计划任务。我可以使用具有相同参数的 Unregister-ScheduledTask 删除任务。我可以使用 Windows“任务计划程序”GUI 来验证删除。但是,文件夹(“\SomePath\”)不会被删除。虽然这很有意义,但我找不到任何方法来删除这个空文件夹。

如何使用 PowerShell 删除空的任务计划程序文件夹?

更新:经过更多研究,我找到了另一种在 PowerShell 中解决此问题的方法。它涉及使用 Schedule.Service 对象。以下是删除名为“我的任务文件夹”的文件夹的代码:

$scheduleObject = New-Object -ComObject Schedule.Service
$scheduleObject.connect()
$rootFolder = $scheduleObject.GetFolder("\")
$rootFolder.DeleteFolder("My Task Folder",$null)
Run Code Online (Sandbox Code Playgroud)

pos*_*ote 7

ScheduledTasks 只是存储在这里的 xml 文件:

Get-ChildItem -Path 'C:\Windows\System32\Tasks'
Run Code Online (Sandbox Code Playgroud)

您可以从那里删除它们。它们也从此处的注册表中引用:

HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Schedule\TaskCache
Run Code Online (Sandbox Code Playgroud)

只需使用...

Remove-Item -Path 'somepath' -Force
Run Code Online (Sandbox Code Playgroud)

... cmdlet 就像您通常对任何文件或文件夹所做的那样。

当然,现在如果设置了文件/文件夹属性,会阻止删除,只需将其删除即可。