イベント ビューアの場合、イベント ツリーの各エントリにデフォルトの viewconfig が必要です。これらの channel_i.xml は、ツリー構造に従ってフォルダー内の $env:ProgramData\Microsoft\Event Viewer の下に格納されます。残念ながら、ログ名を構成ファイルの場所にマップする標準的な動作はないようです。これを取得する機能はありますか?対象ロケールはドイツ語です。現在、ハッシュテーブル内のすべての例外を含むカスタム関数を使用して、元の文字列が見つからない場合は元の文字列を返します。メインコードは
Get-WinEvent -ListLog * | % {
if($windows.Contains($_.LogName)){
writeFile $builtin (localize $_.LogName)
}else{
$components = $_.Logname.Split("/")
if($components.Count -gt 1) {
$name = $components[1]
$components= $components[0].Split("-")
}else{
[System.Collections.ArrayList]$components= $components[0].Split("-")
$name = $components[-1]
$components.RemoveAt($components.Count-1)
}
if($components.Count -gt 2){
$components = $components[0..1] +($components[2..($components.Count-1)] -join "-")
}
$path = localize ($components -join "\")
WriteFile "$app\$path" (localize $name)
}
}