Voor de eerste experimenten is het handig een aparte usb-stick van 16 of 32 GB te gebruiken. Download de Media Creation Tool (MCT) en richt daarmee een stick in als Windows-set-up-stick.
Daarbij wordt er onder andere een WIM-bestand op de stick gezet, en die kun je met DISM bewerken zonder iets anders te beschadigen. Wanneer je het WIM-bestand per ongeluk beschadigt, kun je de stick met MCT gewoon opnieuw maken.
Het WIM-bestand staat op de stick in de map sources en heet install.esd. In dat bestand zitten Windows-images die het eveneens op de stick geplaatste set-upprogramma op een interne schijf kan installeren.
Het plan is nu om een image in het WIM-bestand zo te openen dat je het kunt veranderen door een paar bestanden toe te voegen. Tot slot wordt de image inclusief de veranderingen weer naar het WIM-bestand teruggeschreven. Wanneer het set-upprogramma die image later op een schijf installeert, zitten je veranderingen daar ook bij.
De tool DISM verwerkt images. Daarbij maakt het niet uit of een image in een WIM-bestand zit ingepakt of zoals hier is uitgepakt op een schijf. Zelfs een draaiende Windows-installatie op station C: is voor DISM een bewerkbare image.
Kijk eerst eens naar de in het WIM-bestand opgenomen images. Dat doe je met het commando /Get-ImageInfo. Het onderdeel /Get– staat bij DISM-commando’s in principe voor het opvragen van informatie.
Zo’n commando veroorzaakt dus geen veranderingen. Aangezien het net als bijna alle DISM-commando’s te lang is om hem hier zonder afbreken af te drukken, staat hij hieronder wel over meer regels, maar moet je alle in dit artikel genoemde commando’s steeds op één enkele regel invoeren. Het gebruik van hoofd- of kleine letters speelt daarbij geen rol, maar komt de leesbaarheid wel ten goede.
Dism /Get-ImageInfo /ImageFile:H:\sources\install.esd
Het commando krijgt via /ImageFile: te horen waar het bestand staat (hier H:\sources\install.esd). Let erop dat er voor de schuine streep een spatie staat, maar tussen de dubbele punt en het pad niet. Dat is bij DISM altijd zo!
Na een spatie verwacht het programma steeds de volgende optie of het volgende commando. Wanneer je een pad met spaties erin wilt doorgeven, moet je het daarom tussen dubbele aanhalingstekens zetten.
Tip: als je bij het intypen van paden de tab-aanvulling wilt gebruiken, zet dan achter de dubbele punt eerst nog een spatie, voer dan het pad met tab-aanvulling in en verwijder daarna de spatie achter de dubbele punt weer. Vooral bij lange paden spaart dat veel typewerk uit.
Een commando dat met /Get- begint, geeft informatie – in dit geval over een WIM-bestand. Het pad van het WIM-bestand komt achter /ImageFile:, en zonder spatie achter de dubbele punt.
Na het uitvoeren van het commando geeft DISM informatie over de images in het opgegeven bestand. Voor iedere image wordt het indexnummer genoemd. Dat is een oplopende reeks. DISM geeft daarnaast de naam en de beschrijving van iedere image. Beide zijn vastgelegd door degene die de image oorspronkelijk in het WIM-bestand heeft gezet. Ook de grootte van iedere image wordt vermeld.
Voor de hierop volgende stappen gebruiken we de image Windows 10 Pro, die bij onze MCT-stick indexnummer 6 heeft. Over die image kun je met het commando /Get-ImageInfo ook weer meer informatie krijgen. Daarvoor hoef je er alleen een /Index:6 aan toe te voegen (ook hier geen spatie na de dubbele punt). Het hele commando ziet er dan zo uit:
Dism /Get-ImageInfo /ImageFile:H:\sources\install.esd /Index:6
Zodra je aan een commando dus niet alleen het pad van een WIM-bestand meegeeft, maar daarbij ook het indexnummer van een daarin opgenomen image, heeft het niet meer betrekking op het hele bestand, maar alleen op de uitgekozen image.
Er is overigens een commando dat op het eerste gezicht hetzelfde lijkt te doen: Get-WimInfo. De volgende regel:
Dism /Get-WimInfo /WimFile:H:\Sources\Install.esd
levert dezelfde output op als /Get-ImageInfo. Het verschil is dat /Get-WimInfo alleen met WIM- en ESD-bestanden overweg kan, en je met /Get-ImageInfo ook informatie over bijvoorbeeld VHD/VHDX-bestanden kunt opvragen.
Wanneer je aan het commando /Get-ImageInfo- ook nog een indexnummer meegeeft, richt het commando zich niet meer op het hele WIM-bestand, maar op een afzonderlijke image daarin.
De twee commando’s laten één ding duidelijk zien: wanneer aan een commando een directory- of bestandspad meegegeven moet worden, wordt de naam van de optie van het eigenlijke commando afgeleid.
Zo moet je bij /Get-ImageInfo het pad achter /ImageFile: opgeven, terwijl /Get-WimInfo het achter /WimFile: verwacht. Die wetenschap maakt het je later makkelijk om bij andere commando’s ook zonder dat je bij de helpfunctie hoeft te kijken kunt vermoeden of herinneren wat je moet intypen.
(Lees het volledige artikel van Axel Vahldiek en Noud van Kruysbergen in c’t magazine 3/2021, p. 134. Online versie: bewerkt door Alieke van Sommeren)