Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/powershell/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何使用PowerShell从任务计划程序中删除文件夹?_Powershell_Scheduled Tasks - Fatal编程技术网

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

如何使用PowerShell从任务计划程序中删除文件夹?,powershell,scheduled-tasks,Powershell,Scheduled Tasks,我可以使用带有特定路径的Register ScheduledTask PowerShell cmdlet(即使用-TaskPath“\SomePath\”和-TaskName“SomeName”)在Windows中创建计划任务。我可以使用具有相同参数的Unregister ScheduledTask删除任务。我可以使用Windows“任务调度器”GUI验证删除。但是,文件夹(“\SomePath\”)不会被删除。虽然这很有道理,但我找不到任何方法删除这个空文件夹 如何使用PowerShell删除

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

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

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

$scheduleObject=新对象-ComObject Schedule.Service
$scheduleObject.connect()
$rootFolder=$scheduleObject.GetFolder(“\”)
$rootFolder.DeleteFolder(“我的任务文件夹”,$null)

ScheduledTasks只是存储在此处的xml文件:

Get-ChildItem -Path 'C:\Windows\System32\Tasks'
你可以从那里删除它们。它们也可从以下注册表中引用:

HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Schedule\TaskCache
只要使用

Remove-Item -Path 'somepath' -Force
。。。与您通常对任何文件或文件夹使用的cmdlet相同


当然,如果有一个文件/文件夹属性集阻止删除,只需删除它。

谢谢!我从来不知道微软把这些信息存储在哪里。请注意,我最终发现了一种不同的方法,我认为这种方法比这种方法更能证明未来,因为如果微软决定改变他们存储任务的方式,这种方法仍然有效。请参阅我更新的问题中的代码。不用担心,很高兴您找到了解决方案,但我怀疑MS是否会移动此位置,因为自从他们提供此位置以来,一直如此,而且在Windows Server 2019和所有发布的insider preview OS(客户端/服务器)版本中仍然如此。然而,拥有另一条路线总是很好的。您也可以只使用MS purposed构建的SchTaskexe。--SchTasks/Delete/TN“My Task”-即使在脚本中也是如此。您的最终解决方案在最后一行代码中为我抛出了一个“拒绝访问”错误。即使使用“以管理员身份运行”-权限。不确定原因,但在我的情况下,创建文件夹的同一用户是删除文件夹的用户,因此权限不是问题。为了帮助调试,您可以尝试使用任务计划程序GUI删除空文件夹,这样您就知道这不是代码运行问题。我甚至无法通过任务计划程序GUI删除它。结果表明,我已从TaskCache下的注册表中删除了项,但该文件夹仍位于%sys32%\Tasks下。任务调度器不喜欢这种组合。