Mai 23 2016

Windows 7 „SP2“ ISO erzeugen

Statt einem "echten" Service Pack 2 hat Microsoft ein sogenanntes Convenience Rollup KB3125574 für Windows 7 Service Pack 1 veröffentlicht. Dieses kumulative Update liefert alle Updates für Windows 7 SP1 bis April 2016, jedoch nicht für Middleware wie .NET Framework oder die C++ Runtimes.

Das KB3125574 ist nur direkt im Windows Update Katalog erhältlich, hier sind die direkt Links:

 

Wie auch bei früheren Service Packs kann man auch dieses Update Rollup in das Windows 7 ISO einbinden, Stichwort "slipstream".

Dazu benötigt ihr neben dem KB3125574 und einem Win7SP1 ISO natürlich das Windows AIK und das April 2015 “Servicing Stack” Update KB3020369.

 

Quick and Dirty "How to slipstream"

Schritt 1: Windows 7 SP1 ISO nach C:\Win7SP1ISO entpackacken, die Updates nach C:\Updates kopieren

Schritt 2: WIM entpacken:

Dism /Mount-WIM /WimFile:C:\Win7SP1ISO\sources\install.wim /Name:"Windows 7 ENTERPRISE" /MountDir:C:\Win7SP1ISO\offline

Schritt 2: Beide Updates einspielen:

Dism /Image:C:\Win7SP1ISO\offline /Add-Package /PackagePath:C:\updates\Windows6.1-KB3020369-x64.msu
Dism /Image:C:\Win7SP1ISO\offline /Add-Package /PackagePath:C:\updates\windows6.1-kb3125574-v4-x64_2dafb1d203c8964239af3048b5dd4b1264cd93b9.msu

Schritt 3: Commit ausführen:

Dism /Unmount-WIM /MountDir:C:\Win7SP1ISO\offline /Commit

Schritt 4: ISO per WAIK erstellen: (optional)

oscdimg -n -m -bC:\Win7SP1ISO\boot\etfsboot.com C:\Win7SP1ISO\ C:\Windows7Updated.iso

 

Pfade/Dateinamen bitte ggf. anpassen… :-)

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. :-)

Juni 1 2012

Boot VHD auf einen physikalischen Datenträger klonen

Szenario:
Windows 7 installiert auf einer virtuellen Festplatte (VHD), diese ist ist als Laufwerk C: eingebunden und das Bootlaufwerk. Der physikalische Datenträger ist Laufwerk D:.

Ziel:
Die VHD Datei soll gelöscht werden, der Rechner soll von einem neuen, zweiten, physikalischen Datenträger starten.

Vorbereitung:
Für die folgenden Schritte benötigen wir das Tool imagex.exe von Microsoft. Dies befindet sich im WAIK (Windows Automated Installation Kit) Ordner unter toolsamd64 (oder x86 je nach Gusto). Das WAIK kann beim Microsoft kostenlos heruntergeladen werden.

Desweiteren benötigen wir einen Windows 7 Datenträger oder ein Systemreparaturdatenträger welchen wir unter Windows 7 auch brennen können. (Systemsteuerung -> System und Sicherheit -> Sichern und Wiederherstellen -> Systemreparaturdatenträger erstellen)

Ablauf:
Da die VHD als Boot Partition läuft können wir folgende Schritte nicht sauber im laufenden Betrieb durchführen, weshalb wir in das WinPE booten (mit dem Reparaturdatenträger oder der Windows DVD). Statt zu installieren oder zu reparieren wählen wir die Eingabeaufforderung aus.

Als erstes schauen wir welche Buchstaben die Laufwerke haben, in meinem Beispiel hat die alte Festplatte den Buchstaben F: und die neue Festplatte den Buchstaben G: erhalten.

Schritt 1 – VHD mounten
diskpart
> select vdisk file F:boot.vhd
> attach vdisk
> exit

Schritt 2 – Image der virtuellen Disk erstellen
imagex /capture I: F:boot.wim „boot drive“
In meinem Beispiel wurde die VHD als Laufwerk I: in das System eingebunden. ImageX erstellt immer WIM Images, in diesem Fall liegt dieses dann auch auf der alten physikalischen Festplatte.

Schritt 4 – VHD auswerfen
diskpart
> select disk 0
> select vdisk file F:boot.vhd
> detach vdisk
> exit
Da die VHD vermutlich noch vom einhängen das aktive Laufwerk ist muss im ersten Schritt eine andere Festplatte ausgewählt werden (select disk).

Schritt 5 – WIM Image auf neue Festplatte klonen
imagex /apply F:boot.wim 1 G:
Die Zahl bezieht sich auf das erste Image in der WIM Datei. Da wir das Image erst erstellt haben befindet sich natürlich nur ein Image in dem Container.

Schritt 6 – VHD umbenennen
Nun benennen wir die boot.vhd in boot.old um und starten den Rechner neu. Wenn alles klappt erkennt der Bootloader die Änderung und Windows startet. Falls nicht hilft hier der Reparaturdatenträger mit der Startoptionen-Reparatur.