删除任务计划的“历史记录”选项卡中特定任务的条目?

删除任务计划的“历史记录”选项卡中特定任务的条目?

我在任务计划程序中启用了任务历史记录,想知道是否有办法删除特定任务的“任务历史记录”选项卡中的条目。

举个例子:我正在尝试诊断问题,只想查看最新条目。我不关心所有历史数据。

答案1

受到 PowerShell 逻辑的启发,获取计划任务以查看上次运行的历史记录发布,使用获取winevent以及-FilterXml参数以及任务的完整路径和任务名称,您可以从过去x秒,分钟,小时,天等以来的特定任务的任务历史记录中获取数据。

您可以使用对象位置以及TimeCreated事件数据的属性仅获取特定日期或时间范围内的数据。

使用获取日期并用括号括起来,然后选择“ ” , “ .add”等方法之一,其中带有表示从当前日期减 1 的方法,例如,其中 1 可以是从当前日期中减去的任意数字。hours()minutes()days()-1.AddHours(-1)

在此处输入图片描述


使用获取计划任务-FilterXml获取特定任务的完整路径和任务名称,并将其放入指定任务名称的部分中。

PowerShell 第 1 部分

$TaskName = "MyCool Task Named Cool";
Get-ScheduledTask | % { Process { If ( $_.TaskName -eq $TaskName ) { "$($_.TaskPath)$($_.TaskName)" } } };

输出

\Taskpath\MyCool Task Named Cool

笔记: 上述值将被复制到下面的 PowerShell 中。

PowerShell 第 2 部分

将上述命令的输出插入下面一行中单引号之间的值*[EventData/Data[@Name='TaskName']='output goes here']

$events = @(
     Get-WinEvent  -FilterXml @'
     <QueryList>
      <Query Id="0" Path="Microsoft-Windows-TaskScheduler/Operational">
       <Select Path="Microsoft-Windows-TaskScheduler/Operational">
        *[EventData/Data[@Name='TaskName']='\Taskpath\MyCool Task Named Cool']
       </Select>
      </Query>
     </QueryList>
'@ -ErrorAction Stop 
)
$events | ? {$_.TimeCreated -ge (Get-Date).AddHours(-1)} | FL

输出

TimeCreated  : 2/24/2021 10:04:54 PM
ProviderName : Microsoft-Windows-TaskScheduler
Id           : 110
Message      : Task Scheduler launched "{e372dfef-0c52-4358-bb0a-efb60d3f178b}"  instance of task "\Taskpath\MyCool Task Named Cool"  for user 
               "Cool" .

TimeCreated  : 2/24/2021 10:04:54 PM
ProviderName : Microsoft-Windows-TaskScheduler
Id           : 200
Message      : Task Scheduler launched action "F:\Picking\Nose4\AwesomeSause.exe" in instance "{e372dfef-0c52-4358-bb0a-efb60d3f178b}" of task 
               "\Taskpath\MyCool Task Named Cool".

TimeCreated  : 2/24/2021 10:04:54 PM
ProviderName : Microsoft-Windows-TaskScheduler
Id           : 100
Message      : Task Scheduler started "{e372dfef-0c52-4358-bb0a-efb60d3f178b}" instance of the "\Taskpath\MyCool Task Named Cool" task for user 
               "DrPC123\Nurse".

TimeCreated  : 2/24/2021 10:04:54 PM
ProviderName : Microsoft-Windows-TaskScheduler
Id           : 129
Message      : Task Scheduler launch task "\Taskpath\MyCool Task Named Cool" , instance "F:\Picking\Nose4\AwesomeSause.exe"  with 
               process ID 15956.

支持资源

  • 获取 WinEvent

       -FilterXml XmlDocument
           Use a structured XML query to select events from one or more event logs.
    
           To generate a valid XML query, use the Create Custom View and
           Filter Current Log features in Event Viewer.
           Use the items in the dialog box to create a query, and click the XML tab to view the XML query. 
    
           Typically, you use an XML query to create a complex query that contains several XPath statements. 
           The XML format also allows you to use a "Suppress" XML element that excludes events from the query.
    
       -FilterXPath string
           Use an XPath query to select events from one or more logs.
    
  • 获取计划任务

  • 哪里对象

    ' ?' 符号和 Where 都是 Where-Object 的别名。如果您明确想要运行 Where-Object 命令,请运行 Where-object 或 ' ?'

相关内容