0

Powershell を使用して、特定のイベント ID について 2003 および 08 サーバーのリストの「セキュリティ」ログを監視しようとしています。これまで私はこれを使ってきました

    $servers = gc c:\temp\servers.txt
foreach ($server in $servers)
{
     $Query = "SELECT * FROM __instanceCreationEvent WHERE TargetInstancISA 'Win32_NTLogEvent' AND TargetInstance.LogFile = 'Security' AND TargetInstance.EventCode = '529' "

    Register-WMIEvent -ComputerName $server -Query $Query -sourceIdentifier "$server" -Action

    {Write-Host "The following Event ID of 529 has been found in the Security log on $server}

    }

しかし、ログ エントリのタイム スタンプと、存在する場合は最新のタイム スタンプのみを取得するにはどうすればよいでしょうか。

4

3 に答える 3

2

WMIを忘れてください。get-eventlog を使用します。

[string[]]$Servers = @("server1","server2")
Get-EventLog -LogName Security -ComputerName $Servers -Newest 1 -InstanceId 529 | select EventID,TimeGenerated,MachineName
于 2013-02-22T10:57:25.163 に答える
0

ちょうどそのような機会のために、私はしばらく前にこれを書きました:

http://gallery.technet.microsoft.com/scriptcenter/ed188912-1a20-4be9-ae4f-8ac46cf2aae4

于 2013-02-22T11:23:49.580 に答える
0

複雑にしないでおく:

$servers = gc c:\temp\servers.txt
foreach ($server in $servers)
{
    $events = Get-EventLog -ComputerName $server -LogName "Security" | Where-Object     {$_.EventID -eq "529"}
    if ($events -ne $null)
    {
        foreach ($event in $events)
        {
            $event.TimeGenerated
        }
    }
}
于 2013-02-22T10:56:02.743 に答える