Video Screencast Help
Search Video Help Close Back
to help
Not able to make it to Vision this year? Get a sampling in the Best of Vision on Demand group.

How make deployment process to download drivers from nearest PXE server

Updated: 26 Jan 2011 | 16 comments
weedee's picture
0 0 Votes
Login to vote
This issue has been solved. See solution.

Hello,

We have 1x DS 6.9 SP4 server with WinPE 2.1 and 5 PXE servers. PXE Servers are scattered to different sites. At the moment, we're deploying only XP images.

I have two issues need to dealt with:

1) How to keep deployment jobs count in minimum? I would like to have only one job for each location, it should be possible to use 'Deploy XP Site1' job from Site2 or Site3 and job should always transfer drivers from nearest PXE server

2) My network share storing drivers (identical in every PXE server) in several GB's in size. I would like to copy driver files to clients c:\temp folder in WinPE automation mode. How should I configure Copy File To -task, so it would copy only those drivers related to client model deployed. It makes no sense to transfer all my drivers to clients c:\temp, use only 2% of them and then delete everything with post-image task.

Thanks already!!

Comments

mortenleth's picture
14
Jan
2011
0 Votes 0
Login to vote

How i normally do...

Hallo Weedee

This surely is possible, and there are a number of ways og doing this... - mine isn't necessarily the right way.. ;)

1) You can change your drive mapping in your PXE boot image to point to F: - \\%ALTIRIS_PXE_SERVER%\eXpress

And then on all of your PXE servers you make sure you have a share called eXpress. Then i normally create a "robocopy" job which i run as a schedulet task i do it as a /MIR which mirrors the catalog and deleting files if they exist in the destination but not in the source.
I typically have 3 folders or so where i store all of the files i need in my deployment, hence making it easier to decide which folders to copy and which not to copy.. ;)

2) you could use a script to do this, and make your driver DB to take advantage of your tokens in Altiris.
You can fx. use "%#!computer@model_num%" which gives you the model number information of your client giving you the oppertunity to copy just that library down to your client (or if you use windows 7 giving you the oppertunity to only look into that library and all sub library's).

Hope it clerify's some for you. ;)

Kind Regards
Morten Leth

ianatkin's picture
14
Jan
2011
0 Votes 0
Login to vote

Hi, My approach similar to

Hi,

My approach similar to Morten's. I normally (for WinPE) map a M:\ Drive to the express share, and an N:\ Drive to \\%ALTIRIS_PXE_SERVER%\Altiris.

Moving the drive letters up a few notches is great for avoiding issues with machines bearing card reader slots.

The advantage of this having two automation drive mappings, is that it maintains a central point for logs (the temp folder under the express share). The disadvantage is that your rdeployt.exe is being dragged across your WAN link (which may or may not be a problem for you).

The driver folders can be replicated using your replication method of choice. Among the options are Notification Server (if you have NS) can be used, or using robobopy scripts as Morten suggests!

You can also refine the above approach for doing DS on-demand post-image software deployments.  By dumping the Package Server's IP address into a a add/removve programs reg script in cmdlines.txt in automation, when you machine boots into production a DS inventory can retrieve it.  You can then have site-based post-image software deployment with DS by referencing this data in the file source patch.

Kind Regards,
Ian./

Ian Atkin, Senior Developer for the ICT Support Team, Oxford University, UK

Connect Etiquette: "Mark as Solution" those posts which resolve your problem, and give a thumbs up to useful comments, articles and downloads<

weedee's picture
14
Jan
2011
0 Votes 0
Login to vote

I tried to enter source path

I tried to enter source path to my Copy File To -task in WinPE automation:

\\%ALTIRIS_PXE_SERVER%\Images\Drivers to c:\temp

When client tried to execute this command, I got error to console: "network path was not found"

I ran set command in WinPE and there's correct value for %ALTIRIS_PXE_SERVER% variable.

Should this token work with Copy File To -task in automation?

mortenleth's picture
14
Jan
2011
0 Votes 0
Login to vote

Well...

Hallo Weedee

Why use that token in your copy file to when you have a drive mapped to that location?

I must admit i am not sure if you could use that token in your copy file to method (the reason i say this is because i haven't tried it).

But since you hae your drive letter mapped to N: (referring to ian's post) then you could simply use N:\Images\Drivers

Another reason why your drive thingy won't work could be you don't have eXpress in your path, i don't know whether you in fact do have a library shared as Images, but i'm betting you don't :)

Kind Regards
Morten Leth

ianatkin's picture
14
Jan
2011
0 Votes 0
Login to vote

Hi Morten -exactly. The

Hi Morten -exactly. The %ALTIRIS_PXE_IP% is an automation environment variable and not a token. Hence this is known only locally within the automation environment at run time.

Ian Atkin, Senior Developer for the ICT Support Team, Oxford University, UK

Connect Etiquette: "Mark as Solution" those posts which resolve your problem, and give a thumbs up to useful comments, articles and downloads<

weedee's picture
14
Jan
2011
0 Votes 0
Login to vote

Hi Morten,When I attempted

Hi Morten,

When I attempted to put N:\Images\Drivers as a source path and choose 'Copy files directly from file source' I got error:

"When using the option to have the agent download files directly from the source, the source filename must be a UNC path"

If I choose to use option "Copy file using Deployment Server" instead, I get error

"Specified source was not found. Please browse to the desired file or directory"

But...

I think I have found workaround. I read about FIRM.EXE tool. I made up this script (not tested it yet). Thanks to dfranfis. I modified one script he posted here earlier.

T: drive is mapped to \\PXEServer\Images share and containing windrivers folder, which have subfolders and drivers for specific model.

This should copy that folder to c:\temp. I'll use Run Script tasks later in deployment process to install these drivers from c:\temp.

 

 

echo Hardware model is %#!computer@prod_name%

 

rem hardware models

if "%#!computer@prod_name%" =="HP EliteBook 8440p" goto 8440p

REM If we didn't find a match, just exit

goto exit

 

rem desktops

:8440p

S:\RDeploy\Windows\firm -recurse copy "T:\windrivers\%#computer@prod_name%\*" "prod:\testcopy"

goto exit

mortenleth's picture
14
Jan
2011
0 Votes 0
Login to vote

Good thing you got your problem solved.

Hallo Weedee

Good thing you got it solved.

Allthough i do have a couple of comments :)
The solution you found there is the good old "HII" solution which i believe was made originally by altrinsicsolutions, although i'm not a 100% sure hehe.

You can also combine the token you have used there with "%#!computer@model_num%" which is telling the model number of the client, this is just bonus info so that you are aware of this.

I must admit I don't quite get why you get that error with the specified source does not exist, are you 100% sure that it does in fact exist?
On your deployment server you would have to create that "images" share by hand because the altiris deployment installation does not have this by default - instead you have the \\%DSSERVER%\eXpress\images by default.

To verify this you could make a script which does only contain "pause" and then you have time to search if things are in fact how you would assume they are.
The reason i say this is because you can have all the methods you want but if the library isn't there - they would all fail :)

Secondly your saying that you want to copy all the drivers down to temp, you would have to change "prod:\temp" otherwise it'll just put your things in a folder called "testcopy" on the C:\ drive :)

Kind Regards
Morten Leth

weedee's picture
14
Jan
2011
0 Votes 0
Login to vote

Hi Morten,My Images folder

Hi Morten,

My Images folder absolute file path is E:\Images. I created this folder by hand and I have shared it with name Images.

My eXpress folder absolute file path is E:\Program Files\Altiris\eXpress\Deployment Solution

I don't know what I'm doing wrong, but my FIRM script copies all folders from under \windrivers directory to c:\testcopy, not only \windrivers\HP EliteBook 8440p.

SK's picture
14
Jan
2011
0 Votes 0
Login to vote

PXE Redirection or GetSrv

You can also use PXE Redirection or GetSrv.

SK.

ianatkin's picture
17
Jan
2011
0 Votes 0
Login to vote

Hi  Weedee, I think

Hi  Weedee,

I think Mortenleth gave you a good answer. Do you have anything outstanding on this post?

Kind Regards,
Ian./

Ian Atkin, Senior Developer for the ICT Support Team, Oxford University, UK

Connect Etiquette: "Mark as Solution" those posts which resolve your problem, and give a thumbs up to useful comments, articles and downloads<

mortenleth's picture
17
Jan
2011
0 Votes 0
Login to vote

Not sure..

Hallo Weedee

Regarding your porblem with the software downloading the wrong drivers.
The reason i would assume is due to the fact that your missing a ! in your statement ;)

%#computer@prod_name% needs to be %#!computer@prod_name%

This means that at the moment your query looks like this:

S:\RDeploy\Windows\firm -recurse copy "T:\windrivers\\*" "prod:\testcopy"

Because your product name is empty.

Kind Regards
Morten Leth

weedee's picture
26
Jan
2011
0 Votes 0
Login to vote

Hello Morten and

Hello Morten and everybody,

In PXE config I have mapped S: for \\DSSERVER01\eXpress and T: for \\PXESERVER\Images folder.

Images share contains folder windrivers and it contains folders for each computer model. These folders are named exatcly to match Computer Product Name value.

This script copies only model specific drivers to client from network share hosted on nearest PXE server to client. In our environment this works very well. This script is executed in Run Script task, in WinPE automation right after Ghost has finished restoring disk image.

@ECHO OFF
rem Copy model specific drivers and software packages from nearest distribution point
rem Show computer model name in WinPE startup
echo Hardware model is %#!computer@prod_name%

rem pre-copy global software to temp folder waiting to be installed later in the process
echo Copying files...
S:\RDeploy\Windows\firm -recurse copy "T:\Software\Global\*" "prod:\temp"

rem Copy model specific drivers and software from nearest PXE server
echo Copying %#!computer@prod_name% drivers...
S:\RDeploy\Windows\firm -recurse copy "T:\windrivers\%#!computer@prod_name%\*" "prod:\temp"

mortenleth's picture
26
Jan
2011
0 Votes 0
Login to vote

Good thing.

Hey weedee

Glad you got everything sorted and things are now working as they should, if you would be so kind to mark the answer you find best as the solution this thread will then be closed.

Have a great day.

Kind Regards
Morten Leth

weedee's picture
30
Jan
2011
0 Votes 0
Login to vote

Offtopic, but why people are

Offtopic, but why people are using FIRM.EXE to copy drivers in WinPE automation to client? Could you use xcopy instead? Just wondering.

bhawver's picture
31
Jan
2011
0 Votes 0
Login to vote

Firm vs. xcopy

Hi Weedee,

I want to say that in order to use xcopy, you might have to reboot before WinPE would see the file structure after imaging.  Firm would allow the files to be injected into the partition without the reboot.  I could be wrong as I'm not planning on changing my process to verify this right now.

Brian Hawver
Systems Engineer
Yaskawa America, Inc.

Connect Etiquette: "Mark as Solution" those posts which resolve your problem, and give a thumbs up to useful comments, articles and downloads.

weedee's picture
31
Jan
2011
1 Vote +1
Login to vote

Ok, thanks. I just ran test

Ok, thanks.

I just ran test where I used xcopy after Ghost restore (in WinPE) to copy drivers to c:\temp folder. In next restart, all my driver jobs finished successfully as they executed setup.exe files from c:\temp.

I'm using firm.exe too in production.