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...
Please also mark the comments that contributed to the solution of the article
Content-Key: 298068
Url: https://administrator.de/contentid/298068
Printed on: April 19, 2024 at 19:04 o'clock
5 Comments
Latest comment
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...