Werte von Schemaerweiterungen setzen

Das Setzen der Werte von Schemaerweiterungen erfolgt sehr ähnlichen dem Abrufen solcher Werte.


In DSM 2017 werden zwei Typen von Schemaerweiterungen unterschieden: solche, die vom verwalteten System, also Client, gesetzt werden - die sogenannte "State-Info" - und solche, die in der DSM 2014.1 Konsole gesetzt werden können, die als "Management-Info" bezeichnet wird.


Mit Service Pack 1 für DSM 2014.1 wurden zwei wichtige Neuerungen eingeführt:

  • die bisherige Computer-Eigenschaft "Initiale MAC-Adresse" wurde in den Abschnitt "Basis-Inventarisierung" verschoben. Außerdem wurde diese Eigenschaft vom Typ "Management-Info" auf den Typ "State-Info" geändert
  • Schema-Erweiterungen vom Typ "State-Info" können nun auch über die Konsole - und damit über die PowerShell Extensions - geändert werden


Das Setzen von Eigenschaften erfolgt über die SetPropertyValue()-Methode. Dabei spielt es keine Rolle, ob es sich um eine Standard-Eigenschaft vom Typ "Management-Info" handelt, um eine benutzerdefinierte Eigenschaft dieses Typs (also eine Schemaerweiterung) oder um eine Schemaerweiterung des Typs "State-Info". Nach dem Aufruf der SetPropertyValue()-Methode muss das geänderte Objekt mittels der Update()-Methode gespeichert werden.


Beispiele:


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


Im folgenden Beispiel wird die Eigenschaft "Beschreibung" (der interne Name der Eigenschaft lautet "Description"), die vom Typ "Management-Info" ist und eine Standard-Eigenschaft darstellt, für den Rechner XP01 neu gesetzt:


$MyComputer = Get-EmdbComputer "XP01" –Recurse

$MyComputer.SetPropertyValue("Description", "Dies ist die neue Beschreibung")

$MyComputer.Update()


Wie oben beschrieben, ist seit DSM 2014.1 Service Pack 1 die Eigenschaft "Initiale MAC-Adresse" nun vom Typ "State-Info". Trotzdem kann diese - wie im Übrigen auch die Eigenschaft "SMBIOS-GUID" - nun auch über den Administration Webservice und damit über die PowerShell Extensions geändert werden. Dies ist beispielsweise in einem Hardware-Tausch Szenario sinnvoll und erforderlich, wenn ein neues Motherboard in einen bereits über DSM verwalteten Rechner eingebaut wird. Das folgende Beispiel zeigt wie hier vorzugehen ist:


$MyComputer.SetPropertyValue("InitialMACAddress", "001122334455")

$MyComputer.SetPropertyValue("SmBiosGuid", "{00000000-1111-2222-3333-4444444444}")

$MyComputer.Update()


Hinweis: Für Eigenschaften vom Typ "State-Info" können nur die Werte der Standard-Eigenschaften "Initiale MAC-Adresse" und "SMBIOS-GUID" sowie die von benutzerdefinierte Eigenschaften geändert werden. Die Werte aller anderen standardmäßigen State-Info-Eigenschaften sind nicht änderbar.


Angenommen für Computer-Objekte wurde über eine Schemaerweiterung die benutzerdefinierte (Management-Info) Eigenschaft "Inventarnummer" definiert, so kann mit folgendem Code-Schnipsel der Wert dieser Eigenschaft auf "PC0815-001" gesetzt werden:


$MyComputer.SetPropertyValue("Inventarnummer", "PC0815-001")

$MyComputer.Update()