Tipps

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"
}


 269,    04  Jun  2019 ,   Tipp
Holger Voges

  E-Mail Diese E-Mail-Adresse ist vor Spambots geschützt! Zur Anzeige muss JavaScript eingeschaltet sein!

Holger Voges ist Inhaber der Firma Netz-Weise IT-Training und seit 1999 als Trainer und Consultant tätig. Als Allrounder in den Bereichen Windows Server, Active Directory, SQL Server, Hyper-V und Windows PowerShell, hat er in der Vergangenheit zahlreiche Einsätze als Consultant in namenhaften Firmen absolviert und so neben der Theorie auch umfangreiche praktische Erfahrungen gesammelt.

 

Netz-Weise

Das Haupt-Tätigkeitsfeld von Netz-Weise sind Schulungen für Profis. Bei uns bekommen Sie das Programm für den fortgeschrittenen Praktiker, der die Tiefen des Systems ausloten möchte genauso wie Standard-Schulungen.

So erreichen Sie uns:

Netz-Weise
IT-Training und Beratung
Freundallee 13a
30173 Hannover
 
Tel: (0511) 165 925-0
Fax: (0511) 165 925-99
email: info(at)netz-weise.de
 

Newsletter bestellen

Das Wichtigste kompakt ins E-Mailfach!