我在任务计划程序中启用了任务历史记录,想知道是否有办法删除特定任务的“任务历史记录”选项卡中的条目。
举个例子:我正在尝试诊断问题,只想查看最新条目。我不关心所有历史数据。
答案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.
支持资源
-
-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 或 '?
'