Win 7 : DISM
Windows 7 Behinde The Scene: DISM

Deployment Image Servicing and Management, for enkelhet skyld bare kaldt DISM, er et av de nye verktøyene som kommer sammen med Windows 7. Brukere vil ikke komme bort i dette verktøyet, men for oss som driver utrulling og administrasjon er dette et veldig viktig verktøy. Deler av de funksjonene vi finner i DISM er tidligere dekket av 3 andre verktøy, Pkmgr.exe, Intlcfg.exe og peimg.exe. De som har brukt disse verktøyene tidligere vet nå at vi snakker om verktøy for tilpassing og vedlikehold av Windows Vista (og nyere) image.
For å begynne med grunnprinsippene først. Fra og med Windows Vista ble tankegangen til Microsoft rundt OS utrulling endret til å bruke ”kloner” (image). Det kan på en måte sammenlignes med Ghost eller andre klone verktøy, men som de fleste kjenner til så var det også en del utfordringer med å bruke klone teknologier. De fleste havnet opp med mange imager for å dekke hardware forskjeller, spesielt p.g.a. HAL filene (hardware abstraction layer) og de fikk dermed utfordringer når det gjelder vedlikehold av imagene sine. Dette medført som oftest at maskiner ble tanket opp med veldig gamle imager som da ikke var oppdatert med sikkerhets oppdateringer og lignende, imagene var gjerne flere år gamle. Disse maskinene utgjør da en stor sikkerhets risiko i nettet frem til de er oppdatert.
Vedlikehold av imagene foregikk med at man måtte tanke opp en maskin, oppdatere den, også klone den på nytt. Sitter man på en del maskiner blir det en god del jobb, samt at man må ha de forskjelle hardwarene tilgjengelig når dette skal gjøres.
Dette var et problem som Microsoft løste i Vista, det er nå ingen HAL avhengighet i Windows imagene lengre, det eneste som kan være et problem er drivere til andre enheter som ikke er innebygd i Windows mediet når du installere, men mer om det seinere. Dette betyr at man nå kan lage enn klone av enn Windows 7 installasjon (eller Vista/2008 Srv) på en HP bærbar pc og rulle den ut på enn Dell eller Lenovo stasjonær pc, eller for den sak skyld lage grunnlaget til imaget på en virtuell maskin. Så da har vi fått løst problemet med antall imager vi trenger og at vi måtte ha hardwaren tilgjengelig (det finnes fortsatt andre grunner til å lage flere imager).
Men selv om vi har færre imager er det fortsatt tungvint å oppdatere dem hvis vi må bruke den gamle måten. Dette ble også løst i Vista, men er blitt forbedret i Windows 7. Nå kan vi foreta ”offline servicing”. ”Offline Servicing” betyr at vi kan oppdatere imagene våre uten å måte tanken dem opp på en maskin først, der av IS i DISM som står for Image Servicing (både online og offline er mulig).
I Vista hadde vi altså 3 verktøy for å ivareta og jobbe med disse imagene (kalt wim filer), problemet var at alle verktøyene hadde egne måten å gjøre ting på (parametre og lignende) og ofte gjorde de samme funksjoner. Dette er nå blitt redusert til 1 verktøy med klare parameter som minner mye om Powershell i navngiving og oppbygning. En liten ulempe er at kommando linjene blir lengre for vi skriver nå for eksempel:
- DISM.exe /Image:c:\mount
Mens tidligere var kommandoen
- Pkgmgr.exe /o:c:\mount
Så ”o” er blitt byttet med ”image”, andre eksempler er at ”ip” er blitt ”Add-Package”. Selv om kommandoen er blitt lengre er det nå letter å forstå og huske dem enn det var tidlig.
Eksempel på hele kommandoen blir da noe som dette:
Dism /LogPath:C:\Dism\MountOSInstallWim.log /Mount-Wim /WimFile:C:\DVD-kopi\sources\install.wim /index:1 /MountDir:c:\dism\wim

Det som gjør det litt tungvint er at i man ikke kan bruke tab knappen til å fylle ut kommandoene slik man kan i powershell.
Men husk det er ingen skam å scripte, snarere er det nesten et must, hvorfor utføre vedlikeholds oppgaver manuelt når du kan automatisere det, og her kommer vel kanskje de største fordelene med DISM kontra tidligere verktøy, det er nå fult mulig å gå inn i et script 6 måneder seinere å forstå hva du gjorde når du lagde scriptet.
Da har vi fått med oss at vi kan bruke DISM for å oppdatere imagene våre, og på den måten sørge for at vedlikehold blir lettere og maskinen vi ruller ut blir dermed sikrere. Hva mer kan vi bruke DISM til? (det må jo være mer når det erstatter 3 programmer).
Automatisk installasjon
Tidligere kunne man angi en såkalt ”unattended” fil som en parameter til installasjonen. Denne filen kan nå ligges inne i imaget og dermed forenkle installasjonen (dette kan også gjøres med DVD plater, for eksempel for og forenklere utrulling/oppgradering av hjemme pc’er og lignende) og man slipper å ha en separat fil da den blir en del av selve wim filen. Man bruker da DISM /Apply-Unattended kommandoen
Eksempel:
DISM.exe /Image:C:\dism\wim /Apply-Unattend:C:\dism\unattended-file\unattend.xml
Oppdateringer og drivere
Drivere og Windows update pakker kan ligges inn i imaget som nevnt tidligere. Om man velger å ha driveren inkludert i wim filen, eller heller ønsker å ligge disse til under selve installasjons prosessen vil variere basert på hvilke måtte man velger å rulle ut Windows 7, normalt sett prøver man å unngå å ligge for mye drivere inn i wim filen da disse må vedlikeholdes (stort utvalg av hardware og stadig nye drivere gjør dette tungvint). Men vær klar over at boot imaget vårt uansett må inneholde drivere for harddisk kontroller og nettverkskort, hvis dette skal brukes under utrulling. Bruker man Windows Server 2008 R2 så har WDS egen driver integrerings funksjon og det samme har MDT (tidligere BDD) og System Center Configuration Manager 2007. I WDS på Windows Server 2008 R2, slipper man også å bruke DISM for å få lagt til drivere i boot imaget dette kan her gjøres fra det grafiske brukergrensesnittet.
Eksempel:
Dism /Image:c:\dism\wim /Add-Driver /Driver:c:\drivers /recurse
Program inventar liste
Man kan bruke ”/Get-Apps” for å få en oversikt over hvilke applikasjoner (kun MSI pakkete) som er installert i wim filen og ”/Get-AppPatches” for å finne ut hvilke patcher til applikasjonene som er installert. Vær klar over at det ikke er mulig å installere eller patche applikasjoner off-line, disse kommandoen er bare for å få ut informasjon fra en wim fil
Språk tilpassninger
Man kan legge til forskjellige språk pakker til en wim fil. Dette betyr at selv om du har noen brukere som bruker engelsk, noen norsk og noen tysk, så kan man fortsatt bare ha 1 wim fil. Vi bruker da kommandoen ”/Add-Package”
Eksempel:
Dism /image:c:\dism\wim /LogPath:C:\Dism\AddLangPack.log /Add-Package /PackagePath:c:\dism\Langpacks\nb-NO\LP.cab /PackagePath:c:\dism\Langpacks\sv-SE\LP.cab
Diverse
Hvis du glemmer hvor du koblet opp wim filen, eller om du har noen koblet opp i det hele tatt kan man bruke:
Dism /GetMountedWimInfo
Du får da oversikt over alle wim som er koblet opp
Det finnes mange spennende mulighet i Dism som /Set-ProductKey for å ligge inn installasjons nøkkel, /Set-InputLocale for å få riktig tastatur oppsett og /Set-TimeZone for at tids sonen skal være rikitg.
Man kan også bruke DISM for vedlikehold av VHD filer, men må da bruke diskpart for å koble opp filene.
Ferdig med tilpassninger
Da må man velg om man skal utføre endringer eller avvise alle endringer. Til det bruker vi kommandoen /UnMount-Wim
Eksempel:
Dism /UnMount-Wim /MountDir:c:\dism\wim /Commit (for å ta vare på endringene)
Dism /UnMount-Wim /MountDir:c:\dism\wim /Discard (for å fjerne endringene)
Grafiske verktøy?
DISM funksjonene finnes kun i kommando linje, det er heller ikke gitt noen klar beskjed om Microsoft kommer til å lage egne grafiske versjoner, men det vi ser at noen funksjoner alt har funnet veien inn i WDS, og trolig vil MDT med tiden også inkludere mye av dette. Det er trolig at vi vil se flere tredje parts produkter til dette etter hvert også. Et verktøy jeg kunne tenkt meg er ”auto update”, en mulighet for å schedulere ukentlig patching mot wsus server eller windows update, på den måten så sikrer man seg alltid gode imager.



