NWC Services Blog
Wer sich schon einmal aufmerksam durch die DSM Logs gearbeitet hat, wird schon mal auf die Variablen "_LAST_ERROR_TEXT" und "_ERROR_SEVERITY" gestossen sein. Diese Variablen werden ggf. gefüllt, wenn ein interner DSM Befehl nicht funktioniert hat. I.d.R. ist die Auswertung der internen DSM Befehle allerding nicht sonderlich relevant. Simple Befehle wie ein "InstallFileList" erkenne selber, wenn eine interne Funktion (z.B. aufgrund eines Filelocks) eine Fehler erzeugt hat.
Allerdings gilt dies nicht für alle Befehle oder alle Konstellationen von Befehlen. Kann z.B. ein "LocalGroupAddMember" Befehl den User, der in die Gruppe hinzugefügt werden soll nicht auflösen, wird das eScript trotzdem mit "Erfolg" verlassen. Im Worst case erfährt der Administrator also niemals etwas davon, dass ein Paket fehlgeschlagen ist. Die beiden oben genannten Variablen helfen bei der Fehleranalyse. Im Beispiel des "LocalGroupAddMember" Befehls wird (bei Fehler) die "ERROR_SEVERITY" mit "3" befüllt, der "_LAST_ERROR_TEXT" mit einem Informationstext über die Ursache des Problems. Folgende Randbedingungen sind beim Einsatz dieser Variablen zu beachten:
Nach Zuweisung von Software und dem damit verbundenen Erzeugen neuer Policies, müssen Ihre Clients in der Regel bis zum nächsten Polling warten, damit die Änderungen angewendet werden.
Über die DSM 7 Konsole hat man jedoch – ähnlich der „Sofort-Installation“ unter NetInstall v5.x – die Möglichkeit, die Aktion „Änderungen ausführen“ durchzuführen und diese Wartezeit damit zu verkürzen. In diesem Blog-Artikel möchte ich Ihnen kurz zeigen, wie Sie diese Möglichkeit auch per PowerShell abbilden können.
Mein Kollege Michael Jeske und ich haben uns in einem gemeinsamen Projekt intensive Gedanken darum gemacht, wie ein Windows 7 Client optimal über die DSM Datenbank in internationalen agierenden Unternehmen auf seine regionalen Bedürfnisse hin präpariert wird. Folgende Ziele haben wir uns dabei gesteckt:
- Es müssen alle regionsspezifischen Werte (Währung, Tausender-Trennzeichen, Papiergrösse, Datumsformate, Zeitzone, etc.) und das Tastaturlayout konfiguriert werden.
- Die Sprachen werden unabhängig von den regionalen Einstellungen verwaltet / zugewiesen.
- Im Sinne der Anwendung der DSM Datenbank als CMDB, sollen alle regionalen Einstellungen in der DSM Datenbank verwaltet werden.
- Wechselt ein Client seinen primären Standort, müssen die regionalen Einstellungen ebenfalls automatisiert angepasst werden.
- Das Keyboard-Layout muss statisch auf das Land konfiguriert werden (und kann später durch eine Einstellung im Benutzerprofil überschrieben werden).
- Alle Einstellungen werden rein Computer-bezogen betrachtet. Benutzer-bezogene Konfiguration sollte im ersten Schritt aus dem Standardprofil heraus erfolgen (und nicht via DSM, GPO, etc.)
- Da es sich in unserem Fall um ein deutsches Unternehmen handelt, soll neben englisch die deutsche Sprache und Konfiguration immer, unabhängig vom Standort verfügbar sein, sofern dies Sinn macht.
Es gibt ein neues "Feature" in DSM 7.1, das meines Wissens nach ebenfalls auch nicht dokumentiert ist. Und zwar macht DSM seit dem aktuellen Release eine aktive Lizenzprüfung und weist – halbwegs penetrant – auf eine bestehende Unterlizensierung hin.
Seit DSM 7.1 gibt es die Möglichkeit, den Runtime im Context des SYSTEM Users laufen zu lassen. Dies hat folgende Vorteile:
- Lokale Admins werden verringert
Die Konfiguration eines Runtime Users kann komplett entfallen. Dies muss allerdings bei einer DSM 7.1 Neu-Installation nachträglich erfolgen, der Installations-Wizard ist noch nicht darauf angepasst.
- Mangement von Konfiguration auf die nur SYSTEM zugreifen darf
Beispiel: Der Microsoft Forefront Client sollen nicht via GPO konfiguriert werden, sondern Ihre Settings via DSM Paket erhalten. In diesem Fall müssen die Exclusions unter "HKLMSoftwareMicrosoftMicrosoft ForefrontClient Security1.0AMExclusions" gepflegt werden. Auf diesen Registry Zweig hat aber nur SYSTEM Schreibzugriff. Auch ein vorhergehender "ChangeRegSecurity" hilft da nicht weiter, um dem Runtime Dienst Zugriff zu geben.
- Management von Domain Controllern
Wird ein Domain Controller mit einem DSM Client versehen, wurde der assoziierte User immer automatisch zum Domain Admin.
Soll dieses Feature eingesetzt werden, müssen folgende Dinge beachtet werden:
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.
Eine weitere bisher undokumentierte Neuerung in DSM 7.1 – wenn auch nicht ganz so spektakulär wie das von Michi hier beschriebene Feature – betrifft die Möglichkeit, einen Vorgabewert für den Kommentar anzugeben, der beim Freigeben eines Paketes eingetragen werden kann und sollte.
Im Normalfall stellt sich das Fenster beim Auswählen des "Paket freigeben" folgendermaßen dar:
Vermutlich wird es den meisten Lesern dieses Beitrags so ergehen, dass hier in der Regel nichts eingetragen wird. Seit DSM 7.1 ist es jedoch nun möglich, hier automatisch einen Vorgabe-Text eintragen zu lassen, um den Paketierern das Ausfüllen zu erleichtern oder ganz abzunehmen.
Jeder kennt die Arbeit, die auf einen zukommt, wenn in der DSM eine neue Revision eines Bootenvironments ansteht. Es müssen ggf. Folgerevisionen von Paketen und OS-Installation Sets angelegt werden.
Mit der DSM 7.1 wird diese Arbeit ganz erheblich vereinfacht. Für jeden Client ist jetzt individuell konfigurierbar, welches Bootenvironment in welcher Revision verwendet werden soll.