Jump to content

Multiple physical machines


Recommended Posts

Hello guys

I have a working RIS setup which I have used for years but over the last years the amount of physical machines has grow too much to keep making a new image for every new physical machine.

What I have done so far is just to create a image for eg. a IBM T43 and then one for a Dell D610 etc. After then installation I install the different custom apps for the specific model through a runonce bla bla bla. (Like special WiFi or audio drivers for the Dell etc)

What I would want is only one image and then somewhere in the process I need a script that will identify the model type and then install the specific drivers for that model.

Its not a problem for me to have all the drivers for both models in the i386 folder is more for those special applications that have to be installed when the OS is running. (eg special powermanagement tools for an IBM etc)

So basically I need some sort of script that I can call from eg. cmdlines.txt that will identify my hardware model and then launch another script named after which hardware its running on so the right apps will be installed.

(Its not like I have just the IBM and the Dell its more like 20 different hardware models)

Hope this makes sense.

If any of you got some ideas I would be very happy :)

Link to comment
Share on other sites


Hi,

I strongly suggest that you should check out Bashrat's DriverPacks:

http://www.msfn.org/board/index.php?showforum=111

I administrate a *single* RISETUP image for approximately 2000 machines of varying age, make and model (Dell, Viglen, RM, Compaq, Sony, Toshiba, etc).

I use RISult, RyanVM's update packs and Bashrat's DriverPacks to make a single universal RISETUP image.

Good luck,

Andy

Edited by Fencer128
Link to comment
Share on other sites

Thanks a lot.

I would prefere a simple script that would do what I originally wrote.

Its very important for me not to be dependent on another persons work like RISult, RyanVMs or Bashrat's driverpack.

So if anyone can help me with a simple script like described in my original post i'd be more than happy.

Link to comment
Share on other sites

Hi,

Given your criteria, I'm not sure how you'd go about it. You can't do much in the way of hardware detection from within the RIS menus - and judging by the variety of hardware you have to maintain you'll need:

- many different drivers

- much updating of said drivers

I can only imagine that if you do come up with a solution it may be so complex as to negate it's usefulness (in that once again you may end up being quicker to just have a seperate image for each hardware type).

Good luck,

Andy

Link to comment
Share on other sites

Hi,

That is a limitation of flat images (i.e. RISETUP) as opposed to binary (i.e. RIPREP, Ghost, etc).

You would need to use a seperate method to install applications post-build. I use Microsoft SMS, though I appreciate this isn't available to everyone.

Alternatively you can use packaged applications (e.g. something like those offered by RyanVM or similar) along with [GUIRunOnce] sttaements, or even a utility like WPI (have a look at it's forum on MSFN).

RISult does not directly allow for the inclusion of applications in the build - but it can be used with a method such as those above to achieve the same result (as I do with SMS). Using a flat image also gives you the opportunity to decouple the applications from the build, which in my experience is the best method for scalability and ease of maintenance.

Cheers,

Andy

Link to comment
Share on other sites

Drakhan wrote> I would prefere a simple script that would do what I originally wrote.

A similar question was asked by another forum member in a dicussion thread I have been participating in and he suggested using a tool called PCI Scan from Bart's Utilities page; http://www.nu2.nu/utils/ Only one problem, it only runs from DOS (old DOS 6.x I think) so I don't think it can be used from the CMD window (new DOS) in XP.

However, I have also on occasion wanted to be able to identify the model of hardware to run particular scripts so I decided to expend a few mouse clicks and neurons on Google and found a utility that is able to run from the command line and will return the BIOS identification information. This would seem to make it possible to write a .CMD or .BAT script that would compare the BIOS id with an IF statement to branch and then call the appropriate driver and application install scripts.

Download the SMBIOS tools here: http://desktopengineer.com/story_20050215082742328

Looks like it's the SMBIOSD link (D = DOS) that we are interested in using in our XP .CMD script; however, the SMBIOSW (W = Windows) version is fun to play with to learn what can be read from the BIOS of a particular system (if Windows is already installed).

So this windows version will give us a way to find the BIOS id computer model information to use in the .CMD script. Here's an example of the information I got when I run SMBIOSW and clicked on the "Type 1: System Information" link of the lower left window pane:

post-93944-1146033533_thumb.png

Ok I got a little geeked out and played with the DOS version and got this far with it... Look for the line (near the bottom) in the bios.txt output file that says "Product Name:" I think that's what your looking for! :thumbup

D:\>smbiosd /T:1 > bios.txt
D:\>type bios.txt

SMBIOSD -- Version 3.10
(C) Copyright 2000-2004 Qualitas, Inc. All rights reserved.
======================== SMBIOS Header ========================================
SMBIOS header is present at segment F043h.
SMBIOS Signature: '_SM_'
SMBIOS Checksum: 8Ah.
SMBIOS Struc Table Length: 31.
SMBIOS Revision #: 2.3.
SMBIOS Maximum Struc Size: 244.
SMBIOS Entry Point Revision: 0.
SMBIOS Reserved: 0000000000.
========================== DMI Header =========================================
DMI header is present at segment F044h.
DMI Signature: '_DMI_'
DMI Checksum: E8h.
DMI Struc Table Length: 2473.
DMI Struc Table Address: 000F0450h.
DMI # Strucs: 72.
DMI Revision #: 2.3.

══> Type 1: System Information
Struc length is 25 bytes.
Struc handle is 0100h.
Manufacturer: Dell Inc.
Product Name: Precision WorkStation 380
Version: (none)
Serial Number: 6CJWT91
Universal Unique ID #: 44454C4C4300104A8057B6C04F543931
Wake-Up Type: APM Timer

Ok at this point I got real geeked out because I realized this was now easy to do (so in MSFN.org style I just had to make a fancy example of how to do it) :) The biochoice.cmd script I created below runs silent without any visual output, but does pipe relevant output to the biochoice.log file. Just make sure the SMBIOSD.EXE command-line program is in the same directory as this .CMD script or edit the path to call SMBIOSD.EXE from whever it's at on your PC.

I haven't tested the SMBIOSD.EXE with many systems yet (you will all have to help) but if it works on a wide enough variety of PC's then this may become a new option for unattended installs!

@ECHO OFF
REM *** Delete old biochoice.log file if one already exists...
IF EXIST biochoice.log DEL /Q biochoice.log

ECHO.********************************************************** >> biochoice.log
ECHO.BIOCHOICE.CMD >> biochoice.log
ECHO. >> biochoice.log
ECHO.Used to identify a computers model name from the BIOS >> biochoice.log
ECHO.via the command line to make application and driver >> biochoice.log
ECHO.installation by model possible for unattended OS installs. >> biochoice.log
ECHO. >> biochoice.log
ECHO.Example script by Indy_DBA posted to MSFN Forums, >> biochoice.log
ECHO. www.msfn.org on April 26, 2006. >> biochoice.log
ECHO.********************************************************** >> biochoice.log
ECHO. >> biochoice.log

REM *** Dump BIOS Type 1 information into a file, this should include the "Product Name:" line
REM *** which should be the model of your computer, for example:
REM *** Product Name: Precision Workstation 380
ECHO.Extracting computer model information with SMBIOSD.EXE... >> biochoice.log

smbiosd /T:1 > bios.txt

REM *** Lookup the model of computer in the bios.txt file, then check the errorlevel
REM *** of the FIND command to determine if this model is contained in this bios.txt file
ECHO.Looking for a known computer model... >> biochoice.log

find "ACME GameBlaster 3000" bios.txt
if not errorlevel 1 goto Install-GB3000

find "Precision WorkStation 380" bios.txt >> biochoice.log
if not errorlevel 1 goto Install-Precision380

REM *** Write out an error file if no computer model found and then end program
echo.ERROR: No drivers or apps installed! Computer model not found by the biochoice.cmd script. >> biochoice.log

GOTO End-of-Program

:Install-Precision380
ECHO.Model Found: Executing install for Precision Workstation 380... >> biochoice.log
REM *** Call scripts to install Driver & Apps for the Precision Workstation 380
GOTO Common-Block

:Install-GB3000
ECHO.Model Found: Executing install for GameBlaster 3000... >> biochoice.log
REM *** Call scripts to install Driver & Apps for the GameBlaster 3000 PC
GOTO Common-Block

:Common-Block
ECHO.Executing Common install block... >> biochoice.log
REM *** Use this section to perform any tasks common to all computers
GOTO End-of-Program

:End-of-Program
ECHO.END of program reached... Have a nice day! >> biochoice.log
EXIT /B

Here you can see running the BIOCHOICE.CMD script isn't very exciting until you dump out the BIOCHOICE.LOG file...

In this example the computer model name matched a known model and called the appropriate sub-routine to begin driver and app installation. Note the script skipped over the GameBlaster 3000 model because it didn't match the information in the BIOS.TXT file.

D:\>biochoice.cmd

D:\>type biochoice.log

*****************************************************************************************
BIOCHOICE.CMD

Used to identify a computers model name from the BIOS via the command line
to make application and driver installation by model possible for unattended OS installs.

Example script by Indy_DBA posted to MSFN Forums, www.msfn.org on April 26, 2006.
*****************************************************************************************

Extracting computer model information with SMBIOSD.EXE...
Looking for a known computer model...

---------- BIOS.TXT
Product Name: Precision WorkStation 380
Model Found: Executing install for Precision Workstation 380...
Executing Common install block...
END of program reached... Have a nice day!

In this example the computer model was not found so an error was reported and the script aborted.

D:\CRS\Temp\smbiosd>biochoice.cmd

---------- BIOS.TXT

D:\CRS\Temp\smbiosd>type biochoice.log
*****************************************************************************************
BIOCHOICE.CMD

Used to identify a computers model name from the BIOS via the command line
to make application and driver installation by model possible for unattended OS installs.

Example script by Indy_DBA posted to MSFN Forums, www.msfn.org on April 26, 2006.
*****************************************************************************************

Extracting computer model information with SMBIOSD.EXE...
Looking for a known computer model...

How do you like them apples? :D

Link to comment
Share on other sites

Hi,

That's some good work with those scripts. However, there would be a problem with the scenario mentioned by Drakhan as he would need to run them before selecting the image he wants to deploy through RIS. This would mean executing the script during the RIS menu process, which I do not believe is possible.

Cheers,

Andy

Link to comment
Share on other sites

I was thinking he could make more of a single image that installs the correct drivers and applications based on the computer model info from a GUIRUNONCE after the RIS screens. It is also possible to boot a PE environment like WinPE or BartPE and run the biochoice.cmd script from there. In this scenario the correct Windows image could be launched for install from the PE environment instead of by the RIS screens.

I currently do something similar by PXE/RIS booting BartPE and having a simple menu of options available that runs from a menu.bat script from a network share.

Link to comment
Share on other sites

This was exactly what I needed. That was some kickass help there indy.

Im in awe :)

Im really excited about trying out the powers in WinPE. Had any experience with WinPe and installing WinXP etc?

Link to comment
Share on other sites

Haven't used WinPE (yet) even though my company is a Microsoft Gold Certified partner and I have both the 2004 & 2005 copies of WinPE on my desk. I opted for PEBuilder to create the BartPE environment instead. http://www.nu2.nu/pebuilder/

You pretty much have to be a Microsoft partner, have a Windows Software Assurance contract, or be a Microsoft powered University to get a copy of WinPE legally. (well at least last time I checked) Which is why Bart created PE Builder (his company didn't meet any of these criteria which is true for most of the world's users of Windows I suspect). It's interesting to see the mega sized corporations that have choosen BartPE (when you know they could afford to buy any PE solution they wanted) Check the Donated Hardware list on this page http://www.nu2.nu/thanks/bart/#hardware

I realize from your original post you cannot rely on non-commercial free-ware type software solutions so I would say give WinPE a go. There are plenty of others on the MSFN forum with tons of WinPE experience.

Remember the trick to making this work relies on if the SMBIOSD.EXE can successfully read the Type 1 BIOS information to display the model name of the computer. So a first step would be to run SMBIOSD or SMBIOSW on your target models to make sure they display the model name.

I have already found one Intel server that SMBIOS won't read the model name from. :( But have had good luck on the PC's I have tried this on. :)

Update on 4/27/2006> I found this was because Intel doesn't build "systems" only "parts" so they don't publish Type 1 BIOS data that says the name of the system, instead look at Type 2 BIOS data (Base Board Information) and use the Product Name of the mother board...check the image below! :thumbup

post-93944-1146119303_thumb.png

With the board name D875PBZ I can still determine the chipset driver that needs to be installed. For boards that have built-in video, sound, nic, etc knowing the mobo name is enough to automate the install of all drivers and apps.

Edited by indy_dba
Link to comment
Share on other sites

Hi Indy,

That was an awsome works that you put up there. I will tell you the current environment that I am working in now. We have a QA lab that runs about 1000 Dell machines which has about 10 different models. The challenge is to come up with the ghost system that will allow users to boot with CD (BartPE), determine system type, come up with menu for OS type, from here user will select OS he/she wants and get ghost image. The system will automatically eject CD and reboot once it finished getting the image. We currently have this kind of system running under DOS boot disk combined with Perl script. The problem with DOS is that it takes too long to download the image when running ghost with DOS. With bartPE, I am able to get the image much faster with ghost32. That's the reason why I like to automate the system running with BartPE bootdisk. So far, I am able to make the sytem bootup and autmate all the steps to ghost. From here, I can select ghost images manually, getting the image and reboot the system automatically after the machine finished getting the image. I can't make the machine eject the CD right after it got the image then reboot. I can only either eject the CD or have the system reboot, but I can't do both. Any ideas how to achive this? How about the menu that allow users slect the OS type? Thanks.

Link to comment
Share on other sites

You pretty much have to be a Microsoft partner, have a Windows Software Assurance contract, or be a Microsoft powered University to get a copy of WinPE legally.

Hi indy

I got WinPE legally (through a Microsoft Software Insurance contract) so im really excited about giving it a try in the near future.

The plan is to deploy Vista through WinPE next year.

regards and thanks again

Drakhan

Link to comment
Share on other sites

This was exactly what I needed. That was some kickass help there indy.

Im in awe :)

Im really excited about trying out the powers in WinPE. Had any experience with WinPe and installing WinXP etc?

I found another way for you to determine the make and model of the computer to facilitate driver and application installation based on BIOS data like Manufacturer and Model.

It's called WMIC for Windows Management Information Command (aka command-line utility) that runs from a .CMD or .BAT file to query EVERYTHING under the sun from SMBIOS info, Windows info, Hardware, User Accounts, Startup programs, just about anything you ever wanted to know about a Windows system via a command-line utiltiy! The best part is it's included in XP/2003 and I didn't have to install anything special to use it!

Go to a CMD prompt and type WMIC, it will install and then you will be inside a WMIC prompt (if it fails to install from the CMD window just do a Start/Run WMIC and press enter). Type /? to find the w-i-d-e array or commands. Read more on WMIC at http://www.microsoft.com/technet/prodtechn...y/wmic.mspx#ECD

Here's an example of some information you can retrieve, but there is LOTS more you can get at:

U:\>wmic
wmic:root\cli>csproduct get Name
Name
Precision WorkStation 380

wmic:root\cli>cpu get AddressWidth, CurrentClockSpeed, DeviceID, Name
AddressWidth CurrentClockSpeed DeviceID Name
32 2992 CPU0 Intel(R) Pentium(R) D CPU 3.00GHz
32 2992 CPU1 Intel(R) Pentium(R) D CPU 3.00GHz

wmic:root\cli>exit
Version

Here's an example of how to use it in a .CMD file:

U:\>wmic csproduct get Name, Vendor > whatami.txt
U:\>type whatami.txt

Name Vendor
Precision WorkStation 380 Dell Inc.

Hope this helps some trying to perform unattended installations out... I am addicted to query the WMI now! :D

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