AutoIt Forums: GImageX Deployment of Windows 7 questions - AutoIt Forums

Jump to content

Page 1 of 1
  • You cannot start a new topic
  • You cannot reply to this topic

GImageX Deployment of Windows 7 questions

#1 User is offline   DerekL 

  • Member
  • Pip
  • Group: Full Members
  • Posts: 12
  • Joined: 02-November 09
  • Gender:Male
  • Location:Cambridge, UK

Posted 03 November 2009 - 11:38 AM

Hi Guy's,

I'm new to this site and scripting in general. I'm working on a project to deploy Windows 7 to users in my company sometime next year, we would like to automate it so that when we start a machine with a WinPE (3.0) USB stick, a window will open and allow the user to select a Site, for the purpose of mapping the correct distribution share, then browse to the correct .wim file, and image number. At this point we would like to be able to Name the computer, and join it to the domain with the correct username and password credentials, and also install the KBox agent for software deployment. I have a WinPE image with ImageX and GImageX installed and this works fine, is there anyway of building in the functionality we need, would be grateful of any pointers in the right direction.

Cheers

Derek

#2 User is offline   crump 

  • Newbie
  • Group: Full Members
  • Posts: 7
  • Joined: 31-October 09

Posted 04 November 2009 - 06:08 AM

View PostDerekL, on 03 November 2009 - 11:38 AM, said:

Hi Guy's,

I'm new to this site and scripting in general. I'm working on a project to deploy Windows 7 to users in my company sometime next year, we would like to automate it so that when we start a machine with a WinPE (3.0) USB stick, a window will open and allow the user to select a Site, for the purpose of mapping the correct distribution share, then browse to the correct .wim file, and image number. At this point we would like to be able to Name the computer, and join it to the domain with the correct username and password credentials, and also install the KBox agent for software deployment. I have a WinPE image with ImageX and GImageX installed and this works fine, is there anyway of building in the functionality we need, would be grateful of any pointers in the right direction.

Cheers

Derek


yes, it is possible.
things you need:

koda gui designer;
autoit help file;
autoit diskpart duf, or diskpart script;
imagex

#3 User is offline   DerekL 

  • Member
  • Pip
  • Group: Full Members
  • Posts: 12
  • Joined: 02-November 09
  • Gender:Male
  • Location:Cambridge, UK

Posted 06 November 2009 - 11:04 PM

Hi Guy's,

Thanks for the advice Crump, so I have started a little work, and have designed a form with the functionality I would like, and have managed to get the Browse to a .wim file working, don't laugh I'm new to this :whistle:

Can anyone give me some help with how to extract the Image information from the .wim file to select an image, thanks in advance, my code is below.

Regards

DerekL

#include <ButtonConstants.au3>
#include <ComboConstants.au3>
#include <EditConstants.au3>
#include <GUIConstantsEx.au3>
#include <ProgressConstants.au3>
#include <StaticConstants.au3>
#include <WindowsConstants.au3>
#Include <string.au3>
#Include <Array.au3>
#Include <GuiTreeView.au3>

; Script for the deployment of Windows 7 to Company Machines around the world
; This first part of the script was created automatically by the Koda Forms Designer
; This Form=c:\users\********\documents\winpe project\autoimage.kxf will be placed on the network share here ******* ADD SHARE LOCATION *********

Opt("GUIOnEventMode", 1)
#Region ### START Koda GUI section ### Form=c:\users\********\documents\scripts\autoimage.kxf
$Form1_1 = GUICreate("AutoImage 3.0 for Company A", 625, 536, 381, 198)
GUISetBkColor(0xC0DCC0)
GUISetOnEvent($GUI_EVENT_CLOSE, "Form1_1Close")
GUISetOnEvent($GUI_EVENT_MINIMIZE, "Form1_1Minimize")
GUISetOnEvent($GUI_EVENT_MAXIMIZE, "Form1_1Maximize")
GUISetOnEvent($GUI_EVENT_RESTORE, "Form1_1Restore")
$SelectWimLabel = GUICtrlCreateLabel("Select Wim File:", 56, 24, 117, 24)
GUICtrlSetFont($SelectWimLabel, 12, 400, 0, "MS Sans Serif")
GUICtrlSetOnEvent($SelectWimLabel, "SelectWimLabelClick")
$SelectModelLabel = GUICtrlCreateLabel("Select Model:", 56, 64, 100, 24)
GUICtrlSetFont($SelectModelLabel, 12, 400, 0, "MS Sans Serif")
GUICtrlSetOnEvent($SelectModelLabel, "SelectModelLabelClick")
$KBoxAgent = GUICtrlCreateRadio("Install KBox Agent", 56, 176, 169, 33)
GUICtrlSetFont($KBoxAgent, 12, 400, 0, "MS Sans Serif")
GUICtrlSetOnEvent($KBoxAgent, "KBoxAgentClick")
$KeyboardLable = GUICtrlCreateLabel("Keyboard Layout:", 56, 104, 127, 24)
GUICtrlSetFont($KeyboardLable, 12, 400, 0, "MS Sans Serif")
GUICtrlSetOnEvent($KeyboardLable, "KeyboardLableClick")
$Keyboard = GUICtrlCreateCombo("", 184, 104, 209, 25, BitOR($CBS_DROPDOWNLIST,$CBS_AUTOHSCROLL))
GUICtrlSetOnEvent($Keyboard, "KeyboardChange")
$TimeZoneLabel = GUICtrlCreateLabel("Time Zone:", 56, 144, 83, 24)
GUICtrlSetFont($TimeZoneLabel, 12, 400, 0, "MS Sans Serif")
GUICtrlSetOnEvent($TimeZoneLabel, "TimeZoneLabelClick")
$TimeZone = GUICtrlCreateCombo("", 184, 144, 209, 25, BitOR($CBS_DROPDOWNLIST,$CBS_AUTOHSCROLL))
GUICtrlSetOnEvent($TimeZone, "TimeZoneChange")
$ImageButton = GUICtrlCreateButton("ImageButton", 48, 456, 89, 41, $WS_GROUP)
GUICtrlSetOnEvent($ImageButton, "ImageButtonclick")
$CaptureButton = GUICtrlCreateButton("Capture Image", 200, 456, 89, 41, $WS_GROUP)
GUICtrlSetOnEvent($CaptureButton, "CaptureButtonclick")
$MakeUSBButton = GUICtrlCreateButton("Make USB", 352, 456, 89, 41, $WS_GROUP)
GUICtrlSetOnEvent($MakeUSBButton, "MakeUSBButtonclick")
$CancelButton = GUICtrlCreateButton("Cancel", 496, 456, 89, 41, $WS_GROUP)
GUICtrlSetOnEvent($CancelButton, "CancelButtonclick")
$Progress1 = GUICtrlCreateProgress(88, 408, 449, 17)
$ProgressLabel = GUICtrlCreateLabel("Progress:", 88, 376, 71, 24)
GUICtrlSetFont($ProgressLabel, 12, 400, 0, "MS Sans Serif")
GUICtrlSetOnEvent($ProgressLabel, "ProgressLabelClick")
$ComputerNameLabel = GUICtrlCreateLabel("Computer Name:", 248, 184, 124, 24)
GUICtrlSetFont($ComputerNameLabel, 12, 400, 0, "MS Sans Serif")
GUICtrlSetOnEvent($ComputerNameLabel, "ComputerNameLabelClick")
$ComputerName = GUICtrlCreateInput("ComputerName", 392, 184, 153, 21)
GUICtrlSetOnEvent($ComputerName, "ComputerNameChange")
$DomainNameLabel = GUICtrlCreateLabel("Domain:", 56, 224, 63, 24)
GUICtrlSetFont($DomainNameLabel, 12, 400, 0, "MS Sans Serif")
GUICtrlSetOnEvent($DomainNameLabel, "DomainNameLabelClick")
$Domain = GUICtrlCreateCombo("", 160, 224, 193, 25, BitOR($CBS_DROPDOWNLIST,$CBS_AUTOHSCROLL))
GUICtrlSetOnEvent($Domain, "DomainChange")
$UserNameLabel = GUICtrlCreateLabel("User Name:", 56, 264, 88, 24)
GUICtrlSetFont($UserNameLabel, 12, 400, 0, "MS Sans Serif")
GUICtrlSetOnEvent($UserNameLabel, "UserNameLabelClick")
$UserName = GUICtrlCreateInput("UserName", 160, 264, 193, 21)
GUICtrlSetOnEvent($UserName, "UserNameChange")
$PassWordLabel = GUICtrlCreateLabel("Password:", 56, 304, 77, 24)
GUICtrlSetFont($PassWordLabel, 12, 400, 0, "MS Sans Serif")
GUICtrlSetOnEvent($PassWordLabel, "PassWordLabelClick")
$Input2 = GUICtrlCreateInput("Password", 160, 304, 193, 21)
GUICtrlSetOnEvent($Input2, "Input2Change")
$DriveBrowse = GUICtrlCreateButton("Browse", 400, 24, 65, 25, $WS_GROUP)
GUICtrlSetOnEvent($DriveBrowse, "DriveBrowseClick")
$SuggestModelLabel = GUICtrlCreateLabel("Suggested Model:", 400, 105, 133, 24)
GUICtrlSetFont($SuggestModelLabel, 12, 400, 0, "MS Sans Serif")
GUICtrlSetOnEvent($SuggestModelLabel, "SuggestModelLabelClick")
$ModelButton = GUICtrlCreateButton("Browse", 400, 61, 65, 25, $WS_GROUP)
GUICtrlSetOnEvent($ModelButton, "ModelButtonclick")
$wimfile = GUICtrlCreateInput("wimfile", 184, 24, 209, 21)
GUICtrlSetOnEvent($wimfile, "wimfileChange")
$model = GUICtrlCreateInput("model", 184, 64, 209, 21)
GUICtrlSetOnEvent($model, "modelChange")
$Icon1 = GUICtrlCreateIcon("C:\Windows\System32\imageres.dll", -83, 512, 16, 89, 81, BitOR($SS_NOTIFY,$WS_GROUP))
GUICtrlSetOnEvent($Icon1, "Icon1Click")
GUISetState(@SW_SHOW)
#EndRegion ### END Koda GUI section ###

;Declare varibles here
Dim $wimfile
Dim $SelectedWim
Dim $hApplySourceEdit
Dim $STDERR_CHILD
Dim $STDOUT_CHILD
Dim $treeview

; Start of Main ***************************************
While 1
Sleep(100)
WEnd
; End of Main *****************************************

Func CancelButtonclick()
Exit
EndFunc
Func CaptureButtonclick()

EndFunc
Func ComputerNameChange()

EndFunc
Func ComputerNameLabelClick()

EndFunc
Func DomainChange()

EndFunc
Func DomainNameLabelClick()

EndFunc

Func DriveBrowseClick()
$SelectedWim = FileOpenDialog("Open wim file:", "X:\", "Image (*.wim)", 2)

If @error Then
MsgBox(4096,"","No File(s) chosen")
Else
$SelectedWim = StringReplace($SelectedWim, "|", @CRLF)
MsgBox(4096,"","You chose " & $SelectedWim)
GUICtrlSetData ($wimfile,$SelectedWim)
EndIf
EndFunc

Func Form1_1Close()
Exit
EndFunc
Func Form1_1Maximize()

EndFunc
Func Form1_1Minimize()

EndFunc
Func Form1_1Restore()

EndFunc
Func Icon1Click()

EndFunc

Func ImageButtonclick()

EndFunc

Func Input2Change()

EndFunc
Func KBoxAgentClick()

EndFunc
Func KeyboardChange()

EndFunc
Func KeyboardLableClick()

EndFunc
Func MakeUSBButtonclick()

EndFunc
Func ModelButtonclick()

EndFunc
Func modelChange()

EndFunc
Func PassWordLabelClick()

EndFunc
Func ProgressLabelClick()

EndFunc
Func SelectModelLabelClick()

EndFunc

Func SelectWimLabelClick()

EndFunc

Func SuggestModelLabelClick()

EndFunc
Func TimeZoneChange()

EndFunc
Func TimeZoneLabelClick()

EndFunc
Func UserNameChange()

EndFunc
Func UserNameLabelClick()

EndFunc
Func wimfileChange()

EndFunc

Func PollImage()

EndFunc ;==>PollImage

#4 User is offline   crump 

  • Newbie
  • Group: Full Members
  • Posts: 7
  • Joined: 31-October 09

Posted 07 November 2009 - 08:14 PM

Hi DerekL

GImagex has com interface that you can use with your code.
for windows 7, download gimagex beta, and there is a help file with vb code, you should check that out.

and also this COMRef will help you.

to use it in autoit scripting is very easy also.

just register the dll file with regsvr32[read help file]

and then I can do this.

[ code='text' ]    ( Popup )
$initWimCtrl = ObjCreate("GimageX.GimageXCtrl") $initWimCtrl.Source = "O:\WIMs\Windows_XP_New_Remake.wim" $initWimCtrl.ImageIndex = 1 $initWimCtrl.GetIMageInfo MsgBox(1,"",$initWimCtrl.ImageName)  


and just a reminder, in your code
[ code='text' ]    ( Popup )
$SelectedWim = FileOpenDialog("Open wim file:", "X:\", "Image (*.wim)", 2)

that "2" would probably not be working in pe3, at least not for me :)

edit: Somehow I can't use GImageX v2.0.17 to work with above code, GImageX v2.0.16 BETA works fine, am I missing something? or it only works with AIK2 but not AIK3?

This post has been edited by crump: 07 November 2009 - 08:31 PM


#5 User is offline   DerekL 

  • Member
  • Pip
  • Group: Full Members
  • Posts: 12
  • Joined: 02-November 09
  • Gender:Male
  • Location:Cambridge, UK

Posted 10 November 2009 - 12:17 PM

Hi Crump,

Thanks for that, yes the COM certainly does make life a little easier, when I get my application finished, will I have to ensure that the .dll is included in the WinPE build?

Cheers

DerekL

#6 User is offline   crump 

  • Newbie
  • Group: Full Members
  • Posts: 7
  • Joined: 31-October 09

Posted 11 November 2009 - 08:34 AM

View PostDerekL, on 10 November 2009 - 12:17 PM, said:

Hi Crump,

Thanks for that, yes the COM certainly does make life a little easier, when I get my application finished, will I have to ensure that the .dll is included in the WinPE build?

Cheers

DerekL


yes and you have to register it before using it.

Page 1 of 1
  • You cannot start a new topic
  • You cannot reply to this topic

1 User(s) are reading this topic
0 members, 1 guests, 0 anonymous users