Windowsコマンドラインに入力されたテキストをログすることができるpowershellとEvent4688について。Powershell - コマンドラインテキストのクエリイベント4688
-FilterHashTableイベントログの「プロセスのコマンドライン」で入力されたものを私に示すために、-WinEventのは入手PowerShellを使用する方法はありますか?これは、実際のテキストの誰かがコマンドラインに入力されただろう。
Windowsコマンドラインに入力されたテキストをログすることができるpowershellとEvent4688について。Powershell - コマンドラインテキストのクエリイベント4688
-FilterHashTableイベントログの「プロセスのコマンドライン」で入力されたものを私に示すために、-WinEventのは入手PowerShellを使用する方法はありますか?これは、実際のテキストの誰かがコマンドラインに入力されただろう。
Properties
を使用してイベントメッセージのプロパティにアクセスできますが、サンプルイベントを使用してメッセージとProperties
配列を比較して、どのフィールドが正しいフィールドであるかを調べる必要があります。 )、確認する必要があります。
リストのプロパティ(メッセージの値):
(Get-WinEvent -FilterHashtable @{
LogName = 'Security'
ID = 4688
} -MaxEvents 1).Properties
Value
-----
S-1-5-18
-
-
999
920
C:\Windows\System32\lsass.exe
%%1936
784
#I believe this is CommandLine
S-1-0-0
-
-
0
C:\Windows\System32\wininit.exe
S-1-16-16384
Select-Object
を使用すると、exを抽出する独自のオブジェクトを作成できます。 TimeCreatedおよび(カスタム/計算プロパティを使用して)のCommandLine:
Get-WinEvent -FilterHashtable @{
LogName = 'Security'
ID = 4688
} | Select-Object TimeCreated,@{name='NewProcessName';expression={ $_.Properties[5].Value }}, @{name='CommandLine';expression={ $_.Properties[8].Value }}
#I didn't have any values in my events
TimeCreated NewProcessName CommandLine
----------- -------------- -----------
09.04.2016 00:56:04 C:\Windows\System32\lsass.exe
09.04.2016 00:56:04 C:\Windows\System32\services.exe
09.04.2016 00:56:04 C:\Windows\System32\winlogon.exe
09.04.2016 00:56:04 C:\Windows\System32\wininit.exe
09.04.2016 00:56:04 C:\Windows\System32\csrss.exe
(プロパティ - の順番だったあなたはまた、プロパティにアクセスするためにXMLを使用することができますが、別のEVENTIDSをリストしている場合、これは、より有用であろう配列は異なるだろう)。例:
Get-WinEvent -FilterHashtable @{
LogName = 'Security'
ID = 4688
} | Select-Object TimeCreated, @{name='CommandLine';expression={ (([xml]$_.ToXml()).Event.EventData.Data | Where-Object { $_.Name -eq 'CommandLine' })."#text" }}
ありがとうございます!どのようにそれをさらに解析するのですか?私は 'null配列にインデックスできません'を取得し続けます。あなたに別の質問を残しました - [質問](http://stackoverflow.com/questions/36758480/powershell-parsing-select-object-even-further) – Dpitt1968
あなたはそれをさらに解析することはどういう意味ですか?どのソリューションが失敗しているのか、そのエラーがコード内のどこにあるのかを記述していますか?私が考えることができる唯一の可能性はexです。 '$ _。Properties [8] .Value'ですが、エラーなしで値なしのコンピュータでこれを実行しました。 –
解決策はすばらしく、完全に質問に答えます。私はちょうどこのことを学びたいと思っています。たとえば、コマンドライン内でそれをさらに解析すると、誰かが 'net shell' 'ftp'などと入力して勉強しようとしました。 – Dpitt1968