Werte von Schemaerweiterungen setzen
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() |