NWC Services Blog
PSX Snippets (Reinstall Object)
Nach der kleinen Einführung und dem richtigen Connect zur DSM via PSX wollen wir uns als nächstes einige sehr oft genutzte Features der DSM ansehen und uns hierfür weitere kleine Codeschnipsel erstellen. So kommen wir zunächst zu einem der wohl am meisten genutzten Features. Dem "Computer neu installieren"-Dialog.
Hierbei bekommt der Administrator die Möglichkeit zu entscheiden wann und wie ein Computer Reinstalliert werden soll. Seit der DSM 7 wird ein Client per Default zur Reinstallation vorbereitet, alle Policy Instanzen auf die aktuell zugewiesene Revision aktualisiert und die Installationsreihenfolge der Pakete neu berechnet. Zu guter Letzt wird der Client wieder auf "Aktiv" gesetzt um die Reinstallation sofort beginnen zu können.
Um diese Aktion nun per PowerShell auszuführen, können folgende Funktionen genutzt werden:
1. Reinstall über das PowerShell Cmdlet Reinstall-EmdbComputer
Um ein Computerobjekt einfach zur Reinstallation vorzubereiten kann das Cmdlet Reinstall-EmdbComputer verwendet werden.
Bei dem beschriebenen Cmdlet stehen uns genauso wie bei der manuellen Variante mehrere Optionen in Form von Ausführungsparametern zur Auswahl.
- Über den Parameter StartImmediatly wird der Computer beim nächsten Neustart reinstalliert. Sofern dieser Schalter nicht gesetzt ist wird der Status des Clients auf "PrepareForReinstall" gesetzt.
- RecalculateInstallationOrder bewirkt eine Neuberechnung der Installationsreihenfolge auf Basis der Installation Order-ID. Wird dieser Schalter nicht angegeben wird die bestehende Installationreihenfolge weiterhin beibehalten.
-
Mit der Angabe des Parameters PreservePolicyInstanceRevisions wird verhindert, dass die bestehenden Policy-Instanzen auf den aktuellen Wert der Policy angehoben werden. Wird der Schalter nicht angegeben werden die Policy-Instanzen aktualisiert.
2. Reinstall über Eigenschaftswerte am Client Objekt
Die Reinstallation eines Clients kann analog zu dem dafür vorgesehenem Cmdlet auch in einzelnen Schritten durchgeführt werden. Hierzu müssen nacheinander die einzelnen Eigenschaften am Client Objekt geändert werden. Ein Vorteil dieser Variante liegt darin, dass weitere Befehle zwischen Start und Ende des Vorgangs eingefügt werden können um den Client für seine Bedürfnisse zu modifizieren.
Zunächst suchen wir unseren PC mit dem Cmdlet Get-EmdbComputer und speichern uns diesen in einer Variable ($pc). Über die Eigenschaften des Computerobjektes kann dieses nun über $pc.OperationMode = "PrepareForReinstall" zunächst für die Reinstallation vorbereitet werden. Wichtig ist hierbei nach Änderung am OperationMode per $pc.Update() die Änderungen in der DSMDB zu speichern bevor weitere Aktionen durchgeführt werden. Im Codebeispiel von oben wird der Default Frontrange Dialog abgearbeitet und zunächst per $pc.UpgradePolicyInstances() die Policy Instanzen auf die aktuelle Revision angehoben als auch die Installationsreihenfolge per $pc.ResetInstallationOrder() neu berechnet. Um den Vorgang abzuschließen wird der OperationMode des Objektes wieder auf "Active" gesetzt und die Änderungen erneut gespeichert.
When you subscribe to the blog, we will send you an e-mail when there are new updates on the site so you wouldn't miss them.
Kommentare