anyweb Posted October 27, 2008 Report post Posted October 27, 2008 One of the big problems with deploying computers today is getting all drivers installed correctly, some drivers will install just fine using the standard PNP (plug and play) routines within Windows Setup providing of course that you have first added the drivers to driver packages and distributed them to your distribution point(s), some drivers however are not so easy to install and require an application to be run in order for the hardware to function, examples are Bluetooth, Wireless, 3G amonsgt others. These applications contain the drivers needed plus several support files/apps and what not. Therefore you need to have a method of installing applications and in addition you need to be able to target what hardware these applications get installed onto (you don't want wireless drivers being pushed out onto a non-wireless desktop for example. In the example below we will deploy an application called Quickset on a Dell Latitude D430, and I will quide you through the processes needed to get you there. Obviously you can replace the Hardware type with whatever model you are using and in addition you can use whatever application/driver you wish, the purpose of this guide is to show you how to target selected hardware Get the Application download the following file and run it on a test Dell computer, it will decompress the files to c:\dell\drivers\R180762, copy that folder and all files in it to your drivers share on your SCCM server (eg: \\servername\drivers\R180762) 2008-10-27 09:29 <DIR> .2008-10-27 09:29 <DIR> .. 2008-02-22 17:04 8 413 184 QuickSet.msi 2007-08-08 16:10 8 544 readme.html 2008-02-22 16:49 230 680 Setup.exe 2008-05-21 20:24 688 Version.txt Create a Package Ok now that we have the files, and copied them to our SCCM drivers share, we need to create a package in SCCM, so open the Software Distribution node and expand Packages. Right click on Packages and choose New, Package. When the Wizard appears fill in the general details place a checkmark in this package contains source files and click on Set fill in the path to where you copied the driver (a driver share on your SCCM server) and place a checkmark in update distribution points on a schedule this will allow you to update versions of this application by simply copying the files to that folder... click next and leave data access settings as they are set the Distribution Settings to High for sending priority leave reporting and security as default review the summary and verify all green ticks, then click close at the confirmation screen Quote Share this post Link to post Share on other sites More sharing options...
anyweb Posted October 27, 2008 Report post Posted October 27, 2008 Create a Program ok now that we've created our package above, let's create a program (needed to install the application). Highlight the package, expand it and right-click on Programs, select New, Program. when the wizard appears, type Applications for category type, fill in the other details and click browse make sure to select file type to All files and then highlight quickset.msi and click open then paste in the folllowing line msiexec.exe /i "QuickSet.msi" /qn -silent REBOOT=ReallySuppress and click next, the switches were taken from the README.HTML file provided with this application On the requirements screen we can decide how long this application is allowed to take to install and on what OS types it can be installed on for Environment make sure that whether or not a user is logged on is highlighted from the choices available otherwise this will not work on the Advanced screen, also make sure that Allow this program to be installed from the Install software Task Sequence without being advertised is selected for the Windows Installer and MOM Maintenance screens stay with the defaults, click next at the summary and close at the confirmation Quote Share this post Link to post Share on other sites More sharing options...
anyweb Posted October 27, 2008 Report post Posted October 27, 2008 Distribute the Package and update distribution points Now that we have created our Package and created a program for it, we need to create a distribution point for it and then update that distribution point with the package. Right click on Distribution Points beside our newly created package and select New Distribution Points. click next when the Wizard appears and select the first distribution point (do not select the PXE DP as this is not a boot image....) click next and then close at the summary screen. Now that we've created a Distribution Point let's Update it, right click on our packages Distritbution Points and choose Update Distribution Points answer Yes when prompted Quote Share this post Link to post Share on other sites More sharing options...
anyweb Posted October 27, 2008 Report post Posted October 27, 2008 Identify the hardware name in WMI Now we need to query WMI to find out the hardware name (we'll need it for later). Open a command prompt on your client hardware (the machines you intend to be deploying to....) and type wmic To find out the model name type this CSProduct Get Name The result is what we need Below is a sample output from a Dell Optiplex 745 Microsoft Windows XP [Version 5.1.2600]© Copyright 1985-2001 Microsoft Corp. X:\>wmic wmic:root\cli>CSProduct Get Name Name OptiPlex 745 wmic:root\cli> Quote Share this post Link to post Share on other sites More sharing options...
anyweb Posted October 27, 2008 Report post Posted October 27, 2008 Edit the Task Sequence Now we need to edit our Task Sequence to add the conditions necessary to selectively install applications/drivers, so expand the Operating system deployment node and expand Task Sequences and select a Task Sequence. Right click on it and choose Edit. When the Task Sequence appears, highlight Setup windows and ConfigMgr and then click on the Add drop down menu click on New Group from the choices when the New Group appears, change it's name to Dell Latitude D430 Adding the WMI Query to detect our Model type Now click on the Options Tab and then click on the Add Condition drop down menu, choose Query WMI Paste the following code in to the WQL Query box SELECT * FROM Win32_ComputerSystem WHERE Model Like "%Latitude D430%" You can even test your query by clicking on the Test Query button (will return 1 if true, 0 if not) Click on Ok and then click on the Properties Tab again. Add the Quickset Application to the Task Sequence click on the Add drop menu again, and choose General then Install Software change the Name from Install software to Quickset and then click on the browse button select the Dell Quickset package from the list ... and click ok then apply and that's it, you can now do a test deployment to see the Dell Quickset application installing itself on Dell Latitude D430's, once you've succeeded in the above you can broaden this further by installing applications like Intel Proset Quote Share this post Link to post Share on other sites More sharing options...
deconinckg Posted March 30, 2009 Report post Posted March 30, 2009 Dear anyweb, I'm still new at this forum, and I'm kinda new at sccm to. For now i only tested on WDS with deployments. My question is related to one of your posts about drivers to be included in the deployment. QUOTE (anyweb @ Oct 27 2008, 02:40 PM) Paste the following code in to the WQL Query box CODE SELECT * FROM Win32_ComputerSystem WHERE Model Like "%Latitude D430%" I would like to know if the query he runs is to automatically install this driver when deployment occurs. Or is this just so he only will give you the option to select the drivers which you need and can select them. I ask this question cause i wanna do the same like you did here, with the model name. But i would also wanna know if he knows the difference between operating systems. You need different drivers for xp and vista. And I wouldn't want him to install bad drivers on the wrong OS, if he automaticaly would select the drivers without askign an option or without knowing wich operation system it is. But like i said i'm still not entirely up and running with sccm. I'm still doing researches, before actually testing it in a virtual environment. I hope to hear a reply soon from you and hope my question was clear enough for you. Quote Share this post Link to post Share on other sites More sharing options...
anyweb Posted March 30, 2009 Report post Posted March 30, 2009 if you notice the WMI query takes place in a GROUP, and the reason for that is it 'asks' the machine what it is, and if it matches what we expect it to be, then and only then does it do all the individual STEPS within that group (quickset and whatever else you add), so if it is NOT a D430 then it will not install anything within the D430 group and it will skip the group completely and go to the next step in the task sequence. I wouldn't mix operating systems types within a task sequence, that's just asking for trouble, it's probably possible but i wouldn't do it that way i hope this helps cheers anyweb Quote Share this post Link to post Share on other sites More sharing options...
deconinckg Posted April 2, 2009 Report post Posted April 2, 2009 Well in the meantime i have been installing SCCM on a test server we have here. I configured everything but i seem to miss something important. I'm guessing its the drivers. I have added all drivers and put them into packages. The networkdrivers I added to the the boot image I use for x86. Also the script you shoed for wmi is configured but i don't get there yet to test it. I have tried both for virtual pc (with the VM Drivers that are needed and for the pc i searched for the vista drivers) Cause we boot up in WINPE, that is based on vista we need vista drivers. But I still get the same problem. Problem i'm getting is that it gets a dynamic ip, and it loads the windows file. Then windows is starting up and after preparing network connections its stays there doing nothing for a while and then just reboots. Ending in a loop :s I'm wondering if I did something wrong or if you might know where the problem is. Greetz Quote Share this post Link to post Share on other sites More sharing options...
anyweb Posted April 2, 2009 Report post Posted April 2, 2009 Problem i'm getting is that it gets a dynamic ip, and it loads the windows file. Then windows is starting up and after preparing network connections its stays there doing nothing for a while and then just reboots. Ending in a loop :s I'm wondering if I did something wrong or if you might know where the problem is. Greetz you'll need to review your SMSTS.log file to find out why read this post for details of that http://www.windows-noob.com/forums/index.php?showtopic=546 Quote Share this post Link to post Share on other sites More sharing options...
murda Posted May 20, 2009 Report post Posted May 20, 2009 Anyweb, Perhaps you know how to deploy multiple applications (software) in one task sequence working with variables? If you would care to explain to the community? Quote Share this post Link to post Share on other sites More sharing options...
anyweb Posted May 21, 2009 Report post Posted May 21, 2009 hi Murda it's not hard, here is how you do it http://www.myitforum.com/forums/SCCM_task_...m_199915/tm.htm cheers anyweb Quote Share this post Link to post Share on other sites More sharing options...
murda Posted May 25, 2009 Report post Posted May 25, 2009 hi Murda it's not hard, here is how you do it http://www.myitforum.com/forums/SCCM_task_...m_199915/tm.htm cheers anyweb I'll try that and see if it works Quote Share this post Link to post Share on other sites More sharing options...
anyweb Posted May 25, 2009 Report post Posted May 25, 2009 feel free to start a new topic explaining how you did it with screenshots :-) Quote Share this post Link to post Share on other sites More sharing options...
Boyd Posted September 16, 2009 Report post Posted September 16, 2009 I'm doing this for a Lenovo ThinkCenter M58. I had to use CSProduct Get Version to get "ThinkCenter M58". Will this work the same as the previous SELECT statement? SELECT * FROM Win32_ComputerSystem WHERE model Like "%ThinkCentre M58%" Or, would I have to change a part of it? Quote Share this post Link to post Share on other sites More sharing options...
anyweb Posted September 16, 2009 Report post Posted September 16, 2009 if you follow the guide above it will work so......... open a command prompt as it says and type wmic To find out the model name type this CSProduct Get Name The result is what we need once you have the result you can do this SELECT * FROM Win32_ComputerSystem WHERE model Like "%result%" obviously replace result in the above with the answer you got back from the CSProduct Get Name test Quote Share this post Link to post Share on other sites More sharing options...
Boyd Posted September 16, 2009 Report post Posted September 16, 2009 On this lenovo, using "Name" gave me the model number that is different, but for now, I only needed to know that it was a "M58", so I had to use "Version". Wierd, but the script used "Where Version". It's working right now, but for some reason, it's taking a very long time to run my first driver install. It's just a Universal Audio Architect driver that runs "update.exe -s" and when I ran it, it ran very fast. I'd say it ran within a minute or two, but right now, it seems like I'm coming up on about 20 minutes or so. It just finished and is continuing with the other installs. Those seem to go significantly faster. I'm confused. Quote Share this post Link to post Share on other sites More sharing options...
Boyd Posted September 16, 2009 Report post Posted September 16, 2009 On this lenovo, using "Name" gave me the model number that is different, but for now, I only needed to know that it was a "M58", so I had to use "Version". Wierd, but the script used "Where Version". It's working right now, but for some reason, it's taking a very long time to run my first driver install. It's just a Universal Audio Architect driver that runs "update.exe -s" and when I ran it, it ran very fast. I'd say it ran within a minute or two, but right now, it seems like I'm coming up on about 20 minutes or so. It just finished and is continuing with the other installs. Those seem to go significantly faster. I'm confused. Weird. After everything ran, the USB Keyboard and USB Mouse aren't functioning. I tried plugging in a PS/2 Mouse and it wouldn't work either. Quote Share this post Link to post Share on other sites More sharing options...
shamez Posted September 22, 2009 Report post Posted September 22, 2009 I'm doing this for a Lenovo ThinkCenter M58. I had to use CSProduct Get Version to get "ThinkCenter M58". Will this work the same as the previous SELECT statement? SELECT * FROM Win32_ComputerSystem WHERE model Like "%ThinkCentre M58%" Or, would I have to change a part of it? I am currently using M58 and when I do a CSProduct Get Name for an M58 I get a 7373APU and 7360APU. Not ThinkCentre M58. CSProduct Get Name pulls the model name. Hope this helps. Quote Share this post Link to post Share on other sites More sharing options...
boognish Posted October 13, 2009 Report post Posted October 13, 2009 SELECT * FROM Win32_ComputerSystem WHERE Model Like "%Latitude D430%" If I wanted to install a certain piece of software to all Latitudes would I simply take off the D430? Quote Share this post Link to post Share on other sites More sharing options...
anyweb Posted October 13, 2009 Report post Posted October 13, 2009 indeed, try it ! SELECT * FROM Win32_ComputerSystem WHERE Model Like "%Latitude%" Quote Share this post Link to post Share on other sites More sharing options...
boognish Posted October 13, 2009 Report post Posted October 13, 2009 I had to use CSProduct Get Version to get "ThinkCenter M58". Will this work the same as the previous SELECT statement? SELECT * FROM Win32_ComputerSystem WHERE model Like "%ThinkCentre M58%" Or, would I have to change a part of it? I have the same problem. It looks like Lenovo does things a bit different. I cant do a query to cover all "ThinkPads", I have to know all product "types" such as 6463 for a T61. If there is another way, Im all ears. Quote Share this post Link to post Share on other sites More sharing options...
wmmayms Posted October 14, 2009 Report post Posted October 14, 2009 I have the same problem. It looks like Lenovo does things a bit different. I cant do a query to cover all "ThinkPads", I have to know all product "types" such as 6463 for a T61. If there is another way, Im all ears. This query will target all thinkpad computers. select * from SMS_R_System inner join SMS_G_System_COMPUTER_SYSTEM_PRODUCT on SMS_G_System_COMPUTER_SYSTEM_PRODUCT.ResourceID = SMS_R_System.ResourceId where SMS_G_System_COMPUTER_SYSTEM_PRODUCT.Version like "ThinkPad%" enjoy Quote Share this post Link to post Share on other sites More sharing options...
boognish Posted October 14, 2009 Report post Posted October 14, 2009 This query will target all thinkpad computers. select * from SMS_R_System inner join SMS_G_System_COMPUTER_SYSTEM_PRODUCT on SMS_G_System_COMPUTER_SYSTEM_PRODUCT.ResourceID = SMS_R_System.ResourceId where SMS_G_System_COMPUTER_SYSTEM_PRODUCT.Version like "ThinkPad%" enjoy Thanks!! Im a Noob, is it correct to assume that this cannot be used in a task sequence? Quote Share this post Link to post Share on other sites More sharing options...
wmmayms Posted October 14, 2009 Report post Posted October 14, 2009 Thanks!! Im a Noob, is it correct to assume that this cannot be used in a task sequence? This query is used for creating collections or console queries. If you wan´t to use it within a TS it will have to look a bit diffrent. Quote Share this post Link to post Share on other sites More sharing options...
boognish Posted October 14, 2009 Report post Posted October 14, 2009 This query is used for creating collections or console queries. If you wan´t to use it within a TS it will have to look a bit diffrent. Can you point me down a path? Quote Share this post Link to post Share on other sites More sharing options...