Drakhan Posted April 25, 2006 Share Posted April 25, 2006 Hello guysI 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 More sharing options...
Fencer128 Posted April 25, 2006 Share Posted April 25, 2006 (edited) Hi,I strongly suggest that you should check out Bashrat's DriverPacks:http://www.msfn.org/board/index.php?showforum=111I 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 April 25, 2006 by Fencer128 Link to comment Share on other sites More sharing options...
Drakhan Posted April 25, 2006 Author Share Posted April 25, 2006 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 More sharing options...
Fencer128 Posted April 25, 2006 Share Posted April 25, 2006 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 driversI 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 More sharing options...
Drakhan Posted April 25, 2006 Author Share Posted April 25, 2006 I see your point but how will you eg. install lets say a specific application (not a driver) for a specific hw model with RISult?Thanks Link to comment Share on other sites More sharing options...
Fencer128 Posted April 25, 2006 Share Posted April 25, 2006 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 More sharing options...
indy_dba Posted April 26, 2006 Share Posted April 26, 2006 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_20050215082742328Looks 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: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! D:\>smbiosd /T:1 > bios.txtD:\>type bios.txtSMBIOSD -- 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 InformationStruc length is 25 bytes.Struc handle is 0100h.Manufacturer: Dell Inc.Product Name: Precision WorkStation 380Version: (none)Serial Number: 6CJWT91Universal Unique ID #: 44454C4C4300104A8057B6C04F543931Wake-Up Type: APM TimerOk 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 OFFREM *** Delete old biochoice.log file if one already exists...IF EXIST biochoice.log DEL /Q biochoice.logECHO.********************************************************** >> biochoice.logECHO.BIOCHOICE.CMD >> biochoice.logECHO. >> biochoice.logECHO.Used to identify a computers model name from the BIOS >> biochoice.logECHO.via the command line to make application and driver >> biochoice.logECHO.installation by model possible for unattended OS installs. >> biochoice.logECHO. >> biochoice.logECHO.Example script by Indy_DBA posted to MSFN Forums, >> biochoice.logECHO. www.msfn.org on April 26, 2006. >> biochoice.logECHO.********************************************************** >> biochoice.logECHO. >> biochoice.logREM *** Dump BIOS Type 1 information into a file, this should include the "Product Name:" lineREM *** which should be the model of your computer, for example:REM *** Product Name: Precision Workstation 380ECHO.Extracting computer model information with SMBIOSD.EXE... >> biochoice.logsmbiosd /T:1 > bios.txtREM *** 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 fileECHO.Looking for a known computer model... >> biochoice.logfind "ACME GameBlaster 3000" bios.txtif not errorlevel 1 goto Install-GB3000find "Precision WorkStation 380" bios.txt >> biochoice.logif not errorlevel 1 goto Install-Precision380REM *** Write out an error file if no computer model found and then end programecho.ERROR: No drivers or apps installed! Computer model not found by the biochoice.cmd script. >> biochoice.logGOTO End-of-Program:Install-Precision380ECHO.Model Found: Executing install for Precision Workstation 380... >> biochoice.logREM *** Call scripts to install Driver & Apps for the Precision Workstation 380GOTO Common-Block:Install-GB3000ECHO.Model Found: Executing install for GameBlaster 3000... >> biochoice.logREM *** Call scripts to install Driver & Apps for the GameBlaster 3000 PCGOTO Common-Block:Common-BlockECHO.Executing Common install block... >> biochoice.logREM *** Use this section to perform any tasks common to all computersGOTO End-of-Program:End-of-ProgramECHO.END of program reached... Have a nice day! >> biochoice.logEXIT /BHere 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.cmdD:\>type biochoice.log*****************************************************************************************BIOCHOICE.CMDUsed to identify a computers model name from the BIOS via the command lineto 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.TXTProduct Name: Precision WorkStation 380Model 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.TXTD:\CRS\Temp\smbiosd>type biochoice.log*****************************************************************************************BIOCHOICE.CMDUsed to identify a computers model name from the BIOS via the command lineto 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? Link to comment Share on other sites More sharing options...
Fencer128 Posted April 26, 2006 Share Posted April 26, 2006 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 More sharing options...
indy_dba Posted April 26, 2006 Share Posted April 26, 2006 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 More sharing options...
Drakhan Posted April 26, 2006 Author Share Posted April 26, 2006 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 More sharing options...
indy_dba Posted April 26, 2006 Share Posted April 26, 2006 (edited) 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/#hardwareI 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! 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 April 27, 2006 by indy_dba Link to comment Share on other sites More sharing options...
thesimpsons Posted April 26, 2006 Share Posted April 26, 2006 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 More sharing options...
Fencer128 Posted April 27, 2006 Share Posted April 27, 2006 Hi,If you want to go the BartPE route, check out:http://tomspeirs.co.uk/bartpeonris.htmIt's instructions on how to get it all working via RIS from my colleague.We use it here and it works very nicely indeed.Cheers,Andy Link to comment Share on other sites More sharing options...
Drakhan Posted April 27, 2006 Author Share Posted April 27, 2006 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 indyI 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 againDrakhan Link to comment Share on other sites More sharing options...
indy_dba Posted April 28, 2006 Share Posted April 28, 2006 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#ECDHere's an example of some information you can retrieve, but there is LOTS more you can get at:U:\>wmicwmic:root\cli>csproduct get NameNamePrecision WorkStation 380wmic:root\cli>cpu get AddressWidth, CurrentClockSpeed, DeviceID, NameAddressWidth CurrentClockSpeed DeviceID Name32 2992 CPU0 Intel(R) Pentium(R) D CPU 3.00GHz32 2992 CPU1 Intel(R) Pentium(R) D CPU 3.00GHzwmic:root\cli>exitVersionHere's an example of how to use it in a .CMD file:U:\>wmic csproduct get Name, Vendor > whatami.txtU:\>type whatami.txtName VendorPrecision WorkStation 380 Dell Inc.Hope this helps some trying to perform unattended installations out... I am addicted to query the WMI now! Link to comment Share on other sites More sharing options...
Recommended Posts
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 accountSign in
Already have an account? Sign in here.
Sign In Now