如何用PowerShell获取任务计划程序中近1小时运行的非微软库任务
使用PowerShell筛选任务计划程序中的特定任务
以下是满足需求的PowerShell脚本,可筛选出近1小时内运行过、且不属于Microsoft子库的任务,并输出指定信息:
# 计算1小时前的时间点作为筛选阈值 $oneHourAgo = (Get-Date).AddHours(-1) # 筛选并输出符合条件的任务 Get-ScheduledTask | Where-Object { # 排除Microsoft官方子库的任务 $_.TaskPath -notlike '\Microsoft\*' -and # 仅保留近1小时内运行过的任务 $_.LastRunTime -ge $oneHourAgo } | ForEach-Object { $taskDetails = Get-ScheduledTaskInfo -TaskPath $_.TaskPath -TaskName $_.TaskName # 构造输出对象,包含所需字段 [PSCustomObject]@{ 任务名称 = $_.TaskName 运行开始时间 = $taskDetails.LastRunTime 结束时间 = if ($taskDetails.TotalRunTime.TotalSeconds -gt 0) { $taskDetails.LastRunTime.AddMilliseconds($taskDetails.TotalRunTime.TotalMilliseconds) } else { "任务未结束/无有效运行时长记录" } } } | Format-Table -AutoSize
脚本说明:
- 时间筛选:通过
(Get-Date).AddHours(-1)获取1小时前的时间,以此作为任务运行时间的判断阈值。 - 子库排除:利用
-notlike '\Microsoft\*'过滤掉所有位于Microsoft官方子库下的任务。 - 运行信息提取:通过
Get-ScheduledTaskInfo获取任务的详细运行数据,包括开始时间和运行时长,进而计算出结束时间;若任务仍在运行或无有效时长记录,会给出对应提示。 - 格式化输出:最后用
Format-Table将结果整理为易读的表格形式。
内容的提问来源于stack exchange,提问作者tal
相关产品推荐
相关产品推荐

