I have in the past posted blogs on storing your Wim files at locations other then the KBox to save deployment time and allow more machines to image at the same time. The method with 3.6 is the same, just the needed files are no longer on the kbox. You can create these file yourself with notepad.
The only glitch I have run into doing this is the 3.6 task engine identifies mid level batch files as exe and breaks the chain. If you do not use any mid level batch files you are fine. If you do you can convert that batch file to run as an exe by calling the batch file via a vbs script. See my answer to this question http://www.itninja.com/question/number-of-autologins-required-has-changed-from-1-to-3-since-3-6-upgrade that starts with "Ok to make it part of the kbox."
Here is the trick to save network bandwidth and K2000 diskspace. Store the Wim's on Windows servers, Wim files are not restricted to K2000 file system.
I had the server crew create storage space on all the sites and I store my Wims at each site. They created a share on the main storage server at each site named images$ and I have a K2000 domain user that has rights to these shares. I created a subdirectory called imagestore in each share (required).
I used the KBE manipulator to create custom pxe boot environements that map the T: and W: drive to each of my storage spaces. When I capture a sysprepped image I choose the proper boot to map the server I want it to go to.
When staff deploys an image, they pxe boot to the K2000, the machine gets it deployment orders from the k2000 and starts. I remap the W drive as my first preinstall task to the needed storage to access the WIM.
The deployment starts on the K2000 and then it switches over to the storage server to copy the wim portion then switches back to the K2000 for the remainder of it's mid level and post tasks.
All the workload of deploying the image files is placed on the storage servers instead of the K2000. I have had 120 images deploying from a single K2000 this way and I am still able to capture an image even when they are deploying.
I have had to image over a T1 when the microwave link went down. Still managed to use the K2000 to do full classrooms by putting the wim file on a local server.
The server crew can easily backup my wims to commvault also.
You will need to follow the process for both 32 and 64 bit and also if you are using pe 3 and 4 for both of those also.
For this blog I am using WinPE 3 32bit
First step is to create an empty WIM capture to use as the deployment master. Boot with pxe to the kbox and capture an empty formatted C:drive as a Wim capture.
(use diskpart to clean and create a partition and then format as ntfs)
You will need an HTA screen to capture and a VBS script to deploy with
Copy and paste below into notepad and save as capture_wim.hta:
'<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<link rel="stylesheet" type="text/css" href="deployment_client.css" />
<title>WIM Capture</title>
<HTA:APPLICATION
APPLICATIONNAME="ImageX Capture"
SCROLL="no"
SINGLEINSTANCE="yes"
>
</head>
<script language="VBScript">
'Resize window
Sub Window_onLoad
window.resizeTo 500,380
End Sub
'Verify t:\imagestore exists
Sub StartCapture
Dim imgForm
Set imgForm = Document.forms("imgForm")
Set objFSO = CreateObject("Scripting.FileSystemObject")
If objFSO.FolderExists ("t:\imagestore") Then
Else
Set objFolder = objFSO.CreateFolder("t:\imagestore")
End if
'Verify image is not already on T:\imagestore
Set objFSO = CreateObject("Scripting.FileSystemObject")
If objFSO.FileExists("t:\imagestore\" & imgForm.imgName.value & ".wim") Then
MsgBox("The WIM image already exists. Please use a different name")
ElseIf imgForm.imgName.value = "" Then
MsgBox("A blank name is not allowed.")
Else
'Start Image Capture
strCommand = "%systemdrive%\windows\system32\imagex.exe /capture /verify /compress" & " " & imgForm.comPrs.value & " " & imgForm.srcDrive.value & ":" & " " & "t:\imagestore\" & imgForm.imgName.value & ".wim" & " " & "'" & imgForm.imgName.value & "'" & " " & "/logfile" & " " & "t:\imagestore\" & imgForm.imgName.value & ".log"
Set wshShell = CreateObject("WScript.Shell")
WshShell.run strCommand
'MsgBox("Process Complete. Check T:\imagestore\" & imgForm.imgName.value & ".log for errors" )
Set WshShell = nothing
End If
End Sub
</script>
<body>
<h1>WIM Capture</h1>
<form id="imgForm" action="">
<div class="list">Image Name: <input type="text" name="imgName" id="imgName" size="20" maxlength="10">.wim</div>
<div class="list">Source Drive: <input type="text" name="srcDrive" id="srcDrive" size="1" maxlength="1">:</div<br/>
</div>
<table><tr><td VALIGN="baseline">
<div class="list">Compression: </div>
</td>
<td VALIGN="baseline">
<select name="comPrs" id="comPrs">---
<option value="fast">Fast</option>
<option value="maximum">Maximum</option>
<option value="none">None</option>
</select>
</form>
</td>
</tr>
</table>
<br>
<div class="text"><em>Note: Images will be sent to t:\imagestore\.</em></div<br/>
<br>
<br>
<input type="button" value="Start Capture" name="StartCapture" onClick="StartCapture">
<span id = "DataArea"></span>
</body>
Copy and paste below into notepad and save as apply_wim.vbs:
'Verify t:\imagestore exists
Set objFSO = CreateObject("Scripting.FileSystemObject")
If objFSO.FolderExists ("t:\imagestore") Then
Else
MsgBox ("Missing t:\imagestore directory. No WIM images found.")
End If
'Deploy imageX Image
If WScript.Arguments.Count < 3 or WScript.Arguments.Count > 4 Then
WScript.Quit
Else
imgName = WScript.Arguments.item(0)
imgNum = WScript.Arguments.item(1)
trgDrive = WScript.Arguments.item(2)
End if
Set wshShell = WScript.CreateObject ("WSCript.shell")
wshshell.run "%systemdrive%\windows\system32\imagex.exe /apply" & " " & "t:\imagestore\" & imgName & ".wim" & " " & imgNum & " " & trgDrive & ":" & " " & "/logfile t:\" & compName & ".log", 1, true
set wshshell = nothing
' apply_wim.vbs <imagename> <imagenumber> <targetdrive> <default logfile=computername.log>
On the windows servers my shares are all \\server\images$. I place the capture_wim.hta file on the root of all my windows image stores, under that I create a subdir named imagestore.
For deployment I used the KBE Manipulator to create a custom KBE that maps to the windows server we use the most. Then have mid level tasks to remap to the other servers. For the capture I used the KBE manipulator to create custom capture KBE’s for each server.
Deployment KBE:
Use the KBE Man and fill in the 4 steps on screen 1
Click on “create KBE” on screen 2, and you will see this popup
Say yes and enter the following commands to remap the drives for external share access:
Say yes again to custom DOS command and enter:
Echo off
Say yes again to custom DOS command and enter:
net use t: \\server\images$ Password /user:UserWithShareRights
Say yes again to custom DOS command and enter:
Echo on
say no this time and step thru and let the KBE build
To map to other servers simply create a mid level task that remap to the other servers. place it as the first midlevel task.
For the Capture KBEs I created one for each bit type for every storage server.
Use the KBE manipulator just like you did to create deploy KBE’s but add 2 additional lines
Say yes again to custom DOS command and enter:
Echo off
Say yes again to custom DOS command and enter:
net use t: \\server\images$ Password /user:UserWithShareRights
Say yes again to custom DOS command and enter:
Echo on
Say yes again to custom DOS command and enter:
T:\capture_wim.hta
Say yes again to custom DOS command and enter:
exit
say no this time and step thru and let the KBE build
If you do not want to build special capture KBE’s you can also use a deploy KBE that maps to the server and open a command window under recovery and type t:\capture_wim.hta to run the capture.
To deploy images you need to create a mid level task to disperse your WIM to the target machine, duplicate and use the shell Wim capture you created.
this is the part to the code:
/apply" & " " & "w:\imagestore\" & imgName & ".wim"
so where ever you map w: to is where it looks - SMal.tmcc 10 years ago
I now have my shell image, I created my deployment kbe (for right now I'm going to use command line in recovery to capture), I've uploaded apply_wim.bs to my post installation task, I'm ready begin but I don't know what I'm supposed to do beyond this point.
I'm sorry but I'm as new as it comes to this, I basically only knew how to make images and deploy software up to this point, 3.6 really messed me up and now that I recovered from that everyone keeps telling me it's too slow and this is what lead me to this. - knuckle66 10 years ago
http://social.technet.microsoft.com/Forums/windows/en-US/7f2ab78b-eec0-43e0-af7f-f1ddf21a704a/windows-7-what-constitutes-a-connection-under-the-20-connection-limit?forum=w7itpronetworking
http://www.tomshardware.com/forum/14441-63-user-maximum-connection-limit-windows-ultimate
http://scottiestech.info/2009/08/22/how-to-increase-the-10-connection-limit-on-a-windows-lan/
also you would want to put this machine on a gig port if possible - SMal.tmcc 10 years ago
I found this info: "The command to apply an image to a volume is simply imagex /apply image.wim 1, where 1 tells ImageX to apply the image from the file image.wim that has the index number 1." Source: technet.microsoft.com/en-us/library/cc507842.aspx
That seems to say that one file named "image.wim" could have multiple images inside with varying index numbers. I'll stick with keeping them separate myself, but am curious how the index number comes into play.
Thanks! - murbot 10 years ago
My offboard image with an onboard 1.7kb shell deployed fine to another desktop of the same model. But when I try deploying to a laptop (e6440), it fails at the Apply Image task with an unknown error (3221225477). I tried a couple times on different wall ports just to be safe, but same result.
I dupped the shell I created and also dupped the mid-level (post install) task to call the VB script and edited the cmd argument to grab the new image name. Then used the new dupped task in the dupped shell. I checked the xml and it's calling the correct stuff. My new image name ends with the digit "1" (ImgMASTER1), but my first image was IMG-MASTER so I was think maybe the digit might be causing a problem.
Any ideas what might cause it to fail before it gets to the drivers? - murbot 10 years ago
The answer is no, you don't have to create the empty 1.7kb shell every time. It can be dupped. And a dup can be dupped. As you noted you'll just need to edit the new copy of the "WIM Deploy xxx" so the first argument after the Apply_wim.vbs is the wim file name. I've been tossing failed images and instead of dupping the mid tasks, I just edit it for the new test image until I get a fully functional image the way I want.
Then you must go to your system images on the K2k and either dup and edit or just edit an exiting shell.
If you have a machine you're imaging already booted to the KBE imaging screen, after you edit the task and image on the k2k, go over to the machine that is booted to the KBE and click back to the main menu, then back into Imaging and the new Image will be there. No need to reboot into the KBE until you already kicked of an image and it failed.
So, for me, I've focused on 2 steps when I create a new image. Dup and edit the mid level task and dup and edit the image under System Images.
Hope this helps. - murbot 10 years ago
We had posted here http://www.itninja.com/question/k2000-deployuserstates-vbs-using-network-drive-instead-of-system-drive-not-working?utm_source=itn_email&utm_medium=answer_alert&utm_campaign=notifications&utm_content=question_permalink but I don't think the one guy understood what we are doing. - knuckle66 10 years ago
I am working on a new blog for 3.7 with 3.7KBEM and AutoIT, on hold till Spring classroom patching\MI and reimaging is completed. - SMal.tmcc 9 years ago
This is what I've done:
1. Created new 64 bit image from scripted installations using uploaded media.
2. syspreped and uploaded using the 64 kbe created from above, selected C. and uploaded a 3GB file to the imagestore.
3. created a x64 image shell by following the steps above.
4. created the mid level task for my image as stated above.
Pre-install tasks.
Create Single Partition
Format C: as NTFS
install vista /2008/7/8/2012 MBR
Mid level tasks
64wim7base.
This is the same as my 32 bit, I've tried it with and without the MBR. I'm not sure what I'm doing wrong or what I need to change to make this work. - knuckle66 9 years ago
http://www.itninja.com/blog/view/kace-streaming-wim-toolkit-kswim - SMal.tmcc 9 years ago
My question would this work to automate the imaging with the use of the "Schedule to run later"? We image around 8000 computers but they are on different sub nets. - TimHR 7 years ago