2

我正在尝试使用Get-WinEvent从事件日志中检索我公司用于写入事件日志的特定提供商名称的事件。我发现我得到不同的结果取决于我是否使用Get-WinEventvs Get-EventLog,我不知道为什么。

使用此测试代码(两个提供商名称都是我公司拥有的不同应用程序的专有名称):

$pName1 = "MagicFS6"
$pName2 = "MT_WPLAppServer"
$provider = $pName2

$fhash = @{
    logname      = 'application';
    providername = $provider;
    StartTime    = '8/1/2017 12:00:00 AM'
}
$fhashevent = $null
$fhashevent = Get-WinEvent -FilterHashtable $fhash
$count = $fhashevent.Count
Write-Host "$provider had $count events using Get-WinEvent"

$eventlog = Get-EventLog -LogName Application -Source $provider -After '8/1/2017 12:00:00 AM'
$count = $eventlog.Count
Write-Host "$provider had $count events using Get-EventLog"

使用$pName1(MagicFS6) 运行,两者都Get-WinEvent返回Get-EventLog相同数量的事件。这告诉我代码是等效的。

但是,使用$pName2(MT_WPLAppServer) 运行,Get-WinEvent返回 0 个事件,并Get-EventLog正确返回数千个结果。

结果图片

MagicFS6 使用 Get-WinEvent
有 12662 个事件 MagicFS6 使用 Get-EventLog 有 12662 个事件

MT_WPLAppServer 使用 Get-WinEvent 有 0 个事件
MT_WPLAppServer 使用 Get-EventLog 有 11483 个事件

出于我的需要,我需要使用Get-WinEvent,所以我很想知道为什么这不能返回可靠的结果。

4

0 回答 0