Von Benedikt Gunzelmann auf Freitag, 18. Mai 2012
Kategorie: PowerShell Extensions / PSX

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.

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.

Verwandte Beiträge

Kommentare hinterlassen