Von web master auf Mittwoch, 20. Juni 2012
Kategorie: DSM

Schemaerweiterungen während der OSD Phase bearbeiten

seit DSM 7.1 gibt es eine neue Möglichkeit, während der OSD Phase über z.B. ein PreOS Action Paket, den Wert einer Schemaerweiterung zu bearbeiten.

Ein Beispiel hierfür ist, den Installationsstatus zu definieren, welcher später für die Reboot Steuerung abgefragt werden kann.

So kann zu Beginn einer Installation der Wert „Grundinstallation“ in eine State Info Schemaerweiterung geschrieben werden. Solange dieser Wert gesetzt ist, kann der Client ohne Rücksicht auf Verluste rebootet werden. Mit dem letzten DSM Paket kann über den Befehl „ModifyObjectProperty“ der Wert auf „Produktiver Client“ gesetzt werden. Somit müssen gewisse Sachen geprüft werden, bevor ein Reboot durchgeführt werden kann.

Wichtig ist hierbei eine State Info Schemaerweiterung zu verwenden. Diese wird durch den DSM Client verwaltet. Managed Info Schemaerweiterungen können hierbei nicht verwendet werden, da diese ausschließlich über die DSMC verwaltet werden.

Damit der Wert aus einem PreOS Action Paket in die Schemaerweiterung geschrieben werden kann, gibt es die Datei „_result.txt“, welche die Aktion erledigt.

Diese wird auch bei den neu Eingeführten „OS Self Service“ Paketen verwendet.

Wenn im Script z.B. folgende Zeile abgesetzt wird, wird der Wert „Grundinstallation“ in die Schemaerweiterung eingetragen. Die Variable darf an dieser Stelle aber nicht in „%“-Zeichen gesetzt werden.

echo CurrentComputer.CustomNWCClientInfo.StagingPhase=Grundinstallation > _result.txt

Beispiel:

Sollten Integer Werte in die Schemaerweiterung geschrieben werden, gibt es ein paar kleine Stolperstellen, welche es zu vermeiden gilt.

Wenn man z.B. folgende Syntax verwendet…

                „Echo CurrentComputer.CustomNWCClientInfo.StagingPhase=1>_result.txt“

…steht in der _result.txt folgendes:

               „CurrentComputer.CustomNWCClientInfo.StagingPhase=“

…weil die 1 zur Redirection gehört

 Wenn man es dagegen mit Leerzeichen trennt, also

                „Echo CurrentComputer.CustomNWCClientInfo.StagingPhase=1 >_result.txt“

…dann steht das Leerzeichen mit in der _result.txt.

 Workaround:

                “Echo CurrentComputer.CustomNWCClientInfo.StagingPhase=1|sort>_result.txt”

Ein Umständliches setzen von Registry Keys, welche dann durch den Client ausgelesen werden, bevor sie per „ModifyObjectProperty“ in die Datenbank geschrieben werden entfällt hierbei komplett.

Verwandte Beiträge

Kommentare hinterlassen