如何获取查询的 CIM 指示事件的创建时间和处理该事件的当前时间?

How do I get the time a queried CIM Indication Event was created and the current time when it is handled?

提问人:Chris 提问时间:8/24/2023 更新时间:8/24/2023 访问量:12

问:

上下文:在 Windows CIM 指示事件引擎中__InstanceCreationEvent

我已注册接收 (docs),并且正在检查属性 (PSEventArgs 文档)。这是我的零时间。我想计算从那时起的增量时间。__InstanceCreationEventTimeGenerated

这将是我的代码处理事件的时间。

$event = Register-CimIndicationEvent -SourceIdentifier "Foo" -Query "$myQuery" -Action {

  $targetInstance = $eventArgs.NewEvent.TargetInstance
  $eventZeroDateTime = $eventArgs.TimeGenerated # ostensibly a DateTime object
  $eventZero = Get-Date ($eventZeroDateTime).ToUniversalTime() -UFormat %s
  $actionZero = Get-Date (Get-Date).ToUniversalTime() -UFormat %s

  $deltat = $actionZero - $eventZero

  Write-Verbose "Delta T: $deltat"
}

寻求的解决方案:

  1. ChatGPT:我问过这个问题,它经常给我一个合理但可变的方程式,用于计算自 1601 年 1 月 1 日以来的滴答次数(滴答 = 100 纳秒)。这是一种正确的方法(尽管方程是错误的),但 __InstanceCreationEvent 类的参数是 Tick 时间中的唯一参数。我现在不需要滴答时间,除了调用之外,我不知道如何访问它(这是一种未记录的方法,我怀疑当时会创建一个新事件,与原始事件的创建时间无关)。无论哪种方式,自事件创建以来导致滴答时间的答案将是 X 问题的 Y 答案。TIME_CREATED$eventArgs.NewEvent.TIME_CREATED

  2. 仔细阅读了有关该主题的 Microsoft 文档

  3. 使用块进行猜测和检查Action

Windows PowerShell 事件 事件处理

评论


答: 暂无答案