如何用PowerShell仅导出任务计划程序的用户自定义任务?
仅导出用户自定义任务的方法
方法1:用PowerShell原生命令直接筛选(推荐)
PowerShell的Get-ScheduledTask命令能直接获取任务计划程序的任务列表,结合过滤条件可以快速排除系统任务(通常系统任务都在\Microsoft\开头的路径下):
Get-ScheduledTask | Where-Object { $_.TaskPath -notlike "\Microsoft\*" } | Export-Csv -Path "CustomTasks.csv" -NoTypeInformation
这条命令会:
- 获取所有任务
- 过滤掉路径以
\Microsoft\开头的系统任务 - 将剩下的用户自定义任务导出到
CustomTasks.csv文件
方法2:基于schtasks命令的结果过滤
如果你习惯用schtasks命令导出,也可以在导出后用PowerShell筛选掉系统任务:
schtasks /query /FO CSV /V | Select-String -Pattern '^".*",(?!".*\\Microsoft\\)' | Out-File "CustomTasks.csv"
原理是通过正则表达式匹配**任务路径不包含\Microsoft\**的行,只保留这些行输出到CSV文件。
补充说明
如果你的用户自定义任务有特殊存放路径(比如手动放到了\Microsoft\下的子文件夹),可以调整过滤规则,比如结合任务创建者信息筛选:
Get-ScheduledTask | Where-Object { $_.Author -notlike "*Microsoft*" -and $_.TaskPath -notlike "\Microsoft\*" } | Export-Csv -Path "CustomTasks.csv" -NoTypeInformation
不过这种情况很少见,默认的路径过滤就足够区分绝大多数系统和用户任务了。
内容的提问来源于stack exchange,提问作者Gaus Shaikh
相关产品推荐
相关产品推荐

