obiwantuxedo
Content Type
Profiles
Forums
Events
Posts posted by obiwantuxedo
-
-
Here's what I've got...
<!****************************************************************************>
<!* HTA Header >
<!****************************************************************************>
<HEAD>
<TITLE>ImageX Deployment</TITLE>
<HTA:APPLICATION
BORDER = yes
APPLICATION = Yes
WINDOWSTATE = MAXIMIZE
INNERBORDER = No
SHOWINTASKBAR = Yes
SCROLL = yes
APPLICATIONNAME = "Windows PE Wizard"
NAVIGABLE = Yes
>
<!-- external stylesheet -->
</HEAD>
<!****************************************************************************>
<!* Begin Script >
<!****************************************************************************>
<script Language=VBScript>
'****************************************************************************
'* Globals
'* setup global script parameters
'****************************************************************************
Option Explicit
Dim strTaskValue, objShell, objFso, strBody, objWmiService, strImgSrc, strOutPut, cmdImgInfo, cmdPartHD, tmpFile, j, strImages, strLocation
Dim strIndx(), strNames()
Set objShell = CreateObject("WScript.Shell")
Set objFso = CreateObject("Scripting.FileSystemObject")
'Set objWMIService = GetObject ("winmgmts:\\.\root\cimv2")
'-------------- Editable commands --------------
' Diskpart command
cmdPartHD = "%comspec% /c diskpart /s z:\diskpart.txt"
' Image-X /info command. (xml-print)
cmdImgInfo= "%comspec% /c imagex /info z:\Image62.wim"
' Default file, where to parse image list
strImages = "z:\images.txt"
'------------------------------------------------
'****************************************************************************
'* Run Ghost is necessary
'****************************************************************************
Sub RunGhost32
Set objShell = CreateObject("Wscript.Shell")
objShell.Run ".\Ghost32.exe"
End Sub
'****************************************************************************
'* Window_OnLoad
'* load up behavior and preferences
'* Read image files
'* Parse indexes and filenames
'****************************************************************************
Sub Window_Onload
readImages()
strLocation = strImages 'InputBox("Path to images.txt file:", "images.txt" , strImages)
Call parseFile(strIndx, strNames, strLocation)
self.Focus()
strBody = "<BR><font face=verdana><B>Select image to apply:</B></font><BR>"
enumDirs
End Sub
'****************************************************************************
'* enumDirs
'****************************************************************************
Sub enumDirs
Dim colFilelist, objFile, strButtons, objShortcut, colTargetList, objTarget, x, y, strKey, strItem, k
ReDim arrButtons(1,-1)
'Reset display element style
details.innerHTML = ""
details.style.visibility = "hidden"
'Create list
For k = 0 To Ubound(strIndx)
ReDim Preserve arrButtons(1,UBound(arrButtons,2)+1)
arrButtons(0,UBound(arrButtons,2)) = strNames(k)
arrButtons(1,UBound(arrButtons,2)) = "<font face=verdana><Input type=radio name=radioList id='" & strIndx(k) & "' onClick=showRadioInfo>" & strNames(k) & "</font></BUTTON><BR>"
Next
'perform a a shell sort of the string array based on button label
For x = 0 To UBound(arrButtons,2) - 1
For y = x To UBound(arrButtons,2)
If StrComp(arrButtons(0,x),arrButtons(0,y),vbTextCompare) > 0 Then
strKey = arrButtons(0,x)
strItem = arrButtons(1,x)
arrButtons(0,x) = arrButtons(0,y)
arrButtons(1,x) = arrButtons(1,y)
arrButtons(0,y) = strKey
arrButtons(1,y) = strItem
End If
Next
Next
'End of the list
For x = 0 To UBound(arrButtons,2)
strButtons = strButtons & "<tr><td id=buttonTd>" & arrButtons(1,x) & "</td></tr>"
Next
strBody = strBody & "<BR><HR><BR>"
strBody = strBody & strButtons & "<BR><HR><BR><button class='defBtn' id=start Accesskey=S onclick=doTask(strTaskValue)><U>A</U>pply</BUTTON> <Button class = 'defBtn' id=close onclick=self.close()> Close </BUTTON>"
body.innerHTML = strBody
End Sub
'****************************************************************************
'* doTask
'* run task selected by radio button
'****************************************************************************
Sub doTask(doMe)
Dim myInput
Dim myError
If doMe = "" Then
MsgBox "You must choose image to apply first."
Else
If Instr(1, doMe, "gex /apply", 1) > 0 Then
myInput = MsgBox("The hard disk of the computer will be formatted and the image will be applied to it."+Chr(13)+Chr(13)+"Continue?", 4)
If myInput = 7 Then
MsgBox "Aborted by user"
Else
doTask(cmdPartHD)
objShell.Run doMe
End if
Else
myError = objShell.Run(doMe, 1, True)
End if
End if
End Sub
'****************************************************************************
'* readImages
'* Imagex info-print -> file
'****************************************************************************
Sub readImages()
'ObjShell.Run "%comspec% /c Dir " & chr(34) & strImgSrc & chr(34) & " > " & chr(34) & strOutPut & chr(34)
' Imagex /Info command
' ObjShell.Run "%comspec% /c " & cmdImgInfo & " > " & chr(34) & strOutPut & chr(34)
' objShell.Run cmdImgInfo & " > " & strImages
End Sub
'****************************************************************************
'* parseFile
'* Parses the text inside <name> and <index> tags from text file.
'****************************************************************************
Sub parseFile(strIndx(), strNames(), strFile)
Dim objTextFile, sReadLine, pos, pos2, i, tmpStr1
i = -1
Redim strNames(0)
Redim strIndx(0)
If objFso.FileExists(strFile) Then
Set objTextFile = objFso.OpenTextFile(strFile, 1)
Do While Not objTextFile.AtEndOfStream
sReadLine = objTextFile.ReadLine
' indexit ja name haltuun
pos2 = Instr(1, sReadLine, "<IMAGE", 1)
pos = Instr(1, sReadLine, "<NAME>", 1)
If pos2 > 0 Then
i = i + 1
Redim Preserve strIndx(i)
Redim Preserve strNames(i)
'strIndx(i) = Right(sReadLine, Len(sReadLine) - (pos2 + 9))
tmpStr1 = Right(sReadLine, Len(sReadLine) - (pos2 + 13))
strIndx(i) = Left(tmpStr1, Len(tmpStr1) -2)
End If
If pos > 0 Then
'strNames(i) = Right(sReadLine, Len(sReadLine) - (pos + 5))
tmpStr1 = Right(sReadLine, Len(sReadLine) - (pos + 5))
strNames(i) = Left(tmpStr1, Len(tmpStr1) -8)
End If
loop
End If
End sub
'****************************************************************************
'* showRadioInfo
'****************************************************************************
Sub showRadioInfo
Dim objTextFile, Radio, strRadioValue, strDetails
'set details and start element styles
details.style.visibility = "visible"
start.style.visibility = "visible"
'find checked button
For Each Radio in Document.getElementsByName("radioList")
If Radio.Checked = True Then
'create imaging command line from button id
strTaskValue = "imagex /apply z:\Image62.wim " + Radio.Id + " c:"
End If
Next
'post resulting html to details element
Details.innerHTML = "<BR><font face=verdana><table id='detailsTable'><tr><td>" & strDetails & "</td></tr></table></font><BR>"
End Sub
'****************************************************************************
'* Reset'* reset the tool interface, also reloads the code (helpful for programming)
'****************************************************************************
</Script>
<!****************************************************************************>
<!* End Script / Begin HTML >
<!****************************************************************************>
'<BODY background="pe.jpg">
<table width=739 height =128 background=./masthead.jpg><tr><td align=center valign=bottom><font face=verdana color=white><b>ImageX Deployment Menu</b></font></td></tr></table>
<DIV id=bg>
<!-- <img src="K:\WinPE\pe.jpg"> -->
</DIV>
<DIV id=body></DIV>
<DIV id=details></DIV>
<DIV id=tools>
</DIV>
<br>
<table border="0" width="737">
<tr>
<td bgcolor="#000000" >
<p align="center"><font face="Verdana" color="#FFFFFF"><b>
Symantec Ghost</b></font></td>
</tr>
<tr>
<td ><font face="Verdana" size="2">If all else fails, you can use Ghost to image a workstation.
You will need to know the path to the image or call the Help Desk (x4-5666) to setup a Multicast session.</td>
</tr>
<tr>
<td> </td>
</tr>
<tr>
<td><font face="Verdana" size="2"><font face = Verdana>
<input id=runbutton3 class="button" type="button" value="Ghost32" name="btnGhost32" onClick="RunGhost32"></font></td>
</tr>
</table>
</BODY>
</HTML>
<!****************************************************************************>
<!* End HTML >
<!****************************************************************************>So far the response from my techs and other SAs has been great. Again, thanks.
0 -
Thanks for the HTA. This is exactly what I started last week. Yours, however, is an improvement over what I had started. I have added the Ghost32 capability for my techs to use should an ImageX image not be available. I am looking for a section that also allows for capture/append so we can create the ones we don't have. Any suggestions? I have started one that works in a separate HTA file, but when I add it to yours, it fails, only prompting for the first parameter (Drive to capture) the other two, WIM file name and description never appear. I'll post code tomorrow, left it at work.
Also, your link to the sample files isn't working.
Thanks again!
0
WinPE 2.0 GimageX COM based HTA
in Windows PE
Posted
Here is the code I added for the capture, but only gives me one prompt instead of the the three:
Under the <script ...>
Under <BODY ...>
Like I said before, when I run this exact code in an HTA of its' own, it works. Cut and paste into this HTA, and I only receive one prompt.