November 6 2015

ConfigMgr 2012 OSD mit UI++ und Task Sequence Variables

tl;dr
Ein längerer Artikel über meine Vorgehensweise beim OS-Deployment in einer mehrsprachigen, standardisierten Systemlandschaft mit dem Configuration Manager 2012 und UI++.

 

Bislang hatte ich unterschiedliche OSD Task Sequenzen im Einsatz, je nach Art des Zielrechners. Dies konnte ich nun mit Hilfe von Task Sequence Variablen und dem Tool UI++ auf eine einzige dynamische Task Sequenze reduzieren und somit den administrativen Aufwand minimieren und einen großen Schritt weiter in Richtung Standardisierung vornehmen.

In der von mir verwalteten Umgebung wird standartisierte Hardware eingesetzt, die Client Installationen unterscheiden sich jedoch anhand ihres Einsatzgebietes:

  • Workstation
  • Notebook Standard
  • Notebook Spezial
  • CAD Workstation

Die Basis ist bei allen System indentisch: Windows 7 Enterprise, Office 2013 und eine Sammlung an Tools wie dem PDF Reader, SAP FrontEnd usw. Dies entspricht dann einer klassischen "Workstation".
Notebooks und CAD Workstations erhalten dann noch weitere Anwendungen wobei die "Notebook Spezial" eine Untermenge von "Notebook" darstellt.

Unabhängig davon gibt es noch unterschiedliche Standorte die wiederum teilweise eigene Anwendungen und Einstellungen erhalten.

Das ganze ist natürlich Multilingual aufgebaut…

 

In der OSD Task Sequence schaut das dann so aus (vereinfachte Darstellung):

 

Install Operating System

Zuerst wird das WinPE System gestartet und die Festplatte wird formatiert, hier prüfe ich ab ob BIOS oder UEFI. Danach wird UI++ ausgeführt um die benötigten Task Sequenzce Variablen zu befüllen.

Verwendete Variablen:

  • %OSDUILanguage% = Sprache des Zielsystems: de-DE, en-US, fr-Fr, it-IT, ..
  • %OSDTargetType% = Art des Zielsystems: Notebook, NotebookSpecial, CAD
  • %OSDSitePackage% = Standort des Zielsystems: Site001, Site002, Site003

 

Beim Punkt "Apply Operating System Image with Office 2013" wird ein Capture-WIM inkl. Office 2013 installiert. Der Capture PC bring auch gleiche eine Menge an Middleware mit wie .NET Framework, C++ Runtimes sowie einen relativ aktuellen Patchlevel (das Capture WIM tausche ich ca. alle 6 Monate aus). In der unattended.xml verwende ich auch gleich die erste Task Sequence Variable nämlich %OSDUILanguage% um die Anzeigesprache von Windows vorzugeben:

Danach folgt die Konfiguration der Netzwerkkarte sowie der Domain Join.

Bei den Treibern verwende ich immer ein spezifisches Driver Package pro Gerät, die Abfrage erfolgt per WMI. Bei einigen Geräten müssen Treiber teilweise als Applications im Windows 7 installiert werden, auch hier prüfe ich das Model per WMI Abfrage:

 

 

Nach der Betrriebsssysteminstallation folgen die Anwendungen. Hierzu werden nur die Gruppen ausgeführt, wo die entsprechende Task Sequenze Variable gesetzt ist:

[TargetType = All] –> Wird bei allen Rechnern installiert
[TargetType = Notebook] –> Wird installiert, wenn die Variable OSDTargetType "Notebook" oder "NotebookSpezial" ist
[TargetType = NotebookSpezial] –> Wird installiert, wenn die Variable OSDTargetType "NotebookSpezial" ist
[TargetType = CAD] –> Wird installiert, wenn die Variable OSDTargetType "Notebook" oder "NotebookSpezial" ist

 

Auf jeder Gruppe ist eine entsprechende Bedingung gesetzt, hier das Beispiel "Notebook":

 

Zuletzt folgende dann noch Anwendungen / Scripte bezogen auf den jeweiligen Standort. Selbige Taktik nur mit der Variable %OSDSitePackage%.

 

 

… so far … so good aber woher kommen die TS-Variablen?

Hier kommt das kostenlose Tool UI++ zum Einsatz!

Das präsentiert während der WinPE Phase dem Anwender eine einfach UI mit Dropdowns:


(Screenshot als Beispiel… Hier würde noch die Abfrage nach dem Standort fehlen)

 

 

Fazit

Statt mehrerer gibt es so nur noch eine Core Client Installationsroutine. Die Kollegen, welche im Feld die Installationen durchführen müssen im WinPE nur noch den Gerätenamen eintippen und die richtige Auswahl treffen – danach läuft alles automatisiert durch und es fällt ein fertiger Rechner raus.

 

In einem zweiten Beitrag werde ich dann mal noch darauf eingehen, wie man das OS-Deployment auch Remote über den Config Manager Client starten kann, das Zauberwort an dieser Stelle ist "Collection Variables". Dazu aber ein anderes mal mehr. :-)


Veröffentlicht11.06.2015 von kaosdll in Kategorie "ConfigMgr", "Windows 7

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert