Ищем локализацию для сопоставления результатов Get-WinEvent -Listlog с путем config .xml - PullRequest
0 голосов
/ 11 февраля 2019

Для средства просмотра событий я хочу стандартные viewconfigs для каждой записи в дереве событий.Эти 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)
    }    
}

Полный код можно найти под https://pastebin.com/Cn4JSmLL

...