我正在尝试使用Get-WinEvent
从事件日志中检索我公司用于写入事件日志的特定提供商名称的事件。我发现我得到不同的结果取决于我是否使用Get-WinEvent
vs 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
,所以我很想知道为什么这不能返回可靠的结果。