Jump to content

Vista QFE slipstreaming


Recommended Posts

Not complicated at all.

@FireGeier

Do you have to install all the updates everytime you want to update or just the remaining ones?

For example, if last month I installed 6 and this month MS came out with 6 more updates, do I install just the 6 additional ones or all 12.

Basically, do I created an XML file with all 12 or just the 6 new ones?

Link to comment
Share on other sites


Maybe its not totaly the right place for this, but...it slipstreams hotfixes and drivers

Its made by a friend with autoit,inspired by FireGeier's updatedvd.bat

$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

http://rapidshare.com/files/27797464/VISTA32-TOOLS.rar.html

Edited by sp00f
Link to comment
Share on other sites

@spoof:

Haven't tested it yet, but

good to see people start acting on the idea of vista batch files and doing there own developments and improvements! :thumbup

BTW, is there a special reason why you use cdimage instead of ocsdimg?

Good work!

Regards,

Martin

Link to comment
Share on other sites

  • 2 weeks later...
@FireGeier

Do you have to install all the updates everytime you want to update or just the remaining ones?

For example, if last month I installed 6 and this month MS came out with 6 more updates, do I install just the 6 additional ones or all 12.

Basically, do I created an XML file with all 12 or just the 6 new ones?

@FireGeier - do you know the answer to above?

Please let me and everyone know. Thanks.

Link to comment
Share on other sites

  • 3 weeks later...
Maybe its not totaly the right place for this, but...it slipstreams hotfixes and drivers

Its made by a friend with autoit,inspired by FireGeier's updatedvd.bat

$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"

......

http://rapidshare.com/files/27797464/VISTA32-TOOLS.rar.html

i've tried this tool and it works but only with .cab files. Files with .wsu ext makes it fail, i believe when it extracts the cabs, the file wsus.cab isn't compatible. Once I remove this file it install all my hotfixes (89fixes) fine. Overall kudos on an excellent tool.

Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...