Jump to content

WinBOM Woes


Recommended Posts

I am working on my universal image for the company and I was pre-installing the apps then sealing it up with Sysprep to drop down on a new machine with PNP finding hardware and such. Recent changes in hardware (DUO based machines) has given me the opportunity to revisit the process and fix a few issues.

I'm now attempting to pre-load software using winbom and the factory section of Sysprep. This is all working as intended except 2 (so far) apps that are giving me fits. Both of which are MSI files, but are not traditional MSIs. They are more of a Installshield with MSI variety. The problem is that winbom doesn't like them. Lets look at one while I show you my problem.

So my winbom.ini section kinda looks like this:

[OEMRUNONCE]

"Install Novell Client", "Novell.Stage", APP

"Install Zenworks", "Zenworks.Stage", APP

"Install IPrint", "Iprint.Stage", APP

"Install McAfee", "McAfee.Stage", APP

"Scan New Drivers", "Driver.Stage", APP

[Zenworks.Stage]

InstallType = Standard

SourcePath = C:\Apps\zenagnt

SetupFile = zfdagent.msi

CmdLine = /quiet /norestart

Now the problem is, as you can see, that the msi has it's own triggers. There are only 3 ways I can run this MSI, either as an MSI, APP, or INF. If i run the stage as an MSI, it returns an MSI error of 1639 or something along those lines. After looking up that error, it tells me that the triggers are not correct, which leads me to believe it's attempting to run this with msiexec. If i run it as an APP, it errors out with a error code of 3, which makes no sense. I can however just type zfdagent.msi /quiet /norestart at the command prompt and works fine. If i place this install at the GUIRUNONCE section of Sysprep, it runs and installs fine. This is one of 2 apps like this and with similar triggers. How do i get it to run in the winbom section where it will fire off and wait until moving on to the next section? Place it inside a bat file? A cmd file? Wrap it up as a exe (like using zip to create a self extracting exe) and see if i can trigger it that way?

My second issue is I never had problems getting pnp to enumerate when using just sysprep. In the new process, I am attempting to make it more modular where I dump down a driver directory and do a scan on that directory to place the driver sets into the registry entry using spdrvscn from vernalex.com. That way I can alter the drivers needed without having to re-do the base image. I am invoking the scan in the OEMRunOnce section like so:

[OEMRUNONCE]

"Scan New Drivers", "Driver.Stage", APP

[Driver.Stage]

InstallType = Standard

SourcePath = c:\sysprep\

SetupFile = spdrvscn.exe

CmdLine = /p c:\drivers /e inf /d c:\windows\inf /a /s /q

Now this works and does place the entries into the registry, but OEMRUNONCE happens after winbom already did the PNP enumeration. I try to set sysprep to re-do the PNP with triggers in the Factory section like so:

[Factory]

DoDeviceIDScanOnError = Yes

FactoryComputerName = *

Logfile = C:\Winbom.log

LogLevel = 2

Reseal = Reboot

ResealMode = Mini

ReasealFlags = -pnp

WinbomType = Factory

Yet, as I was testing the winbom section of the scripting, only a small handfull of the devices were automatically being installed with PNP. If i go into the device manager, I can just have it update the driver and auto search and it installs it. No issue with non-signed drivers or anything along those lines. It's just like the machine tried once but never tried again after the drivers were put into the search path. I also have the DriverSigningPolicy = Ignore in my sysprep.ini.

Any ideas?

Link to comment
Share on other sites


I had more or less the same problem, solved it with another possibility to install software, Directly in $OEM$ I dropped CMDLINES.TXT, containing;

----cmdlines.txt snip-------

[COMMANDS]

"install.cmd"

---end snip-----

There (in $OEM$) I also dropped the install.cmd, containing (amongst other lines);

-----install.cmd snip----------

@echo off

ECHO Installing ZfD Agent

start /wait msiexec.exe /i "c:\install\ZfDAgent701\ZfDAgent.msi" /qn ADDLOCAL=ALL EDITABLE_MT_ADDRESS=1 STARTUP_APPWINDOW=0 STARTUP_APPEXPLORER=0

EXIT

---snip---------

Note; the start /wait etc is one line, all the way up to STARTUP_APPEXPLORER=0.

I chose not to InstallShield / .mst this install, but did it this way. There is no reason why it shouldn't work though.

In my install.cmd I kick off all my installs (client 32 491sp3 using acu.exe and other installs aswell, like userhyve cleanup and more of this sorts.). I'll also implement rollup patches for XP this way. It's fast, and trouble free. You don't have to admin login for this, it starts before cleanup, just after basic install from sysprep.

I also do my install cleanup here, triggering another cmd file (not suprisingly called cleanup.cmd....), removing or clearing all small leftovers (like zenworks history file, hostfile wich I always used to do just before sysprep but sometimes were left behind or just triggered before sealing)

Greetz

Jules

Edited by JulesKr
Link to comment
Share on other sites

So it seems like I either have to re-wrap the app into a form which winbom will like better, or fire it off inside a cmd file in either winbom or sysprep.

Not the cleanest way, but do-able.

Anyone have any ideas about the Plug and Play? This will be a real showstopper if sysprep is not seeing or using the -pnp trigger.

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...