0

PowerShell でイベント ログ メッセージの最後の行を表示する必要があります (":" の後のほぼすべてです。これを行うことができなかったので、別の方法として、メッセージと部分文字列を出力する必要があります。": " 私のメッセージの位置は 200 位です。以下のコードは、":" の後に 56 文字を表示します。

「:」以降のすべてを表示するにはどうすればよいですか?

Get-Eventlog -Logname Application -Source "HELPME" | format-table timewritten, @{l="User";e={$_.message.substring(309, 56)}} -wrap -autosize

役立つ場合のメッセージの例を次に示します。

ソース 'HELPME' のイベント ID '1234567890' の説明が見つかりません。メッセージを表示するために必要なレジストリ情報またはメッセージ DLL ファイルがローカル コンピュータにないか、それらにアクセスする権限がない可能性があります。次の情報はイベントの一部です**:** 'Blah', 'Blahh', 'Blahhh'

時間と「Blah」、「Blahh」、「Blahhh」を表示するコードが必要です。

4

1 に答える 1

1

これはおそらく、予想よりも簡単です。文字列には、Substring() メソッドで使用できる LastIndexOf() というメソッドがあります。長さを省略すると、指定した開始位置を過ぎたすべてが出力されます。LastIndexOf を使用すると、最後の : が文字列のどこにあるかが表示されます。したがって、この:

$_.message.substring(($_.message.lastindexof(':')+1))

これにより、メッセージの : の後の部分だけが出力されます。これが、+1 を付けた理由です。それ以外の場合は、コロンが含まれます。

于 2015-02-26T19:22:16.967 に答える