Powershell: Wert aus Registry auslesen und mit vorhandenem Wert vergleichen
Hallo,
ich stehe vor folgendem Problem:
Ich möchte per Powershell aus der Registry einen bestimmten Wert auslesen. Beispiel: in HKCU:\Software\Test den Wert des Schlüssels "Prog".
Dieser kann dabei z.B. so ausehen: AAAAA123
Nun soll Prog also AAAAA123 mit einem festen Wert aus dem Script (hier Value0) verglichen werden.
Ist dieser gleich oder zumindest ein Teil davon richtig (es würde AAAAA reichen), soll ein Ausgabetext erfolgen. Ansonsten Abbruch oder ein anderer Text.
Nun habe ich schon folgendes (als blutiger PS Neuling) versucht:
$value0 = "AAAAA"
$value1 = (Get-ItemProperty -path "HKCU:\Software\Test" -name Prog -erroraction silentlycontinue)
if ($value1 = $value0)
{
Write-host "ist i.O."
}
Else
{
Write-host "ist nicht i.O."
}
Aber irgendwie komme ich da nicht weiter. Vielleicht kann jemand helfen? Danke...
ich stehe vor folgendem Problem:
Ich möchte per Powershell aus der Registry einen bestimmten Wert auslesen. Beispiel: in HKCU:\Software\Test den Wert des Schlüssels "Prog".
Dieser kann dabei z.B. so ausehen: AAAAA123
Nun soll Prog also AAAAA123 mit einem festen Wert aus dem Script (hier Value0) verglichen werden.
Ist dieser gleich oder zumindest ein Teil davon richtig (es würde AAAAA reichen), soll ein Ausgabetext erfolgen. Ansonsten Abbruch oder ein anderer Text.
Nun habe ich schon folgendes (als blutiger PS Neuling) versucht:
$value0 = "AAAAA"
$value1 = (Get-ItemProperty -path "HKCU:\Software\Test" -name Prog -erroraction silentlycontinue)
if ($value1 = $value0)
{
Write-host "ist i.O."
}
Else
{
Write-host "ist nicht i.O."
}
Aber irgendwie komme ich da nicht weiter. Vielleicht kann jemand helfen? Danke...
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 298068
Url: https://administrator.de/forum/powershell-wert-aus-registry-auslesen-und-mit-vorhandenem-wert-vergleichen-298068.html
Ausgedruckt am: 16.04.2025 um 02:04 Uhr
5 Kommentare
Neuester Kommentar

if ($value1 = $value0)
Das Gleichheitszeichen ist in PS ein Zuweisungsoperator kein Vergleichsoperator!Zum simplen Vergleichen nutze -eq
if ($value1 -eq $value0)
Siehe dazu bitte
about_Comparison_Operators
Gruß jodel32

Zitat von @Browserlauser:
OK. Danke.
das: "Get-ItemProperty -path "HKCU:\Software\Test" -name Prog -erroraction silentlycontinue" scheint aber nicht den Wert zu liefern und in Value1 zu setzen.
OK. Danke.
das: "Get-ItemProperty -path "HKCU:\Software\Test" -name Prog -erroraction silentlycontinue" scheint aber nicht den Wert zu liefern und in Value1 zu setzen.
Wert des Schlüssels "Prog".
Du verwechselst da was ein Schlüssel hat kein Wert. Du meinst mit "Prog" eine Eigenschaft ?$value1 = Get-ItemProperty -path "HKCU:\Software\Test" -name Prog -EA silentlycontinue | select -Expand prog
Du erhältst als Rückgabe immer ein Objekt, davon musst du deine zu vergleichende Eigenschaft (Property) erst auswählen.

Zitat von @Browserlauser:
Hat sich erledigt. Es funktioniert mit:
$regkeypath= "HKCU:\Software\Test"
$value1 = (Get-ItemProperty $regkeypath).Prog
Danke...
Das wird dann aber einen Fehler triggern wenn der Wert nicht existiert Hat sich erledigt. Es funktioniert mit:
$regkeypath= "HKCU:\Software\Test"
$value1 = (Get-ItemProperty $regkeypath).Prog
Danke...