2016-07-20 9 views
0

プログラミングとPowershellスクリプトを学習しようとしています。複数のサーバー上のイベントIDトラッカーとCSVレポート

私は特定のイベントIDを提示するサーバ(この場合はDC)のリストを収集するためのスクリプトを作成しています。

このコードを追加/変更して、イベントIDを表示するサーバーの一覧を取得し、現在のようなサーバーの説明を持つtxtだけでなく、このコードを追加する必要があります。

このコードでは、サーバーのリストと最後のイベントでtxtを取得します。しかし、私はまた、イベントIDをアクティブにしているサーバのリストをcsvに入れたいと思っています。イベントIDコードがそれを行いますされ、その後存在しない場合、または私はあなたがあなたの出力のフォーマットが、あなたを想定したいどのように正確に明確ではないよ

$DCsList = (Get-ADForest).Domains | %{Get-ADDomainController -Filter * -Server $_} | Select-Object HostName | Sort-Object Hostname 

$result = Foreach ($dcs in $DCsList){ 
try{ 
Get-WinEvent -computername $dcs -FilterHashtable @{Logname='System';ID=5774} -MaxEvents 1 -ErrorAction SilentlyContinue | fl 
} 
catch{ 
} 
write-output "$dcs doesn't have the event 5774 on the system log" 
} 
$result | Out-File "D:\DNSRegEvents.txt" 

答えて

0

は1列であること、ホスト名とCSVと2番目の列はされたい:

$DCsList = (Get-ADForest).Domains | %{Get-ADDomainController -Filter * -Server $_} | Select-Object HostName | Sort-Object Hostname 
$result = Foreach ($dcs in $DCsList) 
{ 
    If ((Get-WinEvent -FilterHashtable @{Logname='System';ID=5774} -MaxEvents 1 -ErrorAction SilentlyContinue).length -gt 0) 
    { 
     $Object = New-Object PSObject -Property @{    
     Server = $dcs.HostName    
     Result = "Server has event" 
     } 
    } 
    Else 
    { 
     $Object = New-Object PSObject -Property @{    
     Server = $dcs.HostName    
     Result = "Server does not have event" 
     } 
    } 
    $Object 
} 
$result | Export-Csv "D:\DNSRegEvents.csv" -NoTypeInformation 
関連する問題