Werte von Schemaerweiterungen abrufen

In diesem Abschnitt wird beschrieben, wie auf die Werte von Schemaerweiterungen zugegriffen werden kann. Da es sich bei Schemaerweiterungen um "ganz normale" (eben nur benutzerdefinierte) Eigenschaften eines Objekttyps handelt, kann auf die im Folgenden beschriebene Methode sowohl auf Werte von Schemaerweiterungen, als auch auf Werte von Eigenschaften des Standard-Schemas zugegriffen werden.


Hierzu kommt die Methode GetPropertyValue() eines Objekts zum Einsatz. Mit dieser Methode lassen sich die Eigenschaftswerte eines Objekts auslesen. Es spielt dabei keine Rolle, ob es sich um eine benutzerdefinierte Eigenschaft oder eine Standard-Eigenschaft des jeweiligen Objekts handelt.


Beispiele:


Hinweis: Voraussetzung für die Beispiele ist ein verbundenes PowerShell-Laufwerk.


Um den Wert der Standard-Eigenschaft "InitialMACAddress" des Computers "XP01" abzurufen, kann folgender Code verwendet werden:


$MyComputer = Get-EmdbComputer "XP01" –Recurse

$MyComputer.GetPropertyValue("InitialMACAddress")


Da Eigenschaften in Eigenschaften-Gruppen organisiert werden, kann optional zusätzlich der Name der Eigenschaften-Gruppe angegeben werden, was die Lesbarkeit des Scripts erhöhen kann. Da, wie hier beschrieben, der interne Name von Schemaerweiterungen, auch über Gruppen hinweg, eindeutig sein muss, ist die Angabe jedoch nicht zwingend erforderlich. Der folgende Code liefert dasselbe Ergebnis wie das vorangegangene Beispiel.


$MyComputer = Get-EmdbComputer "XP01" –Recurse

$MyComputer.GetPropertyValue("BasicInventory.InitialMACAddress")


Angenommen für Computer-Objekte wurde über eine Schemaerweiterung die benutzerdefinierte Eigenschaft "Inventarnummer" definiert, so kann mit folgendem Code-Schnipsel der Wert dieser Eigenschaft ausgelesen werden:


$MyComputer.GetPropertyValue("Inventarnummer")


Der Wert einer Eigenschaft ist natürlich wieder ein Objekt im Objektmodell von DSM 2014.1. Das obige Verfahren zum Zugriff auf Eigenschaftswerte liefert jedoch nur den Wert der Eigenschaft und nicht das Objekt zurück. Dies ist in aller Regel ausreichend. Ist es dennoch erforderlich, auf das Objekt zuzugreifen, so kann zum Zugriff darauf die Syntax

<Objekt>.PropertyGroups.<Name der Property-Group>.<Name der Property> verwendet werden. Beispiel:


$MyComputer = Get-EmdbComputer "XP01" –Recurse

$MyComputer.PropertyGroups.BasicInventory.InitialMACAddress