Netz-Weise Logo

Weisheiten - der Netz-Weise Blog

Hier finden Sie Tipps und Tricks für vor, während und nach der Schulung.
1 Minuten Lesezeit (192 Worte)

Mit Powershell prüfen, ob eine Objekteigenschaft vorhanden ist

Kürzlich habe ich mein BCDEdit-Modul wieder angefasst, um einige Funktionen zu überarbeiten. Das Modul erstellt dabei dynamisch Objekte aus dem BCD-Store, indem es per regulärem Ausdruck die Ausgaben von bcdedit.exe einliest, auftrennt und als Objekt zurückgibt.

Dummerweise sind aber nicht alle BCD-Einträge gleich. Einige Eigenschaften werden von BCDedit nur angezeigt, wenn Sie auch tatsächlich gesetzt sind. Um in einer If-Abfrage keine Fehlermeldung zu bekommen, wenn die Eigenschaft gar nicht existiert - die Fehlermeldung kann auch nicht unterdrückt werden, da es sich um einen terminierenden Fehler handlet - muss vorher geprüft werden, ob die Eigenschaft vorhanden ist. Das geht tatsächlich sehr einfach, ist aber gut versteckt. Denn an jedem Objekt hängt ein verstecktes Memberset namens psobject, das nur angezeigt wird, wenn man get-Member mit dem Parameter -force aufruft.

get-childitem C:\Windows | get-member -force

 Psobject ist ein Memberset

 PSObject beinhaltet Metainformationen über das Object, unter anderem eine Auflistung aller Eigenschaften.

$Folder = Get-Childitem C:\Windows | Get-Member -force
$Folder.psobject.Properties

Die Eigenschaft Name jeder Property entspricht dem Eigenschafsnamen. Um zu prüfen, ob eine Eigenschaft in der Liste enthalten ist, können Sie jetzt einfach den -contains-Operator verwenden:

If ( $folder.PSObject.Properties.Name -contains "Attributes" )
{
  "Die Eigenschaft Attributes existiert"
}

Bitlocker-Verschlüsselung schlägt mit der Meldung ...
Den Datenträgertyp (SSD,HDD) per Powershell und WM...

Ähnliche Beiträge

 

Kommentare

Derzeit gibt es keine Kommentare. Schreibe den ersten Kommentar!
Bereits registriert? Hier einloggen
Montag, 20. Mai 2024

Sicherheitscode (Captcha)