Many of you may have already figured this out. I had to learn it on my own and thought I'd post this just in case there are others out there that are in the same boat and are having to do things manually just to get by. If you take the concepts provided here and use the tools that Kace already provides you can apply this to any Dell machine where Driver Feeds do not work and possibly to other manufacturers as well if they have driver packs available for download.
E5430
We started rolling out E5430 laptops via Kace using a Scripted Installation. I had installed the driver pack for the E5430 within the Driver Feed menu, but it would never deploy them during the install. I had been installing them as post install tasks using a barrage of MSI, EXE, and batch files to get them installed. However I ran into issues with video drivers and some others doing it this way.
In my particular case we did not get VPRO with our machines for cost reasons. I found out what was happening is that the Driver Feed did download the drivers to the \\k2000\drivers_postinstall\dell\windows_7_x64 share, but the script Kace uses to determine what machine gets what drivers was looking for E5430 whereas my machines were actually seen as E5430_non-vpro. The simplest way to put this is that if the model name on the machine does not match the folder name in the driver share it won't "inject" drivers. (i.e. "E5430_non-vpro" does not equal "E5430").
The best way to determine the model name, as Kace sees it, is to run a tool provided by Kace found in \\k2000\peinst\drivers_postinstall\feed_tools called Get_Manufacturer_Model_OS.vbs. When run from an E5430 this handy tool will display what it sees as the system model. Mine came back as E5430_non-Vpro.
I obviously can't change the model name, so I figured out that I could reuse the script Kace uses to copy drivers to the system from within the KBE and modify it for my needs. Look in \\k2000\peinst\hta and find copy_drivers.vbs. Copy this file to your machine as you don't have permissions to edit it, nor would you want to, directly on the K2000. If you're using a text editing tool like Notepad++ or UltraEdit, scroll down to line 86 and you should see the code
<CODE START>
For Each objItem in ColItems
strModel = objItem.Model
If (InStr(strModel,"Latitude") > 0) Then strModel = mid(strModel,9,20)
If (InStr(strModel,"Precision") > 0) Then strModel = mid(strModel,10,21)
If (InStr(strModel,"OptiPlex") > 0) Then strModel = mid(strModel,9,20)
strModel = Trim(strModel)
strModel = Replace(strModel, " ", "_")
Next
<CODE END>
I added a couple of conditionals, shown in red below, to fix my E5430 and my XPS 13 drivers
<CODE START>
For Each objItem in ColItems
strModel = objItem.Model
If (InStr(strModel,"Latitude") > 0) Then strModel = mid(strModel,9,20)
If (InStr(strModel,"Precision") > 0) Then strModel = mid(strModel,10,21)
If (InStr(strModel,"OptiPlex") > 0) Then strModel = mid(strModel,9,20)
strModel = Trim(strModel)
strModel = Replace(strModel, " ", "_")
compValLat = StrComp(strModel,"E5430_non-Vpro",1)
if (compValLat = 0) then strModel = "e5430"
compValXps = StrComp(strModel,"Dell_System_XPS_L321X",1)
if (compValXps = 0) then strModel = "l321x"
Next
<CODE END>
Now go to the Postinstallation Tasks page and create a new Application. In the application window make sure you select to execute it in the K2000 Boot Environment (Windows) instead of in Windows itself. Upload your newly edited VBS file and call the task something meaningful like "Custom Drivers Install". Add this task to your Scripted Install and all the drivers for the E5430 will be injected correctly as the Driver Feed intended.
XPS 13
First off, if you have trouble booting to the KBE from an XPS 13 using the Cisco USB300M USB to Ethernet adapter, please see this post (http://www.itninja.com/question/dell-xps-13-scripted-install-problem) and follow scriptingninja's instructions. I have read where there is a better adapter that will natively work with the XPS for PXE booting, but this is the one I'm extremely familiar with since it is, for whatever reason, the one adapter included in the build page for an XPS 13.
The Driver Feed problem I had with the XPS 13 is that the feed would never even download the driver pack. I would get an error every time I tried to install it. I finally figured out that if I clicked on the XPS 13 listing on the Driver Feed page, listed as "XPS XPS L321X", it would show me the name of the CAB file it was looking for..."XPS L321X-Win7-A00-DTX7K.CAB". I simply did a search for that on Dell's website and found the download link (http://en.community.dell.com/techcenter/enterprise-client/w/wiki/3855.xps-13-l321x-windows-7-driver-cab.aspx) that was roughly the same size as it was listed in the K2000. I downloaded it, extracted it, created a folder named L321X (found by running the Get_Manufacturer_Model_OS.vbs script mentioned above for the model name of the XPS 13) in the \\k2000\drivers_postinstall\dell\windows_7_x64 directory, and copied the contents of the CAB file into the new folder. Then I added the line of code in the snippet above for the XPS 13 to the copy_drivers.vbs file, re-uploaded the VBS file to the K2000 so it would have the latest version, and it finally injected the drivers.
It injects all drivers EXCEPT the touchpad driver. It doesn't include that in the CAB file. I tried adding it to the driver share, but when the Scripted Install completes I couldn't use the touchpad at all. So I'm manually executing the installer for the touchpad for every XPS 13 before it goes to the user. A pain I know, but it's the only one I have to do so it's not so terrible.
The new \\k2000\peinst\hta\copy_drivers.vbs has had the following code added as well
(NEWCODE)
' ----------> Latitude E5430 model may contain VPro or NovPro when WMI runs so dropping that extension.
If (InStr(strModel, " vpro") > 0) Then strModel = Replace(strModel, " vpro", "")
If (InStr(strModel, " novpro") > 0) Then strModel = Replace(strModel, " novpro", "")
(ENDNEWCODE)
However this code won't do anything as it doesn't see novpro, it sees non-vpro.
(NEWCODE)
'Commented out find and replace since dell now has spaces in their model names
'strModel = Replace(strModel, " ", "_")
(ENDNEWCODE)
Has also been changed as I mentioned earlier.
My new procedure for checking the model name is to take a copy of the copy_drivers.vbs script to the machine and changing the last line from:
WScript.Quit
to
Wscript.echo("Manufacturer: " & strManufacturer & (Chr(13) & chr(10)) & (Chr(13) & chr(10)) & "Model: " & strModel & (Chr(13) & chr(10)) & (Chr(13) & chr(10)) &"OS: " & strOs)
This will output the actualy variable from the script that is running on the k2000. - prattk 11 years ago