<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>garrymartin.com &#187; mdt2010</title>
	<atom:link href="http://www.garrymartin.com/blog/tag/mdt2010/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.garrymartin.com/blog</link>
	<description>Championing the subtle difference between &#34;easy&#34; and &#34;easy when you know how&#34; ;-)</description>
	<lastBuildDate>Thu, 29 Oct 2009 18:54:34 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9.2</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>Hardware Specific Application Targeting with MDT 2010</title>
		<link>http://www.garrymartin.com/blog/2009/10/hardware-specific-application-targeting-with-mdt-2010/</link>
		<comments>http://www.garrymartin.com/blog/2009/10/hardware-specific-application-targeting-with-mdt-2010/#comments</comments>
		<pubDate>Wed, 28 Oct 2009 00:06:10 +0000</pubDate>
		<dc:creator>Garry Martin</dc:creator>
				<category><![CDATA[Technology]]></category>
		<category><![CDATA[mdt]]></category>
		<category><![CDATA[mdt2010]]></category>

		<guid isPermaLink="false">http://www.garrymartin.com/blog/?p=111</guid>
		<description><![CDATA[I'm running a Proof of Concept (PoC) at work at the moment which is making use of Microsoft Deployment Toolkit (MDT) 2010. Whilst most of the drivers we need can be managed by using the Out-of-Box Drivers Import function, some are delivered by the OEM as .EXE or .MSI packages. Whilst we could use multiple [...]]]></description>
			<content:encoded><![CDATA[<p>I'm running a Proof of Concept (PoC) at work at the moment which is making use of <a href="http://technet.microsoft.com/en-us/solutionaccelerators/dd407791.aspx">Microsoft Deployment Toolkit (MDT) 2010</a>. Whilst most of the drivers we need can be managed by using the Out-of-Box Drivers Import function, some are delivered by the OEM as .EXE or .MSI packages. Whilst we could use multiple Task Sequences to manage these, or even select the applications individually at build time, our preference was to use some sort of hardware specific targeting.</p>
<h2>Process</h2>
<p>First of all, we needed to uniquely identify the hardware, and for this purpose we used the Plug and Play (PnP) Device ID, or hardware ID as it is sometimes called.</p>
<p><strong>To determine the hardware IDs for a device by using Device Manager:</strong></p>
<ol>
<li>Install the device on a test computer</li>
<li>Open DeviceManager</li>
<li>Find your device in the list</li>
<li>Right-click the entry for your device, and then click <strong>Properties</strong></li>
<li>In the <strong>Device Properties </strong>dialog box, click the <strong>Details </strong>tab</li>
<li>In the <strong>Property </strong>list, click <strong>Hardware Ids</strong></li>
<li>Under <strong>Value</strong>, make a note of the characters displayed. They are arranged with the most specific at the top to the most general at the bottom. You can select one or more items in the list, and then press CTRL+C to copy them to the clipboard.</li>
</ol>
<p>In our case, the Sierra Wireless MC8755 Device gave us <strong>USB\VID_1199&amp;PID_6802&amp;REV_0001</strong> as the most specific value and <strong>USB\VID_1199&amp;PID_6802</strong> as the least specific, so we made a note of these before continuing.</p>
<p>Next, we downloaded the Sierra Wireless MC87xx 3G Watcher .MSI package from our notebook OEM support site. Sierra Wireless have instructions for <a href="http://sierrawireless.custhelp.com/app/answers/detail/a_id/584">performing a silent install</a> of the 3G Watcher package, so we used those to understand the installation command we would need to use.</p>
<p>So, we had a unique ID for targeting, the installation package, and the installation command line we would need to use. Now we needed to configure MDT to deploy it. First, we create a <strong>New Application</strong>.</p>
<ol>
<li>In the MDT 2010 Deployment Workbench console tree, right-click <strong>Applications</strong>, and click <strong>New Application</strong></li>
<li> On the <strong>Application Type</strong> page, click <strong>Next </strong>to install an application and copy its source files to the deployment share</li>
<li> On the <strong>Details </strong>page, type the application's name in the <strong>Application Name</strong> box, and click <strong>Next</strong></li>
<li> On the <strong>Source </strong>page, type the path or browse to the folder containing the application's source files, and click <strong>Next</strong></li>
<li> On the <strong>Destination </strong>page, click <strong>Next </strong>to use the default name for the application in the deployment share</li>
<li> On the <strong>Command Details</strong> page, type the command you want to use to install the application, and click <strong>Next</strong>. We used the following<br /><code>msiexec.exe /i 3GWatcher.msi /qn</code></li>
<li> On the <strong>Summary </strong>page, review the application's details, and click <strong>Next</strong></li>
<li>On the <strong>Confirmation </strong>page, click <strong>Finish </strong>to close the <strong>New Application Wizard.</strong></li>
</ol>
<p>Next we modify the Task Sequence and create our query.</p>
<ol>
<li>In the MDT 2010 Deployment Workbench console tree, click <strong>Task Sequences</strong><strong></strong></li>
<li> In the details pane, right-click the name of the Task Sequence you want to add the Application to, and then click <strong>Properties</strong></li>
<li>In the Task Sequence <strong>Properties </strong>dialog box, click the <strong>Task Sequence </strong>tab</li>
<li>Expand <strong>State Restore </strong>and click on <strong>Install Applications</strong></li>
<li>Click the <strong>Add </strong>button, and select <strong>General</strong>, then <strong>Install Application</strong></li>
<li>On the <strong>Properties </strong>tab for <strong>Install Application</strong>, type the application's name in the <strong>Name </strong>box, and click the <strong>Options </strong>tab</li>
<li>On the <strong>Options</strong> tab, click the <strong>Add </strong>button and select <strong>If statement</strong></li>
<li>On the <strong>Source </strong>page, type the path or browse to the folder containing the application's source files, and click <strong>Next</strong></li>
<li> In the <strong>If Statement Properties </strong>dialog box, ensure <strong>All Conditions </strong>is selected and click <strong>OK</strong></li>
<li>On the <strong>Options</strong> tab, click the <strong>Add </strong>button and select <strong>Query WMI</strong></li>
</ol>
<p>This is where we'll now use a WMI query that will provide our Hardware Specific Application Targeting. You'll need to modify this for your particular hardware, but we previously discovered that our least specific Device ID value was <strong>USB\VID_1199&amp;PID_6802</strong> so we will use this to help form our query.</p>
<ol>
<li>In the <strong>Task Sequence WMI Condition </strong>dialog box<strong>, </strong>ensure the <strong>WMI namespace </strong>is <strong>root\cimv2 </strong>and type the following in the <strong>WQI Query </strong>text box, clicking <strong>OK </strong>when finished</li>
<p><code>SELECT * FROM Win32_PNPEntity WHERE DeviceID LIKE &#039;%VID_1199&amp;PID_6802%&#039;</code></p>
<li>Click <strong>OK </strong>to exit the <strong>Task Sequences </strong>dialog box</li>
</ol>
<p>And that's it. When you deploy a computer using the modified Task Sequence, the WMI query will run and, if matched, install the application. If a match can't be found, the application won't be installed. Hardware Specific Application Targeting in a nutshell.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.garrymartin.com/blog/2009/10/hardware-specific-application-targeting-with-mdt-2010/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
