browserlauser
Goto Top

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...

Content-Key: 298068

Url: https://administrator.de/contentid/298068

Ausgedruckt am: 29.03.2024 um 09:03 Uhr

Mitglied: 114757
114757 03.03.2016 aktualisiert um 15:06:46 Uhr
Goto Top
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
Mitglied: Browserlauser
Browserlauser 03.03.2016 um 15:12:44 Uhr
Goto Top
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.
Mitglied: 114757
Lösung 114757 03.03.2016 aktualisiert um 15:25:05 Uhr
Goto Top
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.


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.
Mitglied: Browserlauser
Browserlauser 03.03.2016 um 15:21:39 Uhr
Goto Top
Hat sich erledigt. Es funktioniert mit:

$regkeypath= "HKCU:\Software\Test"
$value1 = (Get-ItemProperty $regkeypath).Prog

Danke...
Mitglied: 114757
114757 03.03.2016 um 15:24:11 Uhr
Goto Top
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 face-wink