Ihr Kontakt zu uns: +49 (0) 8232.9 95 34 70

In dem Artikel beschreibe ich wie in das INSTALL.WIM von Windows 10 (x64) Enterprise LTSB 2016 die Sprachpakete und Patche integriert werden können (Stichwort: Slipstream). Gleiches gilt auch für das momentan aktuelle Windows 10 Build 1703.

Windows 10 LTSB Sourcen

Mit folgenden Sourcen arbeiten wir bei der Offline Integration von Sprachen und Patchen.

Windows 10 (x64) Enterprise LTSB 2016 English
SW_DVD5_WIN_ENT_LTSB_2016_64BIT_English_MLF_X21-07421.ISO

Windows 10 (x64) Multilanguage Pack Build 10.0.14393
mu_windows_10_language_pack_version_1607_updated_jul_2016_x86_x64_dvd_9058649.iso

Die aktuellen Patche holen wir direkt aus DSM Patch Verzeichnis heraus. Falls dieses Addon nicht aktiv ist kann der aktuelle Kumulative Patch auch bei Microsoft Update herunter geladen werden.

Welcher Patch aktuell ist kann hier nachgelesen werden:

https://technet.microsoft.com/de-de/windows/release-info.aspx

Für den Download die Links dort verwenden oder über die KB Suche bei Microsoft Update raus suchen:

http://www.catalog.update.microsoft.com

Wir arbeiten mit dem letzten Patch für die LTSB. Dieses entspricht dem Build 1607 von Windows 10.

2017-08 Kumulatives Update für Windows 10 Version 1607 für x86-basierte Systeme (KB4034658)

Der Download über den Catalog kommt als .MSU Datei. Für die Integration in das Image wird das .CAB File benötigt. Dafür einfach die .MSU Datei über „expand -F:* update.msu C:<target_dir>“ entpacken.

Beispiel:

expand -F:* windows10.0-kb4038788-x64_f03ab03f65aa8849e6df4af25c56efc8b83c0ce0.msu „‚C:\Temp\Win10LTSB\Patch“

Meistens hat man dann vier Dateien. Den eigentlichen Patch, die wsusscan.cab und einige XML und TXT Dateien. Bis auf den Patch die anderen Dateien löschen.

Vorbereitung der Ordner und Dateien

Da wir mit einem PowerShell Script arbeiten definieren wir eine Ordnerstruktur für die bessere Übersicht. In unserem Beispiel werden die Ordner unter dem Pfad „C:\Temp\Win10LTSB“ erstellt.

  • langpack –> alle zu integrierende Language CAB Dateien
  • Mount –> Arbeitsverzeichnis des DISM Tools
  • patch –> alle Patche und Features CAB Dateien
  • Scratch –> Scratch Verzeichnis für das DISM Tool
  • sources –> Originalverzeichnis mit allen Dateien von dem Windows 10 ISO

Somit sieht das ganze am Ende so aus:

Lokale Ordner für die Windows 10 Souren

Benötige Dateien

Aus dem entpacken Windows 10 ISO wird wie oben beschrieben das Sourcen Verzeichnis in den „C:\Temp\Wino10LTSB“ Ordner kopiert. Bei den Language Packs nur die CAB Dateien kopieren die im Image landen sollen.

Windows 10 (x64) Enterprise 1607 Language Packs

In das Patch Verzeichnis kommen nicht nur die Kumulativen Updates sondern auch die zusätzlichen Features. In unserem Beispiel soll das .NET Framework 3.5 ebenfalls aktiviert sein. Die CAB Datei dafür einfach aus dem „sxs“ Ordner unterhalb des „sources“ Verzeichnis kopieren.

Windows 10 .NET Framework 3.5 Feature

Der Inhalt des Ordners „patch“ sieht dann so aus:

Windows 10 Patch Ordner mit Feature Packages für den Slipstream

Starten der Integration

Wie oben schon beschrieben verwenden wir für die Integration die PowerShell. Für das einfügen des Scripts muss die „PowerShell ISE“ als Administrator ausgeführt werden. Nur damit haben die Befehle ausreichend Rechte. Die verwendeten Befehle benötigen ein Windows 10 System. Hier sollte wenn möglich auch die aktuelle oder neuere Version von Windows 10 verwendet werden. In unserem Beispiel läuft das Script unter Windows 10 (x64) 1607 Build 10.0.14393.1480. Damit ist dann auch die passende Umgebung am Start.

Das PowerShell Script für Slipstream

$StartFolder = ‚C:\Temp\Win10LTSB‘
$LANGPACKS=“$StartFolder\langpack\“
$PATCHDIR=“$StartFolder\Patch\*“
$MOUNTDIR=“$StartFolder\Mount“
$SCRATCHDIR=“$StartFolder\Scratch“
$WIM=“$StartFolder\sources\install.wim“
$wimIndex = ‚1‘
$logfile = Join-Path $StartFolder „win-64bit-dism.log“

# check if old Logfile exist and delete
If (Test-Path $logfile){
Remove-Item $logfile -Force
}

# Show the WIM Information about my choosen Index
Get-WindowsImage -ImagePath $wim -Index $wimIndex

# Mount WIM File
Mount-WindowsImage -Path $MOUNTDIR -ImagePath $WIM -Index $wimIndex -ScratchDirectory $SCRATCHDIR -LogPath $logfile
Start-Sleep -s 1

# Read all CAB File in the langpack folder and integrate it into WIM
$LangArray = Get-ChildItem $LANGPACKS -Recurse
ForEach ($LangPack in $LangArray)
{
& dism.exe /Image:$MOUNTDIR /ScratchDir:$SCRATCHDIR /Add-Package /PackagePath:“$($LangPack.FullName)“

}

& dism.exe /Image:$MOUNTDIR /get-Intl

$UpdateArray = Get-Item $PATCHDIR
ForEach ($Update in $UpdateArray)
{
& dism.exe /image:$MOUNTDIR /ScratchDir:$SCRATCHDIR /Add-Package /Packagepath:“$Update“
Start-Sleep -s 5
}

& dism.exe /Image:$MOUNTDIR /Get-Packages /Format:Table > „$StartFolder\packages.txt“
& dism.exe /Image:$MOUNTDIR /Get-Features /Format:Table > „$StartFolder\features.txt“

Write-Host ‚—>>> Updates Applied to WIM‘
DISM /Unmount-Wim /Mountdir:$MOUNTDIR /commit
DISM /Cleanup-Wim

Achtung auf den Index. Bei dem WIM File für die LTSB Version ist nur ein Eintrag enthalten. In der Standard DVD für Windows 10 Enterprise sind dort mehrere Versionen enthalten. Den passenden Index könnt ihr dann über den Befehl „Get-WindowsImage“ auslesen. Unten stehenden die passenden Image Informationen für unser LTSB Beispiel.

Windows 10 Image Informationen

Wenn das richtige Windows 10 Image ausgewählt ist sollte folgende Information ausgelesen werden:

ImageIndex : 1
ImageName : Windows 10 Enterprise 2016 LTSB
ImageDescription : Windows 10 Enterprise 2016 LTSB
ImageSize : 12.120.640.762 bytes
WIMBoot : False
Architecture : x64
Hal :
Version : 10.0.14393.0
SPBuild : 0
SPLevel : 0
EditionId : EnterpriseS
InstallationType : Client
ProductType : WinNT
ProductSuite : Terminal Server
SystemRoot : WINDOWS
DirectoryCount : 17307
FileCount : 84556
CreatedTime : 16.07.2016 16:28:45
ModifiedTime : 16.07.2016 16:29:24
Languages : en-US (Default)

Für weitere Informationen zu den Windows Update Zyklen haben wir bereits einen Blogartikel geschrieben:

Cookie Consent mit Real Cookie Banner