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

Printed on: April 19, 2024 at 19:04 o'clock

Mitglied: 114757
114757 Mar 03, 2016 updated at 14:06:46 (UTC)
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
Member: Browserlauser
Browserlauser Mar 03, 2016 at 14:12:44 (UTC)
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
Solution 114757 Mar 03, 2016 updated at 14:25:05 (UTC)
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.
Member: Browserlauser
Browserlauser Mar 03, 2016 at 14:21:39 (UTC)
Goto Top
Hat sich erledigt. Es funktioniert mit:

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

Danke...
Mitglied: 114757
114757 Mar 03, 2016 at 14:24:11 (UTC)
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