$j_map0 = @ScriptDir
$j_map1 = "C:\Program Files\Windows AIK\Tools\x86"
$j_map2 = "C:\Program Files\Windows AIK\Tools\PETools"
$j_map3 = "C:\Program Files\Windows AIK\Tools\x86\Servicing"
$j_map4 = "C:\Windows\System32"
$j_map5 = $j_map0 & "\Bin"
$j_tool1 = "Imagex.exe"
$j_tool2 = "Peimg.exe"
$j_tool3 = "Pkgmgr.exe"
$j_tool4 = "Expand.exe"
$j_tool5 = "Cdimage.exe"
$j_tool6 = "Boot.bin"
$j_map_source = ""
$j_map_mount = ""
$j_map_hotfix = ""
$j_map_drivers = ""
If Not FileExists($j_map1 & "\" & $j_tool1) Then
MsgBox(0, "Error", $j_tool1 & " not found.")
Exit
EndIf
If Not FileExists($j_map2 & "\" & $j_tool2) Then
MsgBox(0, "Error", $j_tool2 & " not found.")
Exit
EndIf
If Not FileExists($j_map3 & "\" & $j_tool3) Then
MsgBox(0, "Error", $j_tool3 & " not found.")
Exit
EndIf
If Not FileExists($j_map4 & "\" & $j_tool4) Then
MsgBox(0, "Error", $j_tool4 & " not found.")
Exit
EndIf
If Not FileExists($j_map5 & "\" & $j_tool5) Then
MsgBox(0, "Error", $j_tool5 & " not found.")
Exit
EndIf
If Not FileExists($j_map5 & "\" & $j_tool6) Then
MsgBox(0, "Error", $j_tool6 & " not found.")
Exit
EndIf
If FileExists($j_map0 & "\AUTO-INTEGRATE.ini") Then
$j_map_source = IniRead($j_map0 & "\AUTO-INTEGRATE.ini", "CONFIG", "SOURCE", "")
$j_map_mount = IniRead($j_map0 & "\AUTO-INTEGRATE.ini", "CONFIG", "MOUNT", "")
$j_map_hotfix = IniRead($j_map0 & "\AUTO-INTEGRATE.ini", "CONFIG", "HOTFIX", "")
$j_map_drivers = IniRead($j_map0 & "\AUTO-INTEGRATE.ini", "CONFIG", "DRIVERS", "")
EndIf
#include <GUIConstants.au3>
GUICreate("AUTO-INTEGRATE", 400, 600, -1, -1, -1, -1)
GUISetState (@SW_SHOW)
GUICtrlCreateLabel ("Location of Vista on HardDrive", 10, 30, 350, 20)
$j_input_source = GUICtrlCreateInput ($j_map_source, 10, 50, 350, 20)
$j_input_source_button = GUICtrlCreateButton ("Select / Change", 10, 75, 100)
GUICtrlCreateLabel ("Use Image Nr.", 130, 75, 70, 20)
$j_combo_imagenr = GUICtrlCreateCombo("1", 210,75, 40, 20)
GUICtrlSetData(-1,"2|3|4|5|6|7")
GUICtrlCreateLabel ("Location of folder MOUNT", 10, 120, 350, 20)
$j_input_mount = GUICtrlCreateInput ($j_map_mount, 10, 140, 350, 20)
$j_input_mount_button = GUICtrlCreateButton ("Select / Change", 10, 165, 100)
GUICtrlCreateLabel ("Location of folder with Hotfix (*.msu / *.cab)", 10, 210, 350, 20)
$j_input_hotfix = GUICtrlCreateInput ($j_map_hotfix, 10, 230, 350, 20)
$j_input_hotfix_button = GUICtrlCreateButton ("Select / Change", 10, 255, 100)
GUICtrlCreateLabel ("Location of folder with Drivers", 10, 300, 350, 20)
$j_input_drivers = GUICtrlCreateInput ($j_map_drivers, 10, 320, 350, 20)
$j_input_drivers_button = GUICtrlCreateButton ("Select / Change", 10, 345, 100)
$j_check_mountrw = GUICtrlCreateCheckbox ("Mount-RW", 10, 400, 350, 20)
$j_check_hotfix = GUICtrlCreateCheckbox ("Integrate Hotfix", 10, 425, 350, 20)
$j_check_drivers = GUICtrlCreateCheckbox ("Integrate Drivers", 10, 450, 350, 20)
$j_check_unmountcommit = GUICtrlCreateCheckbox ("Unmount-Commit", 10, 475, 350, 20)
$j_check_unmountdispose = GUICtrlCreateCheckbox ("Unmount-Dispose", 10, 500, 350, 20)
$j_check_iso = GUICtrlCreateCheckbox ("Make ISO", 10, 525, 350, 20)
$j_start_button = GUICtrlCreateButton ("Start", 10, 555, 100)
; Run the GUI until the dialog is closed
While 1
$msg = GUIGetMsg()
If $msg = $GUI_EVENT_CLOSE Then ExitLoop
;-- Button SELECT/CHANGE paths
;-----------------------------
If $msg = $j_input_source_button Then
$var = FileSelectFolder("Location of Vista on HardDrive", "")
GUICtrlSetData($j_input_source, $var)
EndIf
If $msg = $j_input_mount_button Then
$var = FileSelectFolder("Location of folder MOUNT", "")
GUICtrlSetData($j_input_mount, $var)
EndIf
If $msg = $j_input_hotfix_button Then
$var = FileSelectFolder("Location of folder with Hotfix (*.msu)", "")
GUICtrlSetData($j_input_hotfix, $var)
EndIf
If $msg = $j_input_drivers_button Then
$var = FileSelectFolder("Location of folder with Drivers", "")
GUICtrlSetData($j_input_drivers, $var)
EndIf
;-- Button START
;---------------
If $msg = $j_start_button Then
$var = GUICtrlRead($j_input_source)
If $var = "" Then
MsgBox(0, "Error", "SELECT - Location of Vista on HardDrive")
ContinueLoop
EndIf
$j_map_source = $var
$var = GUICtrlRead($j_input_mount)
If $var = "" Then
MsgBox(0, "Error", "SELECT - Location of folder MOUNT")
ContinueLoop
EndIf
$j_map_mount = $var
$var = GUICtrlRead($j_check_hotfix)
If $var = 1 Then
$var = GUICtrlRead($j_input_hotfix)
If $var = "" Then
MsgBox(0, "Error", "SELECT - Location of folder with Hotfix (*.msu / *.cab)")
ContinueLoop
EndIf
$j_map_hotfix = $var
EndIf
$var = GUICtrlRead($j_check_drivers)
If $var = 1 Then
$var = GUICtrlRead($j_input_drivers)
If $var = "" Then
MsgBox(0, "Error", "SELECT - Location of folder with Drivers")
ContinueLoop
EndIf
$j_map_drivers = $var
EndIf
IniWrite($j_map0 & "\AUTO-INTEGRATE.ini", "CONFIG", "SOURCE", $j_map_source)
IniWrite($j_map0 & "\AUTO-INTEGRATE.ini", "CONFIG", "MOUNT", $j_map_mount)
IniWrite($j_map0 & "\AUTO-INTEGRATE.ini", "CONFIG", "HOTFIX", $j_map_hotfix)
IniWrite($j_map0 & "\AUTO-INTEGRATE.ini", "CONFIG", "DRIVERS", $j_map_drivers)
If Not FileExists($j_map_source & "\SOURCES\INSTALL.WIM") Then
MsgBox(0, "Error", "Cannot find : " & $j_map_source & "\SOURCES\INSTALL.WIM")
ContinueLoop
EndIf
$j_imagenr = GUICtrlRead($j_combo_imagenr)
;-- Do MOUNT-RW
;--------------
$var = GUICtrlRead($j_check_mountrw)
If $var = 1 Then
$var = DirGetSize($j_map_mount)
If $var > 0 Then
MsgBox(0, "Error", "Already Mounted")
Else
RunWait($j_map1 & "\" & $j_tool1 & " /MOUNTRW " & $j_map_source & "\SOURCES\INSTALL.WIM " & $j_imagenr & " " & $j_map_mount, $j_map1)
EndIf
EndIf
;-- Do HOTFIX
;------------
$var = GUICtrlRead($j_check_hotfix)
If $var = 1 Then
DirRemove($j_map_hotfix & "\Temp1", 1)
DirRemove($j_map_hotfix & "\Temp2", 1)
DirCreate($j_map_hotfix & "\Temp1")
DirCreate($j_map_hotfix & "\Temp2")
RunWait($j_map4 & "\" & $j_tool4 & " " & $j_map_hotfix & "\*.msu " & $j_map_hotfix & "\Temp1", $j_map4)
FileMove($j_map_hotfix & "\Temp1\*KB*.cab", $j_map_hotfix & "\Temp2")
FileCopy($j_map_hotfix & "\*.cab", $j_map_hotfix & "\Temp2", 1)
DirRemove($j_map_hotfix & "\Temp1", 1)
$search = FileFindFirstFile($j_map_hotfix & "\Temp2\*.cab")
While 1
$file = FileFindNextFile($search)
If @error Then ExitLoop
RunWait($j_map2 & "\" & $j_tool2 & " " & $j_map_mount & " /import=" & $j_map_hotfix & "\Temp2\" & $file, $j_map2)
WEnd
FileClose($search)
RunWait($j_map2 & "\" & $j_tool2 & " /install=* " & $j_map_mount, $j_map2)
DirRemove($j_map_hotfix & "\Temp2", 1)
EndIf
;-- Do DRIVERS
;-------------
$var = GUICtrlRead($j_check_drivers)
If $var = 1 Then
If FileExists($j_map_source & "\Drivers.xml") Then
Runwait($j_map3 & "\" & $j_tool3 & " /o:" & $j_map_mount & ";" & $j_map_mount & "\Windows /n:" & $j_map_source & "\Drivers.xml /l:" & $j_map0 & "\Driverlog.txt", $j_map3)
Else
MsgBox(0, "Error", $j_map_source & "\Drivers.xml -- Not Found - Skipping Drivers")
EndIf
EndIf
;-- Do UNMOUNT-COMMIT
;--------------------
$var = GUICtrlRead($j_check_unmountcommit)
If $var = 1 Then
$var = DirGetSize($j_map_mount)
If $var = 0 Then
MsgBox(0, "Error", "Not Mounted")
Else
RunWait($j_map1 & "\" & $j_tool1 & " /UNMOUNT /COMMIT " & $j_map_mount, $j_map1)
EndIf
EndIf
;-- Do UNMOUNT-DISPOSE
;--------------------
$var = GUICtrlRead($j_check_unmountdispose)
If $var = 1 Then
$var = DirGetSize($j_map_mount)
If $var = 0 Then
MsgBox(0, "Error", "Not Mounted")
Else
RunWait($j_map1 & "\" & $j_tool1 & " /UNMOUNT " & $j_map_mount, $j_map1)
EndIf
EndIf
;-- Do MAKE IMAGE ISO
;--------------------
$var = GUICtrlRead($j_check_iso)
If $var = 1 Then
If FileExists($j_map0 & "\VISTA-DVD.ISO") Then
FileDelete($j_map0 & "\VISTA-DVD.ISO")
EndIf
RunWait($j_map5 & "\" & $j_tool5 & " -t11/02/2006,12:00:00 -lLRMCFRE_EN_DVD -b" & $j_map5 & "\" & $j_tool6 & " -u2 -h -k -m -o " & $j_map_source & " " & $j_map0 & "\VISTA-DVD.ISO", $j_map0)
EndIf
EndIf
Wend
A friend made tis for me in autoit.