0
私は、DNS要求履歴をログに記録します。 だから私は、以下のPowerShellスクリプトを作りました。は、どのように私はPowerShellとタスクスケジューラによって、すべてのDNS要求をログに記録することができますか?
$PROC_ID = Get-WinEvent microsoft-windows-dns-client/operational -MaxEvents 1 -FilterXPath "*[System/EventID=3006]" | Select-Object -ExpandProperty processid
$TIMESTAMP = Get-WinEvent microsoft-windows-dns-client/operational -MaxEvents 1 -FilterXPath "*[System/EventID=3006]" | Select-Object -ExpandProperty timecreated
$LOG_MSG = Get-WinEvent microsoft-windows-dns-client/operational -MaxEvents 1 -FilterXPath "*[System/EventID=3006]" | Select-Object -ExpandProperty message
$PROC_NAME = Get-Process -id $PROC_ID | Select-Object -ExpandProperty processname
$TIMESTAMP_SPLIT = $TIMESTAMP -split " "
$LOG_DATE = $TIMESTAMP_SPLIT[0]
$LOG_TIME = $TIMESTAMP_SPLIT[1]
$LOG_URL = $LOG_MSG -replace '^\S{2}\s([^,]+).+','$1'
$LOG = "$LOG_DATE`t$LOG_TIME`t$PROC_ID`t$PROC_NAME`t$LOG_URL"
$LOG >> C:\dns.csv
私は3006イベントが発生したときにスクリプトを実行するタスクスケジュールを作成しました。
C:\>schtasks /query /tn dns_history /fo list /v
Folder: \
HostName: LG
TaskName: \dns_history
Next Run Time: N/A
Status: Ready
Logon Mode: Interactive/Background
Last Run Time: 2017-05-14 오후 4:39:07
Last Result: 0
Author: lg\Administrator
Task To Run: C:\Windows\System32\WindowsPowerShell\v1.0\powershell.exe -file C:\Test\Powershell\dns.ps1
Start In: N/A
Comment: N/A
Scheduled Task State: Enabled
Idle Time: Disabled
Power Management: Stop On Battery Mode, No Start On Batteries
Run As User: LG\administrator
Delete Task If Not Rescheduled: Disabled
Stop Task If Runs X Hours and X Mins: 72:00:00
Schedule: Scheduling data is not available in this format.
Schedule Type: When an event occurs
Start Time: N/A
Start Date: N/A
End Date: N/A
Days: N/A
Months: N/A
Repeat: Every: N/A
Repeat: Until: Time: N/A
Repeat: Until: Duration: N/A
Repeat: Stop If Still Running: N/A
これは結果です。
しかし、すべてのDNS要求がログに記録されていません。
のみ同時に発生したDNSリクエストの中で私のスクリプトログの最後のDNS要求。それはタスクスケジューラの限界ですか?どのように私はすべてのDNS要求を記録できますか?
そしてrestless1987のコードを実行すると、それは以下のエラーが発生しています。Register-WMIEvent : Wrong Class.
Location D:\test.ps1:9 Character:1
+ Register-WMIEvent -query "Select * From __InstanceCreationEvent within 3 $filter ...
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ CategoryInfo : NotSpecified: (:) [Register-WmiEvent], ManagementException
+ FullyQualifiedErrorId : System.Management.ManagementException,Microsoft.PowerShell.Commands.RegisterWmiEventCommand
ありがとうございました。しかし、私はパワーシェルには新しいです。あなたの答えは私にとっては難しいです。私はもっと勉強する必要があります:) –
私はエラーメッセージを追加しました。 –