Archiv für den Monat: Januar 2012

Perfomance Counter übersetzen

Performance Counter sind toll! Man kann relativ einfach Werte auslesen. Dumm nur, dass Microsoft alles übersetzt, selbst die Performance Counter Objekte.

Man findet im Technet viele tolle Beschreibungen, welche Counter sinnvoll zum Überwachen bestimmter Dienste wären.

Hier wird natürlich immer auf die englische Variante verwiesen.

Man findet in der Registry sowohl deutsche als auch englische Beschreibungen, ansprechen kann man aber scheinbar nur die deutschen.

Daher habe ich ein Powershell Script geschrieben. Welches alle Counter englisch und deutsch ausgiebt.

Alternativ kann auch über folgende Syntax ein bestimmter Counter in der Originalsprache gesucht werden:

PS C:\Scripting> .\perflib-translator.ps1 "Current % Processor Time"
Current % Processor Time
Aktuelle Prozessorzeit (%)
===============================================================================

Hier nun das doch recht simple Script:

$english = "009"
$german = "007"

$translatefrom = $english
$translateto   = $german

$langfrom = (Get-ItemProperty "HKLM:\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Perflib\$($translatefrom)").Counter
$langto = (Get-ItemProperty "HKLM:\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Perflib\$($translateto)").Counter
$translation = @{}
For ($x=0; $x -lt $langto.length; $X=$x+2){
    $translation.Add($langto[$x],$langto[$x+1])
}
For ($x=0; $x -lt $langfrom.length; $X=$x+2){
    If($args[0]){
        If($langfrom[$x+1] -match $args[0]){
            $langfrom[$x+1]
            $translation[($langfrom[$x])]
            "==============================================================================="
        }
    } else{
        $langfrom[$x+1]
        $translation[($langfrom[$x])]
        "==============================================================================="
    }
}