获取给定taskpath(task folder)的计划任务名称

2024-06-17 16:57:44 浏览数 (2)

假如给定了如下路径的计划任务,需要过滤出这些路径下的所有计划任务名称

"MicrosoftWindowsData Integrity Scan"

"MicrosoftWindowsApplicationData"

"MicrosoftWindowsDefrag"

"MicrosoftWindowsDiskCleanup"

"MicrosoftWindowsDiskDiagnostic"

"MicrosoftWindowsDiskFootprint"

"MicrosoftWindowsWindows Defender"

"MicrosoftWindowsMaintenance"

如果是高版本系统,一句命令搞定

Get-ScheduledTask -TaskPath "MicrosoftWindowsData Integrity Scan","MicrosoftWindowsApplicationData","MicrosoftWindowsDefrag","MicrosoftWindowsDiskCleanup","MicrosoftWindowsDiskDiagnostic","MicrosoftWindowsDiskFootprint","MicrosoftWindowsWindows Defender","MicrosoftWindowsMaintenance" 2>$null

如果是低版本的2008R2,则没有Get-ScheduledTask -TaskPath这个命令

下面的方法稍微曲折些,不过兼容所有Windows系统,思路是,通过nirsoft工具集里的taskschedulerview的命令行获取到所有计划任务的"Task Name,Task Folder"组成的.txt文件,一行一个计划任务,Task Name和Task Folder用英文逗号隔开,然后用match过滤后再处理字符串

http://www.nirsoft.net/utils/taskschedulerview-x64.zip

cd C:taskschedulerview-x64

.TaskSchedulerView.exe /scomma tasks.txt /Columns "Task Name,Task Folder"

Get-Content C:taskschedulerview-x64tasks.txt| where-object {$_ -match " '\Microsoft\Windows\' & 'Data Integrity Scan|ApplicationData|Defrag|DiskCleanup|DiskDiagnostic|DiskFootprint|Windows Defender|Maintenance' "}

Get-Content C:taskschedulerview-x64tasks.txt| where-object {$_ -match " '\Microsoft\Windows\' & 'Data Integrity Scan|ApplicationData|Defrag|DiskCleanup|DiskDiagnostic|DiskFootprint|Windows Defender|Maintenance' "}|foreach{$_.split(",")[0]}

0 人点赞