使用powershell脚本计算两个事件之间的时间差

问题描述 投票:0回答:1

我不是开发人员,但出于管理目的,我需要制作一个脚本,该脚本将从 Windows 中的任务计划程序返回任务的执行时间。我的想法是首先在事件查看器中过滤我的任务名称,然后提取 ID 为 100 和 102 的 2 个事件(开始事件 + 完成事件),并计算它们之间的时间差。我为此使用了 Get-WinEvent -FilterHashtable $filter 并达到了我的脚本正确返回 2 个事件的程度。但是,我不知道如何从变量 $EndTime 和 $StartTime 中提取日期。 $timedifference 显示我系统的当前时间,所以它显然是错误的。

问题是:如何从变量 $EndTime 和 $StartTime 中提取日期,然后计算它们之间的差异。

我的脚本:

#Variables
$TaskName = '\TestTask'
$StartTime = (Get-Date).AddDays(-1)
$EndTime = Get-Date

$filter = @{
    LogName = 'Microsoft-Windows-TaskScheduler/Operational'
    ID = 100, 102
    StartTime = $StartTime
    EndTime = $EndTime
    Data = $TaskName
}

# Retrieve events
$events = Get-WinEvent -FilterHashtable $filter | Select-Object TimeCreated, @{n='Action';e={$_.TaskDisplayName}}

# Calculate time difference
$timeDifference = New-TimeSpan -Start $StartTime -End $EndTime

# Output event details
$events
powershell event-viewer taskscheduler get-winevent time-difference
1个回答
0
投票

($EndDate - $StartDate)
将以
[Timestamp]
对象的形式返回差异。

© www.soinside.com 2019 - 2024. All rights reserved.