<?xml version="1.0" encoding="utf-8"?>
<rss xmlns:atom="https://www.w3.org/2005/Atom" xmlns:sy="https://purl.org/rss/1.0/modules/syndication/" xmlns:dc="https://purl.org/dc/elements/1.1/" xmlns:content="https://purl.org/rss/1.0/modules/content/" xmlns:wfw="https://wellformedweb.org/CommentAPI/" xmlns:slash="https://purl.org/rss/1.0/modules/slash/"
  version="2.0">
  <channel>
    <title>Russ Rimmerman - ConfigMgr Guy</title>
    <atom:link
      href="https://docs.microsoft.com/archive/blogs/configmgr_geek_speak/feed.xml"
      rel="self"
      type="application/rss+xml" />
    <link>https://docs.microsoft.com/archive/blogs/configmgr_geek_speak/feed.xml</link>
    <description>Russ Rimmerman - Microsoft Sr. Premier Field Engineer - ConfigMgr / Configuration Manager</description>
    <lastBuildDate>Mon, 04 Mar 2019 00:21:11 GMT</lastBuildDate>
    <language>en-US</language>
    <sy:updatePeriod>hourly</sy:updatePeriod>
    <sy:updateFrequency>1</sy:updateFrequency>
    <item>
      <title>Looking at PKI certificates using ConfigMgr (SCCM) Compliance Settings</title>
      <link>https://docs.microsoft.com/archive/blogs/configmgr_geek_speak/looking-at-pki-certificates-using-configmgr-sccm-compliance-settings</link>
      <pubDate>Mon, 04 Mar 2019 00:19:55 GMT</pubDate>
      <dc:creator><![CDATA[Russ Rimmerman [MSFT]]]></dc:creator>
      <guid
        isPermaLink="false">https://blogs.technet.microsoft.com/configmgr_geek_speak/?p=1535</guid>
      <description><![CDATA[I recently had a request for a way to determine if a specific PKI certificate was installed on...]]></description>
      <content:encoded><![CDATA[<p><span style="color:#333333;font-family:Georgia">I recently had a request for a way to determine if a specific PKI certificate was installed on clients or not.  To accomplish this task, I decided the easiest method would be to create a simple PowerShell script which would check for the existence of the certificate, and then use the infinitely powerful Compliance Settings feature of Configuration Manager to run the script and report back the results.
</span></p><p><span style="color:#333333;font-family:Georgia">First, here's a snip of the details of a sample certificate I wanted to check for.  Notice that the Issuer is "russlab-LABHOST-CA".  You could check the certificates Issuer, Subject, or any other property, but in my case, I'm going to look for the Issuer.
</span></p><p><a href="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/94/77/metablogapi/image_24D97D8A.png"><img src="https://msdnshared.blob.core.windows.net/media/2019/03/030419_0020_LookingatPK1.png" alt="" border="0" /></a><span style="color:#333333;font-family:Georgia">
		</span></p><p><span style="color:#333333;font-family:Georgia">You have two options for running PowerShell scripts on clients, one is to sign the script with a trusted certificate, and the other is to set the PowerShell execution policy to "Bypass".  In my example, I won't be signing my PowerShell script, so I will go into Administration-&gt;Client Settings and select the default or create a new Client Settings.  Then go into the "Computer Agent" section of the client settings, and set the PowerShell execution policy to "Bypass".  This allows unsigned PowerShell scripts to execute when executed by the Computer Agent.  If you don't use the default client settings, you'll also need to make sure the custom client settings you created are also deployed to the collection you will be checking compliance on.
</span></p><p><a href="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/94/77/metablogapi/image_2403A851.png"><img src="https://msdnshared.blob.core.windows.net/media/2019/03/030419_0020_LookingatPK2.png" alt="" border="0" /></a><span style="color:#333333;font-family:Georgia">
		</span></p><p><span style="color:#333333;font-family:Georgia">Now, go to Assets and Compliance-&gt;Compliance Settings-&gt;Configuration Items and click "Create Configuration Item".  The Create CI Wizard will appear.  Give it a meaningful name, select any categories if desired, and click "Next".
</span></p><p><a href="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/94/77/metablogapi/image_4755BE58.png"><img src="https://msdnshared.blob.core.windows.net/media/2019/03/030419_0020_LookingatPK3.png" alt="" border="0" /></a><span style="color:#333333;font-family:Georgia">
		</span></p><p><span style="color:#333333;font-family:Georgia">Select which operating systems are applicable and click "Next"
</span></p><p><a href="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/94/77/metablogapi/image_1D0BA7DF.png"><img src="https://msdnshared.blob.core.windows.net/media/2019/03/030419_0020_LookingatPK4.png" alt="" border="0" /></a><span style="color:#333333;font-family:Georgia">
		</span></p><p><span style="color:#333333;font-family:Georgia">Click "New" to add a new setting to the CI.
</span></p><p><a href="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/94/77/metablogapi/image_0C2994A0.png"><img src="https://msdnshared.blob.core.windows.net/media/2019/03/030419_0020_LookingatPK5.png" alt="" border="0" /></a><span style="color:#333333;font-family:Georgia">
		</span></p><p><span style="color:#333333;font-family:Georgia">Give the setting a meaningful name, change the Setting type to "Script" and leave the Data type "String".  Then click "Add Script"
</span></p><p><a href="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/94/77/metablogapi/image_0AE78C72.png"><img src="https://msdnshared.blob.core.windows.net/media/2019/03/030419_0020_LookingatPK6.png" alt="" border="0" /></a><span style="color:#333333;font-family:Georgia">
		</span></p><p><span style="color:#333333;font-family:Georgia">Here's the PowerShell script I created for this demonstration.  It first sets a variable called "Compliance" to a value of "Compliant".  This way, if the certificate does NOT exist, we will call the machine compliant.  If the certificate DOES exist, we will set the Compliance variable to "Non-Compliant".  This assumes you do not want this certificate to be on any client.  If you want to make sure the cert IS on the clients, you can either flip things around in the script, or set the string to "Non-Compliant" instead of "Compliant" in the upcoming step.  You can massage the $Check = line to meet your specific needs.  The next line says if the results of the $Check has any data in it, set the variable $Compliance to "Non-Compliant".  Otherwise, it will still be set to "Compliant" because of the first line.  Finally, we echo out the value of $Compliance so ConfigMgr has something to go on.
</span></p><p><a href="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/94/77/metablogapi/image_49DE2E6F.png"><img src="https://msdnshared.blob.core.windows.net/media/2019/03/030419_0020_LookingatPK7.png" alt="" border="0" /></a><span style="color:#333333;font-family:Georgia">
		</span></p><p><span style="color:#333333;font-family:Georgia">Here it is again in copy/paste friendly format:
</span></p><p><span style="color:#333333;font-family:Georgia">$Compliance = 'Compliant'<br />$Check = get-childitem -path cert:\localmachine -recurse | where-object {$_.Issuer -like '*RussLab*'}<br />If ($Check) {$Compliance = 'Non-Compliant'}<br />$Compliance
</span></p><p><span style="color:#333333;font-family:Georgia">Now that you've pasted the script in, click the "Compliance Rules" tab and click "New" to add a new rule.
</span></p><p><a href="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/94/77/metablogapi/image_34EF3CAD.png"><img src="https://msdnshared.blob.core.windows.net/media/2019/03/030419_0020_LookingatPK8.png" alt="" border="0" /></a><span style="color:#333333;font-family:Georgia">
		</span></p><p><span style="color:#333333;font-family:Georgia">Give the rule a meaningful name, and put the word "Compliant" into the values.  As mentioned earlier, if you want to make sure the cert DOES exist on the machine, change this to "Non-Compliant" instead.  Select a severity level for Noncompliance and click "OK".
</span></p><p><a href="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/94/77/metablogapi/image_6D304476.png"><img src="https://msdnshared.blob.core.windows.net/media/2019/03/030419_0020_LookingatPK9.png" alt="" border="0" /></a><span style="color:#333333;font-family:Georgia">
		</span></p><p><span style="color:#333333;font-family:Georgia">Next, Next through the wizard until the CI wizard completes.
</span></p><p><span style="color:#333333;font-family:Georgia">Now go to Configuration Baselines and click "Create Configuration Baseline"
</span></p><p><span style="color:#333333;font-family:Georgia">Click "Add", and select "Configuration Items"
</span></p><p><span style="color:#333333;font-family:Georgia">Add the CI you just created, select any assigned categories if you wish, and click "OK" a couple of times until the Create Baseline wizard completes.
</span></p><p><a href="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/94/77/metablogapi/image_45202608.png"><img src="https://msdnshared.blob.core.windows.net/media/2019/03/030419_0020_LookingatPK10.png" alt="" border="0" /></a><span style="color:#333333;font-family:Georgia">
		</span></p><p><span style="color:#333333;font-family:Georgia">Now, right-click the new Configuration Baseline you just created and select "Deploy".
</span></p><p><span style="color:#333333;font-family:Georgia">Click "Browse" and select the collection you want to check for the existence of the certificate on.  Select a schedule of how often you want to check the clients.
</span></p><p><a href="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/94/77/metablogapi/image_4D39E30E.png"><img src="https://msdnshared.blob.core.windows.net/media/2019/03/030419_0020_LookingatPK11.png" alt="" border="0" /></a><span style="color:#333333;font-family:Georgia">
		</span></p><p><span style="color:#333333;font-family:Georgia">Click OK to complete the Deploy Configuration Baselines wizard.
</span></p><p><span style="color:#333333;font-family:Georgia">Now, initiate a Machine Policy Retrieval on your test client to speed things along a bit, and then go to the Configuration tab.  Once it appears, click the ''Evaluate" button to once again speed things along a bit.
</span></p><p><a href="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/94/77/metablogapi/image_579028D0.png"><img src="https://msdnshared.blob.core.windows.net/media/2019/03/030419_0020_LookingatPK12.png" alt="" border="0" /></a><span style="color:#333333;font-family:Georgia">
		</span></p><p><span style="color:#333333;font-family:Georgia">As you can see, it will come back with either Compliant or Non-Compliant.  In my demo, it came back as Non-Compliant because I didn't want the certificate to exist on my clients, but it does exist.
</span></p><p><span style="color:#333333;font-family:Georgia">
		</span></p><p><span style="color:#333333;font-family:Georgia">Now, you can also run a built-in report like "Summary compliance by configuration baseline" or another preferred report.
</span></p><p><span style="color:#333333;font-family:Georgia">Voila!  Now I know that my client has the certificate on it that I don't want it to have!
</span></p><p><a href="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/94/77/metablogapi/image_2F16681E.png"><img src="https://msdnshared.blob.core.windows.net/media/2019/03/030419_0020_LookingatPK14.png" alt="" border="0" /></a><span style="color:#333333;font-family:Georgia">
		</span></p><p><span style="color:#333333;font-family:Georgia">Now, what if you want to verify that you have your "ConfigMgr Client Certificate" on all your clients before enabling HTTPS across the board?  The challenge with this is if you followed the directions on TechNet to a T, you don't have any friendly name to search on, and only the certificate template is something unique to look for.
</span></p><p><span style="color:#333333;font-family:Georgia">A script like the one below pasted into your CI will accomplish this verification (assuming you named your ConfigMgr Client Certificate template the same as mine if you followed <a href="https://technet.microsoft.com/en-us/library/gg682023.aspx" title="https://technet.microsoft.com/en-us/library/gg682023.aspx#BKMK_client2008_cm2012">https://technet.microsoft.com/en-us/library/gg682023.aspx#BKMK_client2008_cm2012</a> to create your ConfigMgr client certificate templates.  If not, just modify the Template –eq line to meet your needs to match your template.)
</span></p><p style="background: white"><span style="font-family:Lucida Console;font-size:9pt"><span style="color:orangered">$cert</span>
			<span style="color:darkgray">=</span>
			<span style="color:blue">Get-ChildItem</span>
			<span style="color:blueviolet">Cert:\localmachine\My</span>
			<span style="color:darkgray">|</span>
		</span></p><p style="background: white"><span style="font-family:Lucida Console;font-size:9pt">
			<span style="color:blue">%</span> {
</span></p><p style="background: white"><span style="font-family:Lucida Console;font-size:9pt">
			<span style="color:orangered">$_</span>
			<span style="color:darkgray">|</span>
			<span style="color:blue">Select</span> `
</span></p><p style="background: white"><span style="font-family:Lucida Console;font-size:9pt">
			<span style="color:blueviolet">Friendlyname<span style="color:darkgray">,</span>
			</span></span></p><p style="background: white"><span style="font-family:Lucida Console;font-size:9pt">
			<span style="color:blueviolet">Thumbprint<span style="color:darkgray">,</span>
			</span></span></p><p style="background: white"><span style="font-family:Lucida Console;font-size:9pt">        @{N<span style="color:darkgray">=<span style="color:darkred">"Template"</span>;E=</span>{(<span style="color:orangered">$_<span style="color:darkgray">.</span>Extensions <span style="color:darkgray">|</span>
			</span></span></p><p style="background: white"><span style="font-family:Lucida Console;font-size:9pt">
			<span style="color:blue">?</span>{<span style="color:orangered">$_<span style="color:darkgray">.</span>oid<span style="color:darkgray">.</span>Friendlyname <span style="color:darkgray">-match</span>
				<span style="color:darkred">"Certificate Template Information"</span>})<span style="color:darkgray">.</span>Format(<span style="color:purple">0</span>) `
</span></span></p><p style="background: white"><span style="font-family:Lucida Console;font-size:9pt">
			<span style="color:darkgray">-replace</span>
			<span style="color:darkred">"(.+)?=(.+)\((.+)?"<span style="color:darkgray">,</span> '$2'</span>}}<span style="color:darkgray">,</span>
		</span></p><p style="background: white"><span style="font-family:Lucida Console;font-size:9pt">        @{N<span style="color:darkgray">=<span style="color:darkred">"Subject"</span>;E=</span>{<span style="color:orangered">$_<span style="color:darkgray">.</span>SubjectName<span style="color:darkgray">.</span>name}}
</span></span></p><p style="background: white"><span style="font-family:Lucida Console;font-size:9pt">    }
</span></p><p style="background: white"><span style="font-family:Lucida Console;font-size:9pt"><span style="color:darkblue">foreach</span> (<span style="color:orangered">$a</span>
			<span style="color:darkblue">in</span>
			<span style="color:orangered">$cert</span>)
</span></p><p style="background: white"><span style="font-family:Lucida Console;font-size:9pt">      {
</span></p><p style="background: white"><span style="font-family:Lucida Console;font-size:9pt">
			<span style="color:darkblue">if</span> (<span style="color:orangered">$a<span style="color:darkgray">.</span>Template <span style="color:darkgray">-eq</span>
				<span style="color:darkred">"ConfigMgr Client Certificate"</span>) {$Compliance</span>
			<span style="color:darkgray">=</span>
			<span style="color:darkred">"Compliant"</span>}
</span></p><p style="background: white"><span style="font-family:Lucida Console;font-size:9pt">      }
</span></p><p style="background: white"><span style="font-family:Lucida Console;font-size:9pt"><span style="color:orangered">$Compliance</span>
		</span></p><p style="background: white"> 
 </p><p><span style="color:#333333;font-family:Georgia">What if you want to just find out which web servers have Server Authentication certificates that are going to expire in 90 days?  An important thing to note here is certificates with an issuer starting with CN=MS-Organization-P2P-Access need excluded since they are pushed from AzureAD, and they also have an "Intended purpose" of Server Authentication even though they're on a workstation OS.
</span></p><p style="background: white"><span style="font-family:Lucida Console;font-size:9pt"><span style="color:orangered">$certchk</span>
			<span style="color:darkgray">=</span>
			<span style="color:blue">Get-ChildItem</span>
			<span style="color:navy">-Path</span>
			<span style="color:blueviolet">Cert:\LocalMachine\My</span>
			<span style="color:darkgray">|</span>
			<span style="color:blue">Where-Object</span> {<span style="color:orangered">$_<span style="color:darkgray">.</span>EnhancedKeyUsageList<span style="color:darkgray">.</span>FriendlyName <span style="color:darkgray">-eq</span>
				<span style="color:darkred">"Server Authentication"</span>
				<span style="color:darkgray">-and</span> $_<span style="color:darkgray">.</span>Issuer <span style="color:darkgray">-notlike</span>
				<span style="color:darkred">"CN=MS-Organization-P2P-Access*"</span>} <span style="color:darkgray">|</span>
				<span style="color:blue">Select-Object</span>
				<span style="color:navy">-Property</span>
				<span style="color:blueviolet">PSComputerName<span style="color:darkgray">,</span> Subject<span style="color:darkgray">,</span> @{n<span style="color:darkgray">=<span style="color:darkred">'ExpireInDays'</span>;e=</span>{(<span style="color:orangered">$_<span style="color:darkgray">.</span>notafter <span style="color:darkgray">–</span> (<span style="color:blue">Get-Date</span>))<span style="color:darkgray">.</span>Days}} <span style="color:darkgray">|</span>
						<span style="color:blue">Where-Object</span> {$_<span style="color:darkgray">.</span>ExpireInDays <span style="color:darkgray">-lt</span>
						<span style="color:purple">90</span>}
</span></span></span></span></p><p style="background: white"><span style="font-family:Lucida Console;font-size:9pt"><span style="color:darkblue">If</span> (<span style="color:darkgray">!</span>(<span style="color:orangered">$certchk</span>)) {<span style="color:orangered">$Compliance<span style="color:darkgray">=<span style="color:darkred">"Compliant"</span>}
</span></span></span></p><p style="background: white"><span style="font-family:Lucida Console;font-size:9pt"><span style="color:darkblue">Else</span> {<span style="color:orangered">$Compliance<span style="color:darkgray">=<span style="color:darkred">"Non-Compliant"</span>}
</span></span></span></p><p style="background: white"><span style="color:orangered;font-family:Lucida Console;font-size:9pt">$Compliance 
</span></p><p>
 </p><p><span style="color:#333333;font-family:Georgia">Enjoy!
</span></p>]]></content:encoded>
    </item>
    <item>
      <title>ConfigMgr Speculation Control Baseline FTW!</title>
      <link>https://docs.microsoft.com/archive/blogs/configmgr_geek_speak/configmgr-speculation-control-baseline-ftw</link>
      <pubDate>Tue, 09 Jan 2018 02:05:49 GMT</pubDate>
      <dc:creator><![CDATA[Russ Rimmerman [MSFT]]]></dc:creator>
      <guid
        isPermaLink="false">https://blogs.technet.microsoft.com/configmgr_geek_speak/?p=1025</guid>
      <description><![CDATA[Update 1/8/2018 – The ConfigMgr product group has released official communications and...]]></description>
      <content:encoded><![CDATA[<p><span style="background-color:yellow">Update 1/8/2018</span> – The ConfigMgr product group has released official communications and recommendations on dealing with this vulnerability.  Our official guidance from the ConfigMgr product group has been posted here: <a href="https://blogs.technet.microsoft.com/configurationmgr/2018/01/08/additional-guidance-to-mitigate-speculative-execution-side-channel-vulnerabilities/">https://blogs.technet.microsoft.com/configurationmgr/2018/01/08/additional-guidance-to-mitigate-speculative-execution-side-channel-vulnerabilities/</a>.  
</p><p>To download the ConfigMgr baseline and CIs to detect compliancy of machines, visit <a href="https://gallery.technet.microsoft.com/Speculation-Execution-Side-1483f621">https://gallery.technet.microsoft.com/Speculation-Execution-Side-1483f621</a>
	</p><p><span style="text-decoration:underline">Additional articles regarding the Speculation Control vulnerability
</span></p><p><span style="color:#343a41">Security Advisory 180002 - Vulnerability in CPU Microcode Could Allow Information Disclosure: <a href="https://portal.msrc.microsoft.com/en-US/security-guidance/advisory/ADV180002" target="_blank"><span style="color:#386cbb">https://portal.msrc.microsoft.com/en-US/security-guidance/advisory/ADV180002</span></a>
		</span></p><p><span style="color:#343a41">KB 4073229 - Protect your device against the recent chip-related security vulnerability: <a href="https://support.microsoft.com/help/4073229" target="_blank"><span style="color:#386cbb">https://support.microsoft.com/help/4073229</span></a>
		</span></p><p><span style="color:#343a41">KB 4073119 - Windows Client Guidance for IT Pros to protect against the speculative execution side-channel vulnerabilities: <a href="https://support.microsoft.com/help/4073119" target="_blank"><span style="color:#386cbb">https://support.microsoft.com/help/4073119</span></a>
		</span></p><p><span style="color:#343a41">KB 4072698 - Windows Server Guidance to protect against the speculative execution side-channel vulnerabilities: <a href="https://support.microsoft.com/help/4072698" target="_blank"><span style="color:#386cbb">https://support.microsoft.com/help/4072698</span></a>
		</span></p><p><span style="color:#343a41">KB 4072699 - Important Information regarding the Windows Security Updates Released January 2018 (A/V): <a href="https://support.microsoft.com/help/4072699" target="_blank"><span style="color:#386cbb">https://support.microsoft.com/help/4072699</span></a>
		</span></p><p><span style="color:#343a41">KB 4073235 - Microsoft Cloud Protections Against Speculative Execution Side-Channel Vulnerabilities: <a href="https://support.microsoft.com/help/4073235" target="_blank"><span style="color:#386cbb">https://support.microsoft.com/help/4073235</span></a>
		</span></p><p><span style="color:#343a41">KB 4073065 - Surface Guidance for Customers and Partners "Protect your devices against the recent chip-related security vulnerability": <a href="https://support.microsoft.com/help/4073065" target="_blank"><span style="color:#386cbb">https://support.microsoft.com/help/4073065</span></a>
		</span></p><p><span style="color:#343a41">KB 4073225 - Guide to protect SQL Server against speculative execution side-channel vulnerabilities
</span></p><p><a href="https://support.microsoft.com/en-gb/help/4073225/guidance-for-sql-server" target="_blank"><span style="color:#386cbb">https://support.microsoft.com/en-gb/help/4073225/guidance-for-sql-server</span></a><span style="color:#343a41">
		</span></p><p>
 </p><h1>Windows Client Updates
</h1><div><table style="border-collapse:collapse" border="0"><colgroup><col style="width:443px" /><col style="width:194px" /><col style="width:194px" /></colgroup><tbody valign="top"><tr style="height: 28px;background: #4472c4"><td vAlign="middle" style="padding-top: 1px;padding-left: 1px;padding-right: 1px;border-top:  solid white 1.0pt;border-left:  solid white 1.0pt;border-bottom:  solid white 1.0pt;border-right:  solid white 1.0pt"><p><strong>Product Name</strong></p></td><td vAlign="middle" style="padding-top: 1px;padding-left: 1px;padding-right: 1px;border-top:  solid white 1.0pt;border-left:  none;border-bottom:  solid white 1.0pt;border-right:  solid white 1.0pt"><p><strong>KB number</strong></p></td><td vAlign="middle" style="padding-top: 1px;padding-left: 1px;padding-right: 1px;border-top:  solid white 1.0pt;border-left:  none;border-bottom:  solid white 1.0pt;border-right:  solid white 1.0pt"><p>Download Link</p></td></tr><tr style="height: 28px;background: #dae3f3"><td vAlign="middle" style="padding-top: 1px;padding-left: 1px;padding-right: 1px;border-top:  none;border-left:  solid white 1.0pt;border-bottom:  solid white 1.0pt;border-right:  solid white 1.0pt"><p>Windows 10 for 32-bit Systems</p></td><td vAlign="middle" style="padding-top: 1px;padding-left: 1px;padding-right: 1px;border-top:  none;border-left:  none;border-bottom:  solid white 1.0pt;border-right:  solid white 1.0pt"><p><a href="https://support.microsoft.com/help/4056893">4056893</a></p></td><td vAlign="middle" style="padding-top: 1px;padding-left: 1px;padding-right: 1px;border-top:  none;border-left:  none;border-bottom:  solid white 1.0pt;border-right:  solid white 1.0pt"><p><a href="https://catalog.update.microsoft.com/v7/site/Search.aspx?q=KB4056893">Security Update</a></p></td></tr><tr style="height: 28px;background: #dae3f3"><td vAlign="middle" style="padding-top: 1px;padding-left: 1px;padding-right: 1px;border-top:  none;border-left:  solid white 1.0pt;border-bottom:  solid white 1.0pt;border-right:  solid white 1.0pt"><p>Windows 10 for x64-based Systems</p></td><td vAlign="middle" style="padding-top: 1px;padding-left: 1px;padding-right: 1px;border-top:  none;border-left:  none;border-bottom:  solid white 1.0pt;border-right:  solid white 1.0pt"><p><a href="https://support.microsoft.com/help/4056893">4056893</a></p></td><td vAlign="middle" style="padding-top: 1px;padding-left: 1px;padding-right: 1px;border-top:  none;border-left:  none;border-bottom:  solid white 1.0pt;border-right:  solid white 1.0pt"><p><a href="https://catalog.update.microsoft.com/v7/site/Search.aspx?q=KB4056893">Security Update</a></p></td></tr><tr style="height: 45px;background: #dae3f3"><td vAlign="middle" style="padding-top: 1px;padding-left: 1px;padding-right: 1px;border-top:  none;border-left:  solid white 1.0pt;border-bottom:  solid white 1.0pt;border-right:  solid white 1.0pt"><p>Windows 10 Version 1511 for 32-bit Systems</p></td><td vAlign="middle" style="padding-top: 1px;padding-left: 1px;padding-right: 1px;border-top:  none;border-left:  none;border-bottom:  solid white 1.0pt;border-right:  solid white 1.0pt"><p><a href="https://support.microsoft.com/help/4056888">4056888</a></p></td><td vAlign="middle" style="padding-top: 1px;padding-left: 1px;padding-right: 1px;border-top:  none;border-left:  none;border-bottom:  solid white 1.0pt;border-right:  solid white 1.0pt"><p><a href="https://catalog.update.microsoft.com/v7/site/Search.aspx?q=KB4056888">Security Update</a></p></td></tr><tr style="height: 45px;background: #dae3f3"><td vAlign="middle" style="padding-top: 1px;padding-left: 1px;padding-right: 1px;border-top:  none;border-left:  solid white 1.0pt;border-bottom:  solid white 1.0pt;border-right:  solid white 1.0pt"><p>Windows 10 Version 1511 for x64-based Systems</p></td><td vAlign="middle" style="padding-top: 1px;padding-left: 1px;padding-right: 1px;border-top:  none;border-left:  none;border-bottom:  solid white 1.0pt;border-right:  solid white 1.0pt"><p><a href="https://support.microsoft.com/help/4056888">4056888</a></p></td><td vAlign="middle" style="padding-top: 1px;padding-left: 1px;padding-right: 1px;border-top:  none;border-left:  none;border-bottom:  solid white 1.0pt;border-right:  solid white 1.0pt"><p><a href="https://catalog.update.microsoft.com/v7/site/Search.aspx?q=KB4056888">Security Update</a></p></td></tr><tr style="height: 45px;background: #dae3f3"><td vAlign="middle" style="padding-top: 1px;padding-left: 1px;padding-right: 1px;border-top:  none;border-left:  solid white 1.0pt;border-bottom:  solid white 1.0pt;border-right:  solid white 1.0pt"><p>Windows 10 Version 1607 for 32-bit Systems</p></td><td vAlign="middle" style="padding-top: 1px;padding-left: 1px;padding-right: 1px;border-top:  none;border-left:  none;border-bottom:  solid white 1.0pt;border-right:  solid white 1.0pt"><p><a href="https://support.microsoft.com/help/4056890">4056890</a></p></td><td vAlign="middle" style="padding-top: 1px;padding-left: 1px;padding-right: 1px;border-top:  none;border-left:  none;border-bottom:  solid white 1.0pt;border-right:  solid white 1.0pt"><p><a href="https://catalog.update.microsoft.com/v7/site/Search.aspx?q=KB4056890">Security Update</a></p></td></tr><tr style="height: 45px;background: #dae3f3"><td vAlign="middle" style="padding-top: 1px;padding-left: 1px;padding-right: 1px;border-top:  none;border-left:  solid white 1.0pt;border-bottom:  solid white 1.0pt;border-right:  solid white 1.0pt"><p>Windows 10 Version 1607 for x64-based Systems</p></td><td vAlign="middle" style="padding-top: 1px;padding-left: 1px;padding-right: 1px;border-top:  none;border-left:  none;border-bottom:  solid white 1.0pt;border-right:  solid white 1.0pt"><p><a href="https://support.microsoft.com/help/4056890">4056890</a></p></td><td vAlign="middle" style="padding-top: 1px;padding-left: 1px;padding-right: 1px;border-top:  none;border-left:  none;border-bottom:  solid white 1.0pt;border-right:  solid white 1.0pt"><p><a href="https://catalog.update.microsoft.com/v7/site/Search.aspx?q=KB4056890">Security Update</a></p></td></tr><tr style="height: 45px;background: #dae3f3"><td vAlign="middle" style="padding-top: 1px;padding-left: 1px;padding-right: 1px;border-top:  none;border-left:  solid white 1.0pt;border-bottom:  solid white 1.0pt;border-right:  solid white 1.0pt"><p>Windows 10 Version 1703 for 32-bit Systems</p></td><td vAlign="middle" style="padding-top: 1px;padding-left: 1px;padding-right: 1px;border-top:  none;border-left:  none;border-bottom:  solid white 1.0pt;border-right:  solid white 1.0pt"><p><a href="https://support.microsoft.com/help/4056891">4056891</a></p></td><td vAlign="middle" style="padding-top: 1px;padding-left: 1px;padding-right: 1px;border-top:  none;border-left:  none;border-bottom:  solid white 1.0pt;border-right:  solid white 1.0pt"><p><a href="https://catalog.update.microsoft.com/v7/site/Search.aspx?q=KB4056891">Security Update</a></p></td></tr><tr style="height: 45px;background: #dae3f3"><td vAlign="middle" style="padding-top: 1px;padding-left: 1px;padding-right: 1px;border-top:  none;border-left:  solid white 1.0pt;border-bottom:  solid white 1.0pt;border-right:  solid white 1.0pt"><p>Windows 10 Version 1703 for x64-based Systems</p></td><td vAlign="middle" style="padding-top: 1px;padding-left: 1px;padding-right: 1px;border-top:  none;border-left:  none;border-bottom:  solid white 1.0pt;border-right:  solid white 1.0pt"><p><a href="https://support.microsoft.com/help/4056891">4056891</a></p></td><td vAlign="middle" style="padding-top: 1px;padding-left: 1px;padding-right: 1px;border-top:  none;border-left:  none;border-bottom:  solid white 1.0pt;border-right:  solid white 1.0pt"><p><a href="https://catalog.update.microsoft.com/v7/site/Search.aspx?q=KB4056891">Security Update</a></p></td></tr><tr style="height: 45px;background: #dae3f3"><td vAlign="middle" style="padding-top: 1px;padding-left: 1px;padding-right: 1px;border-top:  none;border-left:  solid white 1.0pt;border-bottom:  solid white 1.0pt;border-right:  solid white 1.0pt"><p>Windows 10 Version 1709 for 32-bit Systems</p></td><td vAlign="middle" style="padding-top: 1px;padding-left: 1px;padding-right: 1px;border-top:  none;border-left:  none;border-bottom:  solid white 1.0pt;border-right:  solid white 1.0pt"><p><a href="https://support.microsoft.com/help/4056892">4056892</a></p></td><td vAlign="middle" style="padding-top: 1px;padding-left: 1px;padding-right: 1px;border-top:  none;border-left:  none;border-bottom:  solid white 1.0pt;border-right:  solid white 1.0pt"><p><a href="https://catalog.update.microsoft.com/v7/site/Search.aspx?q=KB4056892">Security Update</a></p></td></tr><tr style="height: 45px;background: #ededed"><td vAlign="middle" style="padding-top: 1px;padding-left: 1px;padding-right: 1px;border-top:  none;border-left:  solid white 1.0pt;border-bottom:  solid white 1.0pt;border-right:  solid white 1.0pt"><p>Windows 7 for 32-bit Systems Service Pack 1</p></td><td vAlign="middle" style="padding-top: 1px;padding-left: 1px;padding-right: 1px;border-top:  none;border-left:  none;border-bottom:  solid white 1.0pt;border-right:  solid white 1.0pt"><p><a href="https://support.microsoft.com/help/4056897">4056897</a></p></td><td vAlign="middle" style="padding-top: 1px;padding-left: 1px;padding-right: 1px;border-top:  none;border-left:  none;border-bottom:  solid white 1.0pt;border-right:  solid white 1.0pt"><p><a href="https://catalog.update.microsoft.com/v7/site/Search.aspx?q=KB4056897">Security Only</a></p></td></tr><tr style="height: 45px;background: #ededed"><td vAlign="middle" style="padding-top: 1px;padding-left: 1px;padding-right: 1px;border-top:  none;border-left:  solid white 1.0pt;border-bottom:  solid white 1.0pt;border-right:  solid white 1.0pt"><p>Windows 7 for x64-based Systems Service Pack 1</p></td><td vAlign="middle" style="padding-top: 1px;padding-left: 1px;padding-right: 1px;border-top:  none;border-left:  none;border-bottom:  solid white 1.0pt;border-right:  solid white 1.0pt"><p><a href="https://support.microsoft.com/help/4056897">4056897</a></p></td><td vAlign="middle" style="padding-top: 1px;padding-left: 1px;padding-right: 1px;border-top:  none;border-left:  none;border-bottom:  solid white 1.0pt;border-right:  solid white 1.0pt"><p><a href="https://catalog.update.microsoft.com/v7/site/Search.aspx?q=KB4056897">Security Only</a></p></td></tr><tr style="height: 28px;background: #dae3f3"><td vAlign="middle" style="padding-top: 1px;padding-left: 1px;padding-right: 1px;border-top:  none;border-left:  solid white 1.0pt;border-bottom:  solid white 1.0pt;border-right:  solid white 1.0pt"><p>Windows 8.1 for 32-bit systems</p></td><td vAlign="middle" style="padding-top: 1px;padding-left: 1px;padding-right: 1px;border-top:  none;border-left:  none;border-bottom:  solid white 1.0pt;border-right:  solid white 1.0pt"><p><a href="https://support.microsoft.com/help/4056898">4056898</a></p></td><td vAlign="middle" style="padding-top: 1px;padding-left: 1px;padding-right: 1px;border-top:  none;border-left:  none;border-bottom:  solid white 1.0pt;border-right:  solid white 1.0pt"><p><a href="https://catalog.update.microsoft.com/v7/site/Search.aspx?q=KB4056898">Security Only</a></p></td></tr><tr style="height: 28px;background: #dae3f3"><td vAlign="middle" style="padding-top: 1px;padding-left: 1px;padding-right: 1px;border-top:  none;border-left:  solid white 1.0pt;border-bottom:  solid white 1.0pt;border-right:  solid white 1.0pt"><p>Windows 8.1 for x64-based systems</p></td><td vAlign="middle" style="padding-top: 1px;padding-left: 1px;padding-right: 1px;border-top:  none;border-left:  none;border-bottom:  solid white 1.0pt;border-right:  solid white 1.0pt"><p><a href="https://support.microsoft.com/help/4056898">4056898</a></p></td><td vAlign="middle" style="padding-top: 1px;padding-left: 1px;padding-right: 1px;border-top:  none;border-left:  none;border-bottom:  solid white 1.0pt;border-right:  solid white 1.0pt"><p><a href="https://catalog.update.microsoft.com/v7/site/Search.aspx?q=KB4056898">Security Only</a></p></td></tr></tbody></table></div><p>
 </p><h1>Windows Server Updates
</h1><div><table style="border-collapse:collapse" border="0"><colgroup><col style="width:484px" /><col style="width:174px" /><col style="width:174px" /></colgroup><tbody valign="top"><tr style="height: 37px;background: #4472c4"><td vAlign="middle" style="padding-top: 1px;padding-left: 1px;padding-right: 1px;border-top:  solid white 1.0pt;border-left:  solid white 1.0pt;border-bottom:  solid white 1.0pt;border-right:  solid white 1.0pt"><p><strong>Product Name</strong></p></td><td vAlign="middle" style="padding-top: 1px;padding-left: 1px;padding-right: 1px;border-top:  solid white 1.0pt;border-left:  none;border-bottom:  solid white 1.0pt;border-right:  solid white 1.0pt"><p><strong>KB number</strong></p></td><td vAlign="middle" style="padding-top: 1px;padding-left: 1px;padding-right: 1px;border-top:  solid white 1.0pt;border-left:  none;border-bottom:  solid white 1.0pt;border-right:  solid white 1.0pt"><p><strong>Download Link</strong></p></td></tr><tr style="height: 52px;background: #dae3f3"><td vAlign="middle" style="padding-top: 1px;padding-left: 1px;padding-right: 1px;border-top:  none;border-left:  solid white 1.0pt;border-bottom:  solid white 1.0pt;border-right:  solid white 1.0pt"><p>Windows Server 2008 R2 for Itanium-Based Systems Service Pack 1</p></td><td vAlign="middle" style="padding-top: 1px;padding-left: 1px;padding-right: 1px;border-top:  none;border-left:  none;border-bottom:  solid white 1.0pt;border-right:  solid white 1.0pt"><p><a href="https://support.microsoft.com/help/4056897">4056897</a></p></td><td vAlign="middle" style="padding-top: 1px;padding-left: 1px;padding-right: 1px;border-top:  none;border-left:  none;border-bottom:  solid white 1.0pt;border-right:  solid white 1.0pt"><p><a href="https://catalog.update.microsoft.com/v7/site/Search.aspx?q=KB4056897">Security Only</a></p></td></tr><tr style="height: 52px;background: #dae3f3"><td vAlign="middle" style="padding-top: 1px;padding-left: 1px;padding-right: 1px;border-top:  none;border-left:  solid white 1.0pt;border-bottom:  solid white 1.0pt;border-right:  solid white 1.0pt"><p>Windows Server 2008 R2 for x64-based Systems Service Pack 1</p></td><td vAlign="middle" style="padding-top: 1px;padding-left: 1px;padding-right: 1px;border-top:  none;border-left:  none;border-bottom:  solid white 1.0pt;border-right:  solid white 1.0pt"><p><a href="https://support.microsoft.com/help/4056897">4056897</a></p></td><td vAlign="middle" style="padding-top: 1px;padding-left: 1px;padding-right: 1px;border-top:  none;border-left:  none;border-bottom:  solid white 1.0pt;border-right:  solid white 1.0pt"><p><a href="https://catalog.update.microsoft.com/v7/site/Search.aspx?q=KB4056897">Security Only</a></p></td></tr><tr style="height: 76px;background: #dae3f3"><td vAlign="middle" style="padding-top: 1px;padding-left: 1px;padding-right: 1px;border-top:  none;border-left:  solid white 1.0pt;border-bottom:  solid white 1.0pt;border-right:  solid white 1.0pt"><p>Windows Server 2008 R2 for x64-based Systems Service Pack 1 
</p><p>(Server Core installation)</p></td><td vAlign="middle" style="padding-top: 1px;padding-left: 1px;padding-right: 1px;border-top:  none;border-left:  none;border-bottom:  solid white 1.0pt;border-right:  solid white 1.0pt"><p><a href="https://support.microsoft.com/help/4056897">4056897</a></p></td><td vAlign="middle" style="padding-top: 1px;padding-left: 1px;padding-right: 1px;border-top:  none;border-left:  none;border-bottom:  solid white 1.0pt;border-right:  solid white 1.0pt"><p><a href="https://catalog.update.microsoft.com/v7/site/Search.aspx?q=KB4056897">Security Only</a></p></td></tr><tr style="height: 32px;background: #ededed"><td vAlign="middle" style="padding-top: 1px;padding-left: 1px;padding-right: 1px;border-top:  none;border-left:  solid white 1.0pt;border-bottom:  solid white 1.0pt;border-right:  solid white 1.0pt"><p>Windows Server 2012</p></td><td vAlign="middle" style="padding-top: 1px;padding-left: 1px;padding-right: 1px;border-top:  none;border-left:  none;border-bottom:  solid white 1.0pt;border-right:  solid white 1.0pt"><p><a href="https://support.microsoft.com/help/4056899">4056899</a></p></td><td vAlign="middle" style="padding-top: 1px;padding-left: 1px;padding-right: 1px;border-top:  none;border-left:  none;border-bottom:  solid white 1.0pt;border-right:  solid white 1.0pt"><p><a href="https://catalog.update.microsoft.com/v7/site/Search.aspx?q=KB4056899">Security Only</a></p></td></tr><tr style="height: 51px;background: #ededed"><td vAlign="middle" style="padding-top: 1px;padding-left: 1px;padding-right: 1px;border-top:  none;border-left:  solid white 1.0pt;border-bottom:  solid white 1.0pt;border-right:  solid white 1.0pt"><p>Windows Server 2012 (Server Core installation)</p></td><td vAlign="middle" style="padding-top: 1px;padding-left: 1px;padding-right: 1px;border-top:  none;border-left:  none;border-bottom:  solid white 1.0pt;border-right:  solid white 1.0pt"><p><a href="https://support.microsoft.com/help/4056899">4056899</a></p></td><td vAlign="middle" style="padding-top: 1px;padding-left: 1px;padding-right: 1px;border-top:  none;border-left:  none;border-bottom:  solid white 1.0pt;border-right:  solid white 1.0pt"><p><a href="https://catalog.update.microsoft.com/v7/site/Search.aspx?q=KB4056899">Security Only</a></p></td></tr><tr style="height: 32px;background: #dae3f3"><td vAlign="middle" style="padding-top: 1px;padding-left: 1px;padding-right: 1px;border-top:  none;border-left:  solid white 1.0pt;border-bottom:  solid white 1.0pt;border-right:  solid white 1.0pt"><p>Windows Server 2012 R2</p></td><td vAlign="middle" style="padding-top: 1px;padding-left: 1px;padding-right: 1px;border-top:  none;border-left:  none;border-bottom:  solid white 1.0pt;border-right:  solid white 1.0pt"><p><a href="https://support.microsoft.com/help/4056898">4056898</a></p></td><td vAlign="middle" style="padding-top: 1px;padding-left: 1px;padding-right: 1px;border-top:  none;border-left:  none;border-bottom:  solid white 1.0pt;border-right:  solid white 1.0pt"><p><a href="https://catalog.update.microsoft.com/v7/site/Search.aspx?q=KB4056898">Security Only</a></p></td></tr><tr style="height: 51px;background: #dae3f3"><td vAlign="middle" style="padding-top: 1px;padding-left: 1px;padding-right: 1px;border-top:  none;border-left:  solid white 1.0pt;border-bottom:  solid white 1.0pt;border-right:  solid white 1.0pt"><p>Windows Server 2012 R2 (Server Core installation)</p></td><td vAlign="middle" style="padding-top: 1px;padding-left: 1px;padding-right: 1px;border-top:  none;border-left:  none;border-bottom:  solid white 1.0pt;border-right:  solid white 1.0pt"><p><a href="https://support.microsoft.com/help/4056898">4056898</a></p></td><td vAlign="middle" style="padding-top: 1px;padding-left: 1px;padding-right: 1px;border-top:  none;border-left:  none;border-bottom:  solid white 1.0pt;border-right:  solid white 1.0pt"><p><a href="https://catalog.update.microsoft.com/v7/site/Search.aspx?q=KB4056898">Security Only</a></p></td></tr><tr style="height: 32px;background: #ededed"><td vAlign="middle" style="padding-top: 1px;padding-left: 1px;padding-right: 1px;border-top:  none;border-left:  solid white 1.0pt;border-bottom:  solid white 1.0pt;border-right:  solid white 1.0pt"><p>Windows Server 2016</p></td><td vAlign="middle" style="padding-top: 1px;padding-left: 1px;padding-right: 1px;border-top:  none;border-left:  none;border-bottom:  solid white 1.0pt;border-right:  solid white 1.0pt"><p><a href="https://support.microsoft.com/help/4056890">4056890</a></p></td><td vAlign="middle" style="padding-top: 1px;padding-left: 1px;padding-right: 1px;border-top:  none;border-left:  none;border-bottom:  solid white 1.0pt;border-right:  solid white 1.0pt"><p><a href="https://catalog.update.microsoft.com/v7/site/Search.aspx?q=KB4056890">Security Update</a></p></td></tr><tr style="height: 51px;background: #ededed"><td vAlign="middle" style="padding-top: 1px;padding-left: 1px;padding-right: 1px;border-top:  none;border-left:  solid white 1.0pt;border-bottom:  solid white 1.0pt;border-right:  solid white 1.0pt"><p>Windows Server 2016 (Server Core installation)</p></td><td vAlign="middle" style="padding-top: 1px;padding-left: 1px;padding-right: 1px;border-top:  none;border-left:  none;border-bottom:  solid white 1.0pt;border-right:  solid white 1.0pt"><p><a href="https://support.microsoft.com/help/4056890">4056890</a></p></td><td vAlign="middle" style="padding-top: 1px;padding-left: 1px;padding-right: 1px;border-top:  none;border-left:  none;border-bottom:  solid white 1.0pt;border-right:  solid white 1.0pt"><p><a href="https://catalog.update.microsoft.com/v7/site/Search.aspx?q=KB4056890">Security Update</a></p></td></tr><tr style="height: 51px;background: #dae3f3"><td vAlign="middle" style="padding-top: 1px;padding-left: 1px;padding-right: 1px;border-top:  none;border-left:  solid white 1.0pt;border-bottom:  solid white 1.0pt;border-right:  solid white 1.0pt"><p>Windows Server, version 1709 (Server Core Installation)</p></td><td vAlign="middle" style="padding-top: 1px;padding-left: 1px;padding-right: 1px;border-top:  none;border-left:  none;border-bottom:  solid white 1.0pt;border-right:  solid white 1.0pt"><p><a href="https://support.microsoft.com/help/4056892">4056892</a></p></td><td vAlign="middle" style="padding-top: 1px;padding-left: 1px;padding-right: 1px;border-top:  none;border-left:  none;border-bottom:  solid white 1.0pt;border-right:  solid white 1.0pt"><p><a href="https://catalog.update.microsoft.com/v7/site/Search.aspx?q=KB4056892">Security Update</a></p></td></tr></tbody></table></div><p>
 </p><h1>Microsoft SQL
</h1><div><table style="border-collapse:collapse" border="0"><colgroup><col style="width:482px" /><col style="width:174px" /><col style="width:174px" /></colgroup><tbody valign="top"><tr style="height: 30px;background: #4472c4"><td vAlign="middle" style="padding-top: 1px;padding-left: 1px;padding-right: 1px;border-top:  solid white 1.0pt;border-left:  solid white 1.0pt;border-bottom:  solid white 1.0pt;border-right:  solid white 1.0pt"><p><strong>Product Name</strong></p></td><td vAlign="middle" style="padding-top: 1px;padding-left: 1px;padding-right: 1px;border-top:  solid white 1.0pt;border-left:  none;border-bottom:  solid white 1.0pt;border-right:  solid white 1.0pt"><p><strong>KB number</strong></p></td><td vAlign="middle" style="padding-top: 1px;padding-left: 1px;padding-right: 1px;border-top:  solid white 1.0pt;border-left:  none;border-bottom:  solid white 1.0pt;border-right:  solid white 1.0pt"><p><strong>Download Link</strong></p></td></tr><tr style="height: 41px;background: #dae3f3"><td vAlign="middle" style="padding-top: 1px;padding-left: 1px;padding-right: 1px;border-top:  none;border-left:  solid white 1.0pt;border-bottom:  solid white 1.0pt;border-right:  solid white 1.0pt"><p>Microsoft SQL Server 2016 for x64-based Systems Service Pack 1 (CU)</p></td><td vAlign="middle" style="padding-top: 1px;padding-left: 1px;padding-right: 1px;border-top:  none;border-left:  none;border-bottom:  solid white 1.0pt;border-right:  solid white 1.0pt"><p><a href="https://support.microsoft.com/help/4057119">4057119</a></p></td><td vAlign="middle" style="padding-top: 1px;padding-left: 1px;padding-right: 1px;border-top:  none;border-left:  none;border-bottom:  solid white 1.0pt;border-right:  solid white 1.0pt"><p><a href="https://www.microsoft.com/downloads/details.aspx?familyid=25723638-2f71-4648-b632-efbaf55c2ab6">Security Update</a></p></td></tr><tr style="height: 41px;background: #dae3f3"><td vAlign="middle" style="padding-top: 1px;padding-left: 1px;padding-right: 1px;border-top:  none;border-left:  solid white 1.0pt;border-bottom:  solid white 1.0pt;border-right:  solid white 1.0pt"><p>Microsoft SQL Server 2017 for x64-based Systems</p></td><td vAlign="middle" style="padding-top: 1px;padding-left: 1px;padding-right: 1px;border-top:  none;border-left:  none;border-bottom:  solid white 1.0pt;border-right:  solid white 1.0pt"><p><a href="https://support.microsoft.com/help/4057122">4057122</a></p></td><td vAlign="middle" style="padding-top: 1px;padding-left: 1px;padding-right: 1px;border-top:  none;border-left:  none;border-bottom:  solid white 1.0pt;border-right:  solid white 1.0pt"><p><a href="https://www.microsoft.com/downloads/details.aspx?familyid=7d70f956-d43d-4af6-a4b5-e55ec4cd1234">Security Update</a></p></td></tr><tr style="height: 61px;background: #dae3f3"><td vAlign="middle" style="padding-top: 1px;padding-left: 1px;padding-right: 1px;border-top:  none;border-left:  solid white 1.0pt;border-bottom:  solid white 1.0pt;border-right:  solid white 1.0pt"><p>Microsoft SQL Server 2017 for x64-based Systems (CU)</p></td><td vAlign="middle" style="padding-top: 1px;padding-left: 1px;padding-right: 1px;border-top:  none;border-left:  none;border-bottom:  solid white 1.0pt;border-right:  solid white 1.0pt"><p><a href="https://support.microsoft.com/help/4052987">4052987</a></p></td><td vAlign="middle" style="padding-top: 1px;padding-left: 1px;padding-right: 1px;border-top:  none;border-left:  none;border-bottom:  solid white 1.0pt;border-right:  solid white 1.0pt"><p><a href="https://www.microsoft.com/downloads/details.aspx?familyid=6fa0ef46-2992-4d39-92ed-9f39f23c8d92">Security Update</a></p></td></tr></tbody></table></div><p>
 </p>]]></content:encoded>
    </item>
    <item>
      <title>Configuration Manager 1602 on Windows 2008 R2 &amp; SQL 2008 R2–Upgrading to Windows 2012 R2 &amp; SQL 2014</title>
      <link>https://docs.microsoft.com/archive/blogs/configmgr_geek_speak/configuration-manager-1602-on-windows-2008-r2-sql-2008-r2upgrading-to-windows-2012-r2-sql-2014</link>
      <pubDate>Wed, 23 Mar 2016 21:46:36 GMT</pubDate>
      <dc:creator><![CDATA[Russ Rimmerman [MSFT]]]></dc:creator>
      <guid
        isPermaLink="false">https://blogs.technet.microsoft.com/configmgr_geek_speak/?p=913</guid>
      <description><![CDATA[Here’s the Scenario.&nbsp; You’re running ConfigMgr 2012 R2 or 1511 on the following: Operating...]]></description>
      <content:encoded><![CDATA[<p><strong>Here’s the Scenario.&nbsp; You’re running ConfigMgr 2012 R2 or 1511 on the following:</strong></p> <p><strong>Operating System:</strong> Windows 2008 R2</p> <p><strong>SQL Server</strong>: SQL 2008 R2</p> <p><strong>Configuration Manager Version:</strong> If you’re currently running Configuration Manager 2012 R2 (with or without SP1) with co-located SQL 2008 or higher on your CAS or Primaries, you must first do an in-place upgrade to ConfigMgr 1511, and then upgrade to ConfigMgr 1602, as long as you’re running a supported version of SQL along the way for each version of ConfigMgr.&nbsp; ConfigMgr 1602 supports an in-place OS upgrade of Windows 2008 R2 to Windows 2012 R2.</p> <p>You can upgrade from SQL 2008 or SQL 2008 R2 to SQL 2012 or 2014, but I would recommend going to SQL 2014 so you don’t have to worry about upgrading SQL again for awhile.&nbsp; As of this writing, SQL 2014 is the latest GA release of SQL.</p> <p>You may choose to either do an in-place upgrade of SQL 2008 or 2008 R2 to 2014, or you may choose to uninstall SQL 2008 or 2008 R2 and install SQL 2014. </p> <p>I’ll cover the in-place upgrade method first.&nbsp; If you’re already on SQL 2012 or 2014, you can skip ahead to the Operating System upgrade steps.</p> <p><strong><u>Warning: This has not been tested in an environment with non domain-joined clients.&nbsp; You may have issues with these clients which require manual intervention on the client to remediate them after this upgrade.</u></strong></p> <p><strong><u>In-Place Upgrading SQL 2008 or 2008 R2 to SQL 2014</u></strong></p> <p>Stop SMS_EXECUTIVE service on the site server you are upgrading.&nbsp; You may even want to temporarily set it to “Manual” start type in the event you need to restart.</p> <p>Launch the SQL 2012 or 2014 Setup.exe</p> <p>Select the “Upgrade from SQL” option under “Installation”</p> <p>You will receive a warning about the User Database Compatibility Level being equal or less than 90.&nbsp; The upgrade will change this compatibility level to 100 which is OK as long as you aren’t using SQL for anything other than Configuration Manager, SQL Reporting, or WSUS.&nbsp; If you are using it for other applications, make sure your applications support the newer version before doing the upgrade.</p> <p><a href="https://msdnshared.blob.core.windows.net/media/2016/03/image542.png"><img title="image" style="border-left-width: 0px;border-right-width: 0px;border-bottom-width: 0px;padding-top: 0px;padding-left: 0px;padding-right: 0px;border-top-width: 0px" border="0" alt="image" src="https://msdnshared.blob.core.windows.net/media/2016/03/image_thumb411.png" width="578" height="434"></a></p> <p>If you fail any of the rules, you will need to take action to remediate them as necessary.</p> <p>Click OK –&gt; Next –&gt; Upgrade to begin the upgrade process.</p> <p>If there are any failures, the default directory for logs is C:\Program Files\Microsoft SQL Server\120\Setup Bootstrap\Log in a directory with the name format of YYYYMMDD_HHMMSS.&nbsp; Look for log files in this directory and open them to determine the cause.&nbsp; Also open the file named “Detail.txt” and scroll to the bottom to determine the error which prevented the upgrade.</p> <p>One common issue you may run into is an error in the sqlncli_cpu64_1.log.&nbsp; An error in this log may state “Product: Microsoft SQL Server 2012 Native Client&nbsp; -- Configuration failed.”&nbsp; The error in Detail.txt may state “Error result: –2068643839” and “Condition "Is the user's scenario set to EditionUpgrade" did not pass as it returned false and true was expected.”&nbsp; If you receive this error, you may have the SQL 2012 Native Client installed.&nbsp; Uninstall it and you should be able to proceed with the upgrade.</p> <p>You can set SMS_EXECUTIVE back to Automatic start if you set it to Manual, and start it.&nbsp; Launch the ConfigMgr Administration Console and verify it connects as expected.</p> <p>Now that you have successfully upgraded SQL, you may want to uninstall the SQL 2008 or 2008 R2 Management Studio so that you don’t accidently continue using it.&nbsp; To do so, just go to Programs and Features, and select SQL 2008 or 2008 R2, right-click and select Uninstall/Change, and the SQL 2008 or 2008 R2 Setup will launch.&nbsp; Select all of the components you wish to remove, and the SQL 2008 or 2008 R2 components will uninstall.</p> <p><a href="https://msdnshared.blob.core.windows.net/media/2016/03/image543.png"><img title="image" style="border-left-width: 0px;border-right-width: 0px;border-bottom-width: 0px;padding-top: 0px;padding-left: 0px;padding-right: 0px;border-top-width: 0px" border="0" alt="image" src="https://msdnshared.blob.core.windows.net/media/2016/03/image_thumb412.png" width="656" height="208"></a></p> <p>Now your SQL Management Studio should show 12.2.2000 assuming you installed SQL 2014.&nbsp; </p> <p><a href="https://msdnshared.blob.core.windows.net/media/2016/03/image544.png"><img title="image" style="border-left-width: 0px;border-right-width: 0px;border-bottom-width: 0px;padding-top: 0px;padding-left: 0px;padding-right: 0px;border-top-width: 0px" border="0" alt="image" src="https://msdnshared.blob.core.windows.net/media/2016/03/image_thumb413.png" width="256" height="375"></a></p> <p><strong><u>Windows 2008 R2 –&gt; Windows 2012 R2 Upgrade Process</u></strong></p> <p>Next we will upgrade the Windows 2008 R2 OS to Windows 2012 R2.&nbsp; </p> <p>If WSUS is currently installed on your Windows 2008 R2 based stand-alone primary or CAS, you must uninstall it first.&nbsp; Of course, this also means you must uninstall your Software Update Point (SUP) role as well.&nbsp; If you prefer to keep your SUSDB intact, you can export it first using the <strong>WSUSUTIL.EXE EXPORT &lt;package filename&gt; &lt;logpath&gt; </strong>command-line tool located by default in the %ProgramFiles%\Update Services\Tools directory.&nbsp; Note, you may need to export the package filename using filename.xml.gz extension as a .cab is only sufficient for smaller files, and you may need a hotfix for WSUSUTIL EXPORT command to work properly.&nbsp; See <a title="https://blogs.technet.microsoft.com/wsus/2013/04/09/problem-solved-the-wsus-export-bug/" href="https://blogs.technet.microsoft.com/wsus/2013/04/09/problem-solved-the-wsus-export-bug/">https://blogs.technet.microsoft.com/wsus/2013/04/09/problem-solved-the-wsus-export-bug/</a> for more details.&nbsp; Once you install the WSUS role on your 2012 R2 server, you can then re-import it using <strong>WSUSUTIL.EXE IMPORT</strong>. Also I recommend installing <strong>KB3095113 </strong>hotfix after re-installing WSUS on your upgraded Windows 2012 server so that you can service Windows 10 clients.<br>Once this is completed, insert the Windows 2012 R2 with Update 1 media.<br>Run SETUP.EXE and click “Install Now” to begin.</p> <p>Select “Go online to install updates (recommended)”</p> <p>Enter your product key</p> <p>Select the edition of Windows 2012 R2 to install</p> <p>Select “Upgrade: Install Windows and keep files, settings, and applications”</p> <p>The Compatibility Report will be saved to the desktop at this point.&nbsp; Review it for any compatibility issues you may run into.</p> <p>The upgrade process will begin</p> <p><a href="https://msdnshared.blob.core.windows.net/media/2016/03/image545.png"><img title="image" style="border-left-width: 0px;border-right-width: 0px;border-bottom-width: 0px;padding-top: 0px;padding-left: 0px;padding-right: 0px;border-top-width: 0px" border="0" alt="image" src="https://msdnshared.blob.core.windows.net/media/2016/03/image_thumb414.png" width="461" height="345"></a></p> <p>After the upgrade is complete, launch the ConfigMgr Admin Console, and if you have a hierarchy, verify your database replication is functioning properly.&nbsp; It may temporarily show “Link failed” due to the site server being down for a period of time, but should clear up after replication resumes normal operation.</p> <p>Windows 2008 or 2008 R2 will now be sitting in a directory in C:\Windows.old.&nbsp; After you’re comfortable that things are working as they should be, feel free to run the disk cleanup utility and remove it to free up disk space on C:.</p> <p>You will need to reinstall the BITS Feature as it will not be installed following the in-place upgrade, but you’ll need it for ConfigMgr, so make sure to re-add the BITS feature at this time.</p> <p>Also the Windows Process Activation and World Wide Web Publishing services will most likely be disabled (I found this true on a child primary, but not my CAS).&nbsp; Re-enable them and re-start them as needed.</p> <p>Lastly, if you launch IIS Manager, you will probably find that the various application pools are set for “No managed code” under the .NET CLR Version column:</p> <p><a href="https://msdnshared.blob.core.windows.net/media/2016/03/image768.png"><img title="image" style="border-left-width: 0px;border-right-width: 0px;border-bottom-width: 0px;padding-top: 0px;padding-left: 0px;padding-right: 0px;border-top-width: 0px" border="0" alt="image" src="https://msdnshared.blob.core.windows.net/media/2016/03/image_thumb586.png" width="578" height="267"></a></p> <p>Set them back to their previous .NET CLR Versions as follows (note that the Classic .NET AppPool should be v2.0 and the rest should be v4.0), and restart the server afterwards.</p> <p><a href="https://msdnshared.blob.core.windows.net/media/2016/03/image769.png"><img title="image" style="border-left-width: 0px;border-right-width: 0px;border-bottom-width: 0px;padding-top: 0px;padding-left: 0px;padding-right: 0px;border-top-width: 0px" border="0" alt="image" src="https://msdnshared.blob.core.windows.net/media/2016/03/image_thumb587.png" width="425" height="339"></a></p> <p>Now I’ll cover the uninstall-&gt;reinstall method to get to SQL 2014.</p> <p><strong><u>Uninstalling SQL 2008 or 2008 R2 and Installing SQL 2014</u></strong></p> <p>First, we will uninstall SQL 2008 or 2008 R2.</p> <p>First we need to run a PREINST /STOPSITE on the site server in order to successfully close all the connections so you can detach the database.</p> <p><a href="https://msdnshared.blob.core.windows.net/media/2016/03/image546.png"><img title="image" style="border-left-width: 0px;border-right-width: 0px;border-bottom-width: 0px;padding-top: 0px;padding-left: 0px;padding-right: 0px;border-top-width: 0px" border="0" alt="image" src="https://msdnshared.blob.core.windows.net/media/2016/03/image_thumb415.png" width="504" height="452"></a></p> <p>Right-click the ConfigMgr site database, select <strong>Tasks</strong> and <strong>Detach</strong>.</p> <p>Check the boxes to drop connections and update statistics (if they appear) and click <strong>OK</strong></p> <p>Once all of the needed databases are detached, we can now uninstall SQL by launching <strong>Programs and Features</strong>, selecting Microsoft SQL 2008 or 2008 R2 from the list, and clicking <strong>Uninstall/Change</strong></p> <p><a href="https://msdnshared.blob.core.windows.net/media/2016/03/image547.png"><img title="image" style="border-left-width: 0px;border-right-width: 0px;border-bottom-width: 0px;padding-top: 0px;padding-left: 0px;padding-right: 0px;border-top-width: 0px" border="0" alt="image" src="https://msdnshared.blob.core.windows.net/media/2016/03/image_thumb416.png" width="508" height="380"></a></p> <p>Click <strong>Select all</strong> to de-install all SQL 2008 or 2008 R2 features/components and click <strong>Next</strong></p> <p><a href="https://msdnshared.blob.core.windows.net/media/2016/03/image548.png"><img title="image" style="border-left-width: 0px;border-right-width: 0px;border-bottom-width: 0px;padding-top: 0px;padding-left: 0px;padding-right: 0px;border-top-width: 0px" border="0" alt="image" src="https://msdnshared.blob.core.windows.net/media/2016/03/image_thumb417.png" width="509" height="382"></a></p> <p>SQL will now uninstall.</p> <p>Following completion of the SQL 2008 or 2008 R2 uninstallation, proceed to the <strong>Windows 2008 –&gt; Windows 2012 Upgrade Process</strong> above to do an in-place upgrade of the OS.</p> <p>After the OS is upgraded, go through the normal SQL 2014 installation process, making sure to specify the ConfigMgr SQL Service account when prompted.</p> <p>After SQL 2014 is installed, launch SQL Management Studio</p> <p>Right-click Databases and click <strong>Attach</strong></p> <p>Click “Add” and browse to your detached ConfigMgr database MDF (it should find the LDF as well).</p> <p><a href="https://msdnshared.blob.core.windows.net/media/2016/03/image549.png"><img title="image" style="border-left-width: 0px;border-right-width: 0px;border-bottom-width: 0px;padding-top: 0px;padding-left: 0px;margin: 0px;padding-right: 0px;border-top-width: 0px" border="0" alt="image" src="https://msdnshared.blob.core.windows.net/media/2016/03/image_thumb418.png" width="244" height="219"></a></p> <p>Click <strong>OK</strong></p> <p>Now click <strong>New</strong> <strong>Query</strong>, and make sure the CM_XYZ (replace XYZ with your site code) database is selected.&nbsp; Next paste the following commands into the query window:</p> <p><em>EXEC SP_CHANGEDBOWNER ‘SA’</em></p> <p><em>ALTER Database CM_XYZ SET TRUSTWORTHY ON</em></p> <p><em>ALTER DATABASE CM_XYZ SET SINGLE_USER WITH ROLLBACK IMMEDIATE</em></p> <p><em>ALTER DATABASE CM_XYZ SET ENABLE_BROKER</em></p> <p><em>ALTER DATABASE CM_XYZ SET MULTI_USER WITH ROLLBACK IMMEDIATE</em></p> <p><em>SP_CONFIGURE 'CLR ENABLED', 1</em></p> <p><em>RECONFIGURE</em></p> <p>Now restart the SQL service, start the SMS_EXECUTIVE service, and launch the ConfigMgr admin console to verify it connects successfully and that if you have a hierarchy, DRS replication is functioning as expected.</p> <p>If you have any issues connecting, review SMSPROV.LOG in the ConfigMgr logs directory or SMSADMINUI.LOG in your AdminConsole\Logs directory for clues</p> <p>If you had to remove your SUP and WSUS, you may re-install WSUS, and then your SUP at this time.&nbsp; </p>]]></content:encoded>
    </item>
    <item>
      <title>Configuration Manager 1511 to 1602 upgrade walkthrough</title>
      <link>https://docs.microsoft.com/archive/blogs/configmgr_geek_speak/configuration-manager-1511-to-1602-upgrade-walkthrough</link>
      <pubDate>Fri, 11 Mar 2016 18:56:42 GMT</pubDate>
      <dc:creator><![CDATA[Russ Rimmerman [MSFT]]]></dc:creator>
      <guid
        isPermaLink="false">https://blogs.technet.microsoft.com/configmgr_geek_speak/?p=721</guid>
      <description><![CDATA[Configuration Manager build 1602 has been released!  First things first…&nbsp; Read through the...]]></description>
      <content:encoded><![CDATA[<p>Configuration Manager build 1602 has been released! </p> <p>First things first…&nbsp; Read through the upgrade checklist at <a href="https://technet.microsoft.com/en-us/library/mt691556.aspx">https://technet.microsoft.com/en-us/library/mt691556.aspx</a>.&nbsp; Additionally, here are some scenarios to streamline your installation <a title="https://technet.microsoft.com/en-us/library/mt703292.aspx" href="https://technet.microsoft.com/en-us/library/mt703292.aspx">https://technet.microsoft.com/en-us/library/mt703292.aspx</a>.&nbsp; First things first, you MUST be running build 1511 in order to upgrade to build 1602.&nbsp; If you are currently running ConfigMgr 2012 R2 SP1, you’ll first need to upgrade to build 1511.&nbsp; Then you’ll be able to use the new in-console servicing upgrade feature to upgrade your hierarchy to 1602.&nbsp; Also, as always it is recommended to take a backup prior to any upgrade, as well as run the /testdbupgrade on a copy of the most recent backup of your database prior to beginning any ConfigMgr upgrade.</p> <p>Note: Even if you find unsupported methods to upgrade from ConfigMgr 2012 R2 SP1 to ConfigMgr 1602, not only is it not supported, but you will miss getting important database schema changes that take place during the 1511 upgrade process.&nbsp; Do NOT take this unsupported route!</p> <p>If you are running Configuration Manager build 1511 and aren’t yet seeing the Configuration Manager 1602 upgrade available in the Updates and Servicing node under the “Cloud Services” folder because you just finished upgrading to 1511 you may need to wait a bit.&nbsp; The new Service Connection Point role downloads a ConfigMgr.Update.Manifest.cab every 24 hours and copies it to the inboxes\hman.bo\CFD directory.&nbsp; The manifest identifies if there are new updates or hotfixes available to download.&nbsp; If you still don’t see it after awhile and are OK with restarting SMS_EXECUTIVE, this can sometimes make it happen sooner.</p> <p>Another reason you may not see the update is you may not have the proper RBAC permissions needed.&nbsp; Your Security Scope setting radio button should be set to “All instances of the objects that are related to the assigned security roles” rather than “Only the instances of objects that are assigned to the specified security scopes and collections.”</p> <p>Once you’re able to see it, the State should start off with “Downloading”.</p> <p><a href="https://msdnshared.blob.core.windows.net/media/2016/03/image148.png"><img title="image" style="border-left-width: 0px;border-right-width: 0px;border-bottom-width: 0px;padding-top: 0px;padding-left: 0px;padding-right: 0px;border-top-width: 0px" border="0" alt="image" src="https://msdnshared.blob.core.windows.net/media/2016/03/image_thumb115.png" width="867" height="126"></a></p> <p>Watch “DMPDownloader.log” in your ConfigMgr install directory, it will begin downloading files to the “&lt;ConfigMgrInstallDir&gt;\EasySetupPayload” directory.&nbsp; ConfigMgrSetup.log in the root of C: will show the files being extracted and hashes being checked within the EasySetupPayload directory download directory.</p> <p>&nbsp;</p> <p>If you click “Show status” in the lower right hand corner under “Related Objects” it will bring up the Site Servicing Status node.&nbsp; Right-click the Update Package Name and again click “Show Status” which is also very informative.</p> <p><a href="https://msdnshared.blob.core.windows.net/media/2016/03/image164.png"><img title="image" style="border-left-width: 0px;border-right-width: 0px;border-bottom-width: 0px;padding-top: 0px;padding-left: 0px;margin: 0px;padding-right: 0px;border-top-width: 0px" border="0" alt="image" src="https://msdnshared.blob.core.windows.net/media/2016/03/image_thumb129.png" width="203" height="145"></a><a href="https://msdnshared.blob.core.windows.net/media/2016/03/image165.png"><img title="image" style="border-left-width: 0px;border-right-width: 0px;border-bottom-width: 0px;padding-top: 0px;padding-left: 0px;padding-right: 0px;border-top-width: 0px" border="0" alt="image" src="https://msdnshared.blob.core.windows.net/media/2016/03/image_thumb130.png" width="600" height="334"></a></p> <p>You may see an error on occasion in dmpdownloader.log or ConfigMgrSetup.log.</p> <p><a href="https://msdnshared.blob.core.windows.net/media/2016/03/image149.png"><img title="image" style="border-left-width: 0px;border-right-width: 0px;border-bottom-width: 0px;padding-top: 0px;padding-left: 0px;padding-right: 0px;border-top-width: 0px" border="0" alt="image" src="https://msdnshared.blob.core.windows.net/media/2016/03/image_thumb116.png" width="863" height="108"></a></p> <p>In my experience, it seems to continue without fail, or recovers from this.&nbsp; If it appears everything is stopped for a long period of time, as long as CMUpdate.exe process is running, just be patient – this process can take some time, but killing cmupdate.exe or stopping services may cause issues, so be patient here.</p> <p>Finally, you should see the “State” change from “Downloading” to “Available”:</p> <p><a href="https://msdnshared.blob.core.windows.net/media/2016/03/image150.png"><img title="image" style="border-left-width: 0px;border-right-width: 0px;border-bottom-width: 0px;padding-top: 0px;padding-left: 0px;padding-right: 0px;border-top-width: 0px" border="0" alt="image" src="https://msdnshared.blob.core.windows.net/media/2016/03/image_thumb117.png" width="862" height="133"></a></p> <p>At this point, to be on the safe side I would recommend right-clicking the Configuration Manager 1602 node and selecting the “Run prerequisite check” option to verify your pre-requisites are all in place.&nbsp; This will also verify pre-requisites on any child primaries you have as well.</p> <p><a href="https://msdnshared.blob.core.windows.net/media/2016/03/image152.png"><img title="image" style="border-left-width: 0px;border-right-width: 0px;border-bottom-width: 0px;padding-top: 0px;padding-left: 0px;margin: 0px;padding-right: 0px;border-top-width: 0px" border="0" alt="image" src="https://msdnshared.blob.core.windows.net/media/2016/03/image_thumb118.png" width="410" height="231"></a></p> <p>The State column will change to “Checking prerequisites” and “Prereq Only” will change to “Yes”.</p> <p><a href="https://msdnshared.blob.core.windows.net/media/2016/03/image153.png"><img title="image" style="border-left-width: 0px;border-right-width: 0px;border-bottom-width: 0px;padding-top: 0px;padding-left: 0px;padding-right: 0px;border-top-width: 0px" border="0" alt="image" src="https://msdnshared.blob.core.windows.net/media/2016/03/image_thumb119.png" width="863" height="144"></a></p> <p>After a while, you’ll see C:\ConfigMgrPrereq.log begin updating.&nbsp; If the State changes to Prerequisite check failed, review ConfigMgrPrereq.log to determine why.&nbsp; Remediate the cause, and re-run the prerequisite checks again until the State finally changes to “Prerequisite check passed”</p> <p><a href="https://msdnshared.blob.core.windows.net/media/2016/03/image154.png"><img title="image" style="border-left-width: 0px;border-right-width: 0px;border-bottom-width: 0px;padding-top: 0px;padding-left: 0px;padding-right: 0px;border-top-width: 0px" border="0" alt="image" src="https://msdnshared.blob.core.windows.net/media/2016/03/image_thumb120.png" width="6" height="6"></a><a href="https://msdnshared.blob.core.windows.net/media/2016/03/image155.png"><img title="image" style="border-left-width: 0px;border-right-width: 0px;border-bottom-width: 0px;padding-top: 0px;padding-left: 0px;padding-right: 0px;border-top-width: 0px" border="0" alt="image" src="https://msdnshared.blob.core.windows.net/media/2016/03/image_thumb121.png" width="850" height="194"></a></p> <p>Now right-click the 1602 node and this time select “Install Update Pack”</p> <p><a href="https://msdnshared.blob.core.windows.net/media/2016/03/image156.png"><img title="image" style="border-left-width: 0px;border-right-width: 0px;border-bottom-width: 0px;padding-top: 0px;padding-left: 0px;padding-right: 0px;border-top-width: 0px" border="0" alt="image" src="https://msdnshared.blob.core.windows.net/media/2016/03/image_thumb122.png" width="410" height="231"></a></p> <p>You will be prompted with the following dialogs:</p> <p><a href="https://msdnshared.blob.core.windows.net/media/2016/03/image157.png"><img title="image" style="border-left-width: 0px;border-right-width: 0px;border-bottom-width: 0px;padding-top: 0px;padding-left: 0px;padding-right: 0px;border-top-width: 0px" border="0" alt="image" src="https://msdnshared.blob.core.windows.net/media/2016/03/image_thumb123.png" width="529" height="431"></a></p> <p>Select which features you want to enable in the following screen:</p> <p><a href="https://msdnshared.blob.core.windows.net/media/2016/03/image158.png"><img title="image" style="border-left-width: 0px;border-right-width: 0px;border-bottom-width: 0px;padding-top: 0px;padding-left: 0px;padding-right: 0px;border-top-width: 0px" border="0" alt="image" src="https://msdnshared.blob.core.windows.net/media/2016/03/image_thumb124.png" width="532" height="435"></a></p> <p>For the Options for Client Update prompt, I would recommend validating the client updates against a pre-production collection to be on the safe side.&nbsp; After validating, you should then roll out the new client to the remaining clients.</p> <p><a href="https://msdnshared.blob.core.windows.net/media/2016/03/image159.png"><img title="image" style="border-left-width: 0px;border-right-width: 0px;border-bottom-width: 0px;padding-top: 0px;padding-left: 0px;padding-right: 0px;border-top-width: 0px" border="0" alt="image" src="https://msdnshared.blob.core.windows.net/media/2016/03/image_thumb125.png" width="534" height="439"></a></p> <p>The last two screens displayed are the license terms, and summary pages.&nbsp; After finishing, the upgrade will proceed. Watch cmupdate.log for all the activity at this point as ConfigMgrSetup.log will no longer show any activity.&nbsp; You will see CMUpdate.log downloading content to your &lt;ConfigMgrInstallDir&gt;\CMUStaging directory.&nbsp; Also watch sitecomp.log for activity as well.</p> <p><a href="https://msdnshared.blob.core.windows.net/media/2016/03/image160.png"><img title="image" style="border-left-width: 0px;border-right-width: 0px;border-bottom-width: 0px;padding-top: 0px;padding-left: 0px;padding-right: 0px;border-top-width: 0px" border="0" alt="image" src="https://msdnshared.blob.core.windows.net/media/2016/03/image_thumb126.png" width="552" height="98"></a></p> <p>..and eventually:</p> <p><a href="https://msdnshared.blob.core.windows.net/media/2016/03/image162.png"><img title="image" style="border-left-width: 0px;border-right-width: 0px;border-bottom-width: 0px;padding-top: 0px;padding-left: 0px;padding-right: 0px;border-top-width: 0px" border="0" alt="image" src="https://msdnshared.blob.core.windows.net/media/2016/03/image_thumb127.png" width="553" height="132"></a></p> <p>After the upgrade is complete, the next time you launch the Configuration Manager Admin Console it will prompt you to update it.</p> <p><a href="https://msdnshared.blob.core.windows.net/media/2016/03/image163.png"><img title="image" style="border-left-width: 0px;border-right-width: 0px;border-bottom-width: 0px;padding-top: 0px;padding-left: 0px;padding-right: 0px;border-top-width: 0px" border="0" alt="image" src="https://msdnshared.blob.core.windows.net/media/2016/03/image_thumb128.png" width="428" height="177"></a></p> <p>Click OK, watch it upgrade, and if you have a standalone primary site, you’re all done.&nbsp; If you just finished upgrading the CAS, the child primaries will automatically begin upgrading next.&nbsp; If you have any secondary sites, you must update them manually.</p> <p>Depending on which option you picked on the “Client Update Options” screen, your clients, or a subset of them will also begin automatically upgrading.&nbsp; As always, the new client version will not be reflected in the console until they also run their next heartbeat discovery.</p> <p>Make sure you if you’re using SQL backups in lieu of the internal site backup maintenance task, that you’re also backing up the CD.Latest folder as well.&nbsp; Beginning with build 1511, this is your media for site recovery and reinstall activities.</p> <p>Thanks for reading!</p>]]></content:encoded>
    </item>
    <item>
      <title>ConfigMgr Powershell scripts presented at Houston PFE Tech Day</title>
      <link>https://docs.microsoft.com/archive/blogs/configmgr_geek_speak/configmgr-powershell-scripts-presented-at-houston-pfe-tech-day</link>
      <pubDate>Fri, 20 Feb 2015 09:20:00 GMT</pubDate>
      <dc:creator><![CDATA[Russ Rimmerman [MSFT]]]></dc:creator>
      <guid
        isPermaLink="false">https://blogs.technet.microsoft.com/configmgr_geek_speak/2015/02/20/configmgr-powershell-scripts-presented-at-houston-pfe-tech-day/</guid>
      <description><![CDATA[As promised during #HoustonTechDay, I have uploaded the Powershell scripts that I presented.&nbsp;...]]></description>
      <content:encoded><![CDATA[<p>As promised during #HoustonTechDay, I have uploaded the Powershell scripts that I presented.&nbsp; Disclaimer: All of my scripts are a continual &ldquo;work in progress&rdquo; so please always test in a lab to determine if you get the desired results.&nbsp; As such, if you do find any bugs, issues, or have some ideas for enhancing these scripts, feel free to let me know so I can correct them.</p>
<p>Thanks to all who attended the event!</p>
<p>InventoryCapture &ndash; Capture client hardware/software inventory or heartbeat before they upload to the management point, and output to CSV files for review <a title="https://gallery.technet.microsoft.com/Configuration-Manager-5eeaa49a" href="https://gallery.technet.microsoft.com/Configuration-Manager-5eeaa49a">https://gallery.technet.microsoft.com/Configuration-Manager-5eeaa49a</a></p>
<p>DPPing &ndash; Determine ICMP latency between clients and the distribution points within their boundary <a title="https://gallery.technet.microsoft.com/Determine-the-latency-46d2cd19" href="https://gallery.technet.microsoft.com/Determine-the-latency-46d2cd19">https://gallery.technet.microsoft.com/Determine-the-latency-46d2cd19</a></p>
<p>PatchTuesdayDeploymentCreator &ndash; Create dynamic deployments based on a number of days after Patch Tuesday&nbsp; <a title="https://gallery.technet.microsoft.com/Patch-Tuesday-Deployment-f57cf9fc" href="https://gallery.technet.microsoft.com/Patch-Tuesday-Deployment-f57cf9fc">https://gallery.technet.microsoft.com/Patch-Tuesday-Deployment-f57cf9fc</a></p>
<p>RemoveExpiredUpdatesFromallGroups &ndash; Remove all expired software updates from all software update groups <a title="https://gallery.technet.microsoft.com/Remove-expired-updates-be68d12a" href="https://gallery.technet.microsoft.com/Remove-expired-updates-be68d12a">https://gallery.technet.microsoft.com/Remove-expired-updates-be68d12a</a></p>
<p>MaintWindowCreate &ndash; Create dynamic maintenance windows based on a number of days after Patch Tuesday <a title="https://gallery.technet.microsoft.com/Create-dynamic-maintenance-0f160f16" href="https://gallery.technet.microsoft.com/Create-dynamic-maintenance-0f160f16">https://gallery.technet.microsoft.com/Create-dynamic-maintenance-0f160f16</a></p>
<p>DPMonRedist &ndash; Uses a status filter rule automatically redistribute a package to a distribution point which has generated a content validation failed message. <a title="https://gallery.technet.microsoft.com/Distribution-Point-Monitor-f0d68e19" href="https://gallery.technet.microsoft.com/Distribution-Point-Monitor-f0d68e19">https://gallery.technet.microsoft.com/Distribution-Point-Monitor-f0d68e19</a></p>
<p>DPContentFix &ndash; Prompts for which distribution point to check, enumerates all packages and which distribution points they&rsquo;re distributed to, and compares the two results.&nbsp; The &ldquo;Fix&rdquo; button will initiate a redistribute on the selected package or packages. <a title="https://gallery.technet.microsoft.com/Find-and-fix-content-out-70edee54" href="https://gallery.technet.microsoft.com/Find-and-fix-content-out-70edee54">https://gallery.technet.microsoft.com/Find-and-fix-content-out-70edee54</a></p>
<p>ComputerImporter &ndash; Allows technicians who don&rsquo;t have the ConfigMgr admin console installed the ability to import new devices into specified collection. <a title="https://gallery.technet.microsoft.com/Import-new-computers-cf57e377" href="https://gallery.technet.microsoft.com/Import-new-computers-cf57e377">https://gallery.technet.microsoft.com/Import-new-computers-cf57e377</a></p>
<p>I also HIGHLY recommend checking out MVP David OBrien&rsquo;s <a href="https://www.david-obrien.net/2014/01/update-inventory-script-makes-configmgr-life-easier/">CM12 documentation builder script</a> which is extremely cool.&nbsp; Another very cool script I recommend checking out is Nikolaj Andersen&rsquo;s <a href="https://www.scconfigmgr.com/2013/12/18/configmgr-2012-r2-prerequisites-installation-tool/">Configuration Manager 2012 Prerequisites tool.</a></p>]]></content:encoded>
    </item>
    <item>
      <title>Use Configuration Manager 2012 Compliance Settings to check for the existence of a PKI certificate</title>
      <link>https://docs.microsoft.com/archive/blogs/configmgr_geek_speak/use-configuration-manager-2012-compliance-settings-to-check-for-the-existence-of-a-pki-certificate</link>
      <pubDate>Fri, 10 Jan 2014 10:45:46 GMT</pubDate>
      <dc:creator><![CDATA[Russ Rimmerman [MSFT]]]></dc:creator>
      <guid
        isPermaLink="false">https://blogs.technet.microsoft.com/configmgr_geek_speak/2014/01/10/use-configuration-manager-2012-compliance-settings-to-check-for-the-existence-of-a-pki-certificate/</guid>
      <description><![CDATA[I recently had a request for a way to determine if a specific PKI certificate was installed on...]]></description>
      <content:encoded><![CDATA[<p>I recently had a request for a way to determine if a specific PKI certificate was installed on clients or not.&nbsp; To accomplish this task, I decided the easiest method would be to create a simple PowerShell script which would check for the existence of the certificate, and then use the infinitely powerful Compliance Settings feature of Configuration Manager 2012 (formerly known as DCM or Desired Configuration Management in Configuration Manager 2007) to run the script and report back the results.</p> <p>First, here’s a snip of the details of a sample certificate I wanted to check for.&nbsp; Notice that the Issuer is “russlab-LABHOST-CA”.&nbsp; You could check the certificates Issuer, Subject, or any other property, but in my case, I’m going to look for the Issuer.</p> <p><a href="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/94/77/metablogapi/image_24D97D8A.png" original-url="https://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-94-77-metablogapi/image_5F00_24D97D8A.png"><img title="image" style="border-left-width:0px;border-right-width:0px;background-image:none;border-bottom-width:0px;padding-top:0px;padding-left:0px;display:inline;padding-right:0px;border-top-width:0px;" border="0" alt="image" src="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/94/77/metablogapi/image_thumb_424E5F47.png" original-url="https://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-94-77-metablogapi/image_5F00_thumb_5F00_424E5F47.png" width="347" height="433" /></a></p> <p>You have two options for running PowerShell scripts on clients, one is to sign the script with a trusted certificate, and the other is to set the PowerShell execution policy to “Bypass”.&nbsp; In my example, I won’t be signing my PowerShell script, so I will go into Administration-&gt;Client Settings and select the default or create a new Client Settings.&nbsp; Then go into the “Computer Agent” section of the client settings, and set the PowerShell execution policy to “Bypass”.&nbsp; This allows unsigned PowerShell scripts to execute when executed by the Computer Agent.&nbsp; If you don’t use the default client settings, you’ll also need to make sure the custom client settings you created are also deployed to the collection you will be checking compliance on.</p> <p><a href="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/94/77/metablogapi/image_2403A851.png" original-url="https://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-94-77-metablogapi/image_5F00_2403A851.png"><img title="image" style="border-left-width:0px;border-right-width:0px;background-image:none;border-bottom-width:0px;padding-top:0px;padding-left:0px;display:inline;padding-right:0px;border-top-width:0px;" border="0" alt="image" src="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/94/77/metablogapi/image_thumb_0312C65B.png" original-url="https://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-94-77-metablogapi/image_5F00_thumb_5F00_0312C65B.png" width="516" height="399" /></a></p> <p>Now, go to Assets and Compliance-&gt;Compliance Settings-&gt;Configuration Items and click “Create Configuration Item”.&nbsp; The Create CI Wizard will appear.&nbsp; Give it a meaningful name, select any categories if desired, and click “Next”.</p> <p><a href="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/94/77/metablogapi/image_4755BE58.png" original-url="https://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-94-77-metablogapi/image_5F00_4755BE58.png"><img title="image" style="border-left-width:0px;border-right-width:0px;background-image:none;border-bottom-width:0px;padding-top:0px;padding-left:0px;display:inline;padding-right:0px;border-top-width:0px;" border="0" alt="image" src="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/94/77/metablogapi/image_thumb_746D3BD7.png" original-url="https://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-94-77-metablogapi/image_5F00_thumb_5F00_746D3BD7.png" width="516" height="456" /></a></p> <p>Select which operating systems are applicable and click “Next”</p> <p><a href="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/94/77/metablogapi/image_1D0BA7DF.png" original-url="https://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-94-77-metablogapi/image_5F00_1D0BA7DF.png"><img title="image" style="border-left-width:0px;border-right-width:0px;background-image:none;border-bottom-width:0px;padding-top:0px;padding-left:0px;display:inline;padding-right:0px;border-top-width:0px;" border="0" alt="image" src="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/94/77/metablogapi/image_thumb_1CA2059B.png" original-url="https://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-94-77-metablogapi/image_5F00_thumb_5F00_1CA2059B.png" width="518" height="454" /></a></p> <p>Click “New” to add a new setting to the CI.</p> <p><a href="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/94/77/metablogapi/image_0C2994A0.png" original-url="https://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-94-77-metablogapi/image_5F00_0C2994A0.png"><img title="image" style="border-left-width:0px;border-right-width:0px;background-image:none;border-bottom-width:0px;padding-top:0px;padding-left:0px;display:inline;padding-right:0px;border-top-width:0px;" border="0" alt="image" src="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/94/77/metablogapi/image_thumb_091736AB.png" original-url="https://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-94-77-metablogapi/image_5F00_thumb_5F00_091736AB.png" width="520" height="458" /></a></p> <p>Give the setting a meaningful name, change the Setting type to “Script” and leave the Data type “String”.&nbsp; Then click “Add Script”</p> <p><a href="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/94/77/metablogapi/image_0AE78C72.png" original-url="https://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-94-77-metablogapi/image_5F00_0AE78C72.png"><img title="image" style="border-left-width:0px;border-right-width:0px;background-image:none;border-bottom-width:0px;padding-top:0px;padding-left:0px;display:inline;padding-right:0px;border-top-width:0px;" border="0" alt="image" src="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/94/77/metablogapi/image_thumb_7EE82CEE.png" original-url="https://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-94-77-metablogapi/image_5F00_thumb_5F00_7EE82CEE.png" width="524" height="494" /></a></p> <p>Here’s the PowerShell script I created for this demonstration.&nbsp; It first sets a variable called “Compliance” to a value of “Compliant”.&nbsp; This way, if the certificate does NOT exist, we will call the machine compliant.&nbsp; If the certificate DOES exist, we will set the Compliance variable to “Non-Compliant”.&nbsp; This assumes you do not want this certificate to be on any client.&nbsp; If you want to make sure the cert IS on the clients, you can either flip things around in the script, or set the string to “Non-Compliant” instead of “Compliant” in the upcoming step.&nbsp; You can massage the $Check = line to meet your specific needs.&nbsp; The next line says if the results of the $Check has any data in it, set the variable $Compliance to “Non-Compliant”.&nbsp; Otherwise, it will still be set to “Compliant” because of the first line.&nbsp; Finally, we echo out the value of $Compliance so ConfigMgr has something to go on.</p> <p><a href="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/94/77/metablogapi/image_49DE2E6F.png" original-url="https://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-94-77-metablogapi/image_5F00_49DE2E6F.png"><img title="image" style="border-left-width:0px;border-right-width:0px;background-image:none;border-bottom-width:0px;padding-top:0px;padding-left:0px;display:inline;padding-right:0px;border-top-width:0px;" border="0" alt="image" src="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/94/77/metablogapi/image_thumb_6BC990F3.png" original-url="https://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-94-77-metablogapi/image_5F00_thumb_5F00_6BC990F3.png" width="586" height="48" /></a></p> <p>Here it is again in copy/paste friendly format:</p> <p>$Compliance = &#39;Compliant&#39;<br />$Check = get-childitem -path cert:\localmachine -recurse | where-object {$_.Issuer -like &#39;*RussLab*&#39;}<br />If ($Check) {$Compliance = &#39;Non-Compliant&#39;}<br />$Compliance </p> <p>Now that you’ve pasted the script in, click the “Compliance Rules” tab and click “New” to add a new rule.</p> <p><a href="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/94/77/metablogapi/image_34EF3CAD.png" original-url="https://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-94-77-metablogapi/image_5F00_34EF3CAD.png"><img title="image" style="border-left-width:0px;border-right-width:0px;background-image:none;border-bottom-width:0px;padding-top:0px;padding-left:0px;display:inline;padding-right:0px;border-top-width:0px;" border="0" alt="image" src="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/94/77/metablogapi/image_thumb_36535F7F.png" original-url="https://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-94-77-metablogapi/image_5F00_thumb_5F00_36535F7F.png" width="521" height="491" /></a></p> <p>Give the rule a meaningful name, and put the word “Compliant” into the values.&nbsp; As mentioned earlier, if you want to make sure the cert DOES exist on the machine, change this to “Non-Compliant” instead.&nbsp; Select a severity level for Noncompliance and click “OK”.</p> <p><a href="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/94/77/metablogapi/image_6D304476.png" original-url="https://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-94-77-metablogapi/image_5F00_6D304476.png"><img title="image" style="border-left-width:0px;border-right-width:0px;background-image:none;border-bottom-width:0px;padding-top:0px;padding-left:0px;display:inline;padding-right:0px;border-top-width:0px;" border="0" alt="image" src="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/94/77/metablogapi/image_thumb_11582FB7.png" original-url="https://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-94-77-metablogapi/image_5F00_thumb_5F00_11582FB7.png" width="524" height="539" /></a></p> <p>Next, Next through the wizard until the CI wizard completes.</p> <p>Now go to Configuration Baselines and click “Create Configuration Baseline”</p> <p>Click “Add”, and select “Configuration Items”</p> <p>Add the CI you just created, select any assigned categories if you wish, and click “OK” a couple of times until the Create Baseline wizard completes.</p> <p><a href="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/94/77/metablogapi/image_45202608.png" original-url="https://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-94-77-metablogapi/image_5F00_45202608.png"><img title="image" style="border-left-width:0px;border-right-width:0px;background-image:none;border-bottom-width:0px;padding-top:0px;padding-left:0px;display:inline;padding-right:0px;border-top-width:0px;" border="0" alt="image" src="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/94/77/metablogapi/image_thumb_5E1E86FE.png" original-url="https://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-94-77-metablogapi/image_5F00_thumb_5F00_5E1E86FE.png" width="526" height="479" /></a></p> <p>Now, right-click the new Configuration Baseline you just created and select “Deploy”.</p> <p>Click “Browse” and select the collection you want to check for the existence of the certificate on.&nbsp; Select a schedule of how often you want to check the clients.</p> <p><a href="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/94/77/metablogapi/image_4D39E30E.png" original-url="https://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-94-77-metablogapi/image_5F00_4D39E30E.png"><img title="image" style="border-left-width:0px;border-right-width:0px;background-image:none;border-bottom-width:0px;padding-top:0px;padding-left:0px;display:inline;padding-right:0px;border-top-width:0px;" border="0" alt="image" src="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/94/77/metablogapi/image_thumb_6874CCC0.png" original-url="https://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-94-77-metablogapi/image_5F00_thumb_5F00_6874CCC0.png" width="530" height="532" /></a></p> <p>Click OK to complete the Deploy Configuration Baselines wizard.</p> <p>Now, initiate a Machine Policy Retrieval on your test client to speed things along a bit, and then go to the Configuration tab.&nbsp; Once it appears, click the ‘&#39;Evaluate” button to once again speed things along a bit.</p> <p><a href="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/94/77/metablogapi/image_579028D0.png" original-url="https://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-94-77-metablogapi/image_5F00_579028D0.png"><img title="image" style="border-left-width:0px;border-right-width:0px;background-image:none;border-bottom-width:0px;padding-top:0px;padding-left:0px;display:inline;padding-right:0px;border-top-width:0px;" border="0" alt="image" src="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/94/77/metablogapi/image_thumb_074DD150.png" original-url="https://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-94-77-metablogapi/image_5F00_thumb_5F00_074DD150.png" width="531" height="633" /></a></p> <p>As you can see, it will come back with either Compliant or Non-Compliant.&nbsp; In my demo, it came back as Non-Compliant because I didn’t want the certificate to exist on my clients, but it does exist.</p> <p><a href="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/94/77/metablogapi/image_0FD1309A.png" original-url="https://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-94-77-metablogapi/image_5F00_0FD1309A.png"><img title="image" style="border-left-width:0px;border-right-width:0px;background-image:none;border-bottom-width:0px;padding-top:0px;padding-left:0px;display:inline;padding-right:0px;border-top-width:0px;" border="0" alt="image" src="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/94/77/metablogapi/image_thumb_78A5B61B.png" original-url="https://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-94-77-metablogapi/image_5F00_thumb_5F00_78A5B61B.png" width="532" height="635" /></a></p> <p>Now, you can also run a built in report like “Summary compliance by configuration baseline” or another preferred report.</p> <p>Voila!&nbsp; Now I know that my client has the certificate on it that I don’t want it to have!</p> <p><a href="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/94/77/metablogapi/image_2F16681E.png" original-url="https://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-94-77-metablogapi/image_5F00_2F16681E.png"><img title="image" style="border-left-width:0px;border-right-width:0px;background-image:none;border-bottom-width:0px;padding-top:0px;padding-left:0px;display:inline;padding-right:0px;border-top-width:0px;" border="0" alt="image" src="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/94/77/metablogapi/image_thumb_20DA7FDF.png" original-url="https://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-94-77-metablogapi/image_5F00_thumb_5F00_20DA7FDF.png" width="842" height="374" /></a></p> <p>Now, what if you want to verify that you have your “ConfigMgr Client Certificate” on all your clients before enabling HTTPS across the board?&nbsp; The challenge with this is if you followed the directions on TechNet to a T, you don’t have any friendly name to search on, and only the certificate template is something unique to look for.</p> <p>A script like the one below pasted into your CI will accomplish this verification (assuming you named your ConfigMgr Client Certificate template the same as mine if you followed <a title="https://technet.microsoft.com/en-us/library/gg682023.aspx#BKMK_client2008_cm2012" href="https://technet.microsoft.com/en-us/library/gg682023.aspx#BKMK_client2008_cm2012">https://technet.microsoft.com/en-us/library/gg682023.aspx#BKMK_client2008_cm2012</a> to create your ConfigMgr client certificate templates.&nbsp; If not, just modify the Template –eq line to meet your needs to match your template.)</p> <p>$cert = Get-ChildItem Cert:\localmachine\My | <br />&nbsp;&nbsp;&nbsp; % {<br />&nbsp;&nbsp;&nbsp; $_ | Select `<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Friendlyname,<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Thumbprint,<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; @{N=&quot;Template&quot;;E={($_.Extensions | <br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ?{$_.oid.Friendlyname -match &quot;Certificate Template Information&quot;}).Format(0) `<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; -replace &quot;(.+)?=(.+)\((.+)?&quot;, &#39;$2&#39;}},<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; @{N=&quot;Subject&quot;;E={$_.SubjectName.name}}<br />&nbsp;&nbsp;&nbsp; }</p> <p>foreach ($a in $cert)<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; {<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if ($a.Template -eq &quot;ConfigMgr Client Certificate&quot;) {$Compliance = &quot;Compliant&quot;}<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<br />$Compliance</p>  <p>&nbsp;</p> <p>Enjoy!</p>]]></content:encoded>
    </item>
    <item>
      <title>Inventorying and Reporting Scanners, Digital Cameras, and Webcams connected to Configuration Manager 2012 Clients</title>
      <link>https://docs.microsoft.com/archive/blogs/configmgr_geek_speak/inventorying-and-reporting-scanners-digital-cameras-and-webcams-connected-to-configuration-manager-2012-clients</link>
      <pubDate>Tue, 07 Jan 2014 19:56:06 GMT</pubDate>
      <dc:creator><![CDATA[Russ Rimmerman [MSFT]]]></dc:creator>
      <guid
        isPermaLink="false">https://blogs.technet.microsoft.com/configmgr_geek_speak/2014/01/07/inventorying-and-reporting-scanners-digital-cameras-and-webcams-connected-to-configuration-manager-2012-clients/</guid>
      <description><![CDATA[&nbsp; Similar to one of my past blog posts on how to go about collecting network adapter driver...]]></description>
      <content:encoded><![CDATA[<p>&nbsp;</p> <p>Similar to one of my <a href="https://blogs.technet.com/b/configmgr_geek_speak/archive/2013/11/10/inventorying-and-reporting-network-adapter-driver-details-and-how-to-report-only-the-wireless-type-in-configuration-manager-2012.aspx" target="_blank">past blog posts</a> on how to go about collecting network adapter driver information including which are wireless versus wired adapters, you can also collect things like Scanners, Digital Cameras, and WebCams which are attached to your clients. </p> <p>The registry key for these “Imaging Devices” is located in the registry at <strong>HKLM\SYSTEM\CurrentControlSet\Control\Class\{6bdd1fc6-810f-11d0-bec7-08002be2092f}&nbsp; </strong></p> <p>If you take a look at <a href="https://msdn.microsoft.com/en-us/windows/ff548376(v=vs.71).aspx" target="_blank">this MSDN page</a> for STI_DEVICE_TYPE Enumeration, you’ll learn that for the <strong>DeviceType</strong> registry value, </p> <p>Scanner&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; = 1<br />DigitalCamera&nbsp;&nbsp; = 2<br />StreamingVideo&nbsp; = 3</p> <p>For the value <strong>SubClass</strong>, “StillImage” is also a value that exists for Digital Cameras and Scanners as they are obviously still image creation devices.</p> <p>Now – let’s get on with the fun!</p> <p>Make a backup of your current configuration.mof in your \Inboxes\clifiles.src\hinv, and copy and paste the information from the configuration.mof snip to your Configuration.mof in (see below):</p> <p>[ dynamic, <br />&nbsp; provider(&quot;RegProv&quot;), <br />&nbsp; ClassContext(&quot;local|HKEY_LOCAL_MACHINE\\SYSTEM\\CurrentControlSet\\Control\\Class\\{6bdd1fc6-810f-11d0-bec7-08002be2092f}&quot;) <br />] <br />class Win32Reg_ImagingDevices<br />{ <br />&nbsp;&nbsp;&nbsp; [key] <br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; string&nbsp;&nbsp;&nbsp; Index;<br />&nbsp;&nbsp;&nbsp; [PropertyContext(&quot;DeviceType&quot;)] <br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; uint32 DeviceType;&nbsp; <br />&nbsp;&nbsp;&nbsp; [PropertyContext(&quot;DriverDesc&quot;)] <br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; string&nbsp;&nbsp;&nbsp; DriverDesc; <br />&nbsp;&nbsp;&nbsp; [PropertyContext(&quot;DriverVersion&quot;)] <br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; string&nbsp;&nbsp;&nbsp; DriverVersion; <br />&nbsp;&nbsp;&nbsp; [PropertyContext(&quot;DriverDate&quot;)&nbsp; ] <br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; string&nbsp;&nbsp;&nbsp; DriverDate; <br />&nbsp;&nbsp;&nbsp; [PropertyContext(&quot;ProviderName&quot;)]<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; string&nbsp;&nbsp;&nbsp; ProviderName;<br />&nbsp;&nbsp;&nbsp; [PropertyContext(&quot;SubClass&quot;)&nbsp; ] <br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; string&nbsp;&nbsp;&nbsp; SubClass; <br />};</p> <p>Paste it into configuration.mof on your site server between the section at the bottom in between “// Added extensions start” and “//Added extensions end” and save it, so the final result looked like this:</p> <p><a href="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/94/77/metablogapi/image_48CC930B.png" original-url="https://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-94-77-metablogapi/image_5F00_48CC930B.png"><img title="image" style="border-top:0px;border-right:0px;background-image:none;border-bottom:0px;padding-top:0px;padding-left:0px;border-left:0px;display:inline;padding-right:0px;" border="0" alt="image" src="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/94/77/metablogapi/image_thumb_2847E40A.png" original-url="https://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-94-77-metablogapi/image_5F00_thumb_5F00_2847E40A.png" width="718" height="302" /></a></p> <p>Next, enter the information from the snip below into a <em>somefilename</em>.MOF for importing into your hardware inventory section of Administration/Client Settings.&nbsp; All of this will be inserted into the new SQL View it will automatically create named “v_GS_IMAGING_DEVICES”.</p> <p>#pragma namespace (&quot;\\\\.\\root\\cimv2\\sms&quot;) <br />&nbsp; <br />&nbsp; [ SMS_Report&nbsp;&nbsp;&nbsp;&nbsp; (TRUE), <br />&nbsp; SMS_Group_Name (&quot;Imaging Devices&quot;), <br />&nbsp; SMS_Class_ID&nbsp;&nbsp; (&quot;MICROSOFT|IMAGING_DEVICES|1.0&quot;), <br />&nbsp; Namespace&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (&quot;\\\\\\\\localhost\\\\root\\\\cimv2&quot;) ] <br />&nbsp; <br />&nbsp; class Win32Reg_ImagingDevices : SMS_Class_Template <br />&nbsp; { <br />&nbsp;&nbsp;&nbsp; [SMS_Report (TRUE), key ] <br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; string Index; <br />&nbsp;&nbsp;&nbsp; [SMS_Report (TRUE)&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ] <br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; uint32 DeviceType; <br />&nbsp;&nbsp;&nbsp; [SMS_Report (TRUE)&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ] <br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; string DriverDesc; <br />&nbsp;&nbsp;&nbsp; [SMS_Report (TRUE)&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ] <br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; string DriverVersion; <br />&nbsp;&nbsp;&nbsp; [SMS_Report (TRUE)&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ] <br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; string DriverDate; <br />&nbsp;&nbsp;&nbsp; [SMS_Report (TRUE)&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ] <br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; string ProviderName; <br />&nbsp;&nbsp;&nbsp; [SMS_Report (TRUE)&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ] <br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; string SubClass; <br />&nbsp; };</p> <p>Here’s what the .MOF you’ll import into client settings should end up looking like:</p> <p><a href="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/94/77/metablogapi/image_7609EACF.png" original-url="https://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-94-77-metablogapi/image_5F00_7609EACF.png"><img title="image" style="border-top:0px;border-right:0px;background-image:none;border-bottom:0px;padding-top:0px;padding-left:0px;border-left:0px;display:inline;padding-right:0px;" border="0" alt="image" src="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/94/77/metablogapi/image_thumb_7363BFCF.png" original-url="https://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-94-77-metablogapi/image_5F00_thumb_5F00_7363BFCF.png" width="591" height="564" /></a></p> <p>Go to Administration/Client Settings and modify Default Client Settings on your top-level site server.&nbsp; Drill into the Hardware Inventory, and click “Set Classes”:</p> <p><a href="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/94/77/metablogapi/image_thumb5_26B15692.png" original-url="https://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-94-77-metablogapi/image_5F00_thumb5_5F00_26B15692.png"><img title="image_thumb5" style="border-left-width:0px;border-right-width:0px;background-image:none;border-bottom-width:0px;padding-top:0px;padding-left:0px;margin:0px;display:inline;padding-right:0px;border-top-width:0px;" border="0" alt="image_thumb5" src="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/94/77/metablogapi/image_thumb5_thumb_583F54D8.png" original-url="https://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-94-77-metablogapi/image_5F00_thumb5_5F00_thumb_5F00_583F54D8.png" width="928" height="420" /></a></p> <p>Next, click “Import” and browse to the .MOF file you saved.</p> <p><a href="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/94/77/metablogapi/image_thumb11_22C92364.png" original-url="https://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-94-77-metablogapi/image_5F00_thumb11_5F00_22C92364.png"><img title="image_thumb11" style="border-left-width:0px;border-right-width:0px;background-image:none;border-bottom-width:0px;padding-top:0px;padding-left:0px;margin:0px;display:inline;padding-right:0px;border-top-width:0px;" border="0" alt="image_thumb11" src="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/94/77/metablogapi/image_thumb11_thumb_66364628.png" original-url="https://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-94-77-metablogapi/image_5F00_thumb11_5F00_thumb_5F00_66364628.png" width="928" height="793" /></a></p> <p>Leave the “Import Summary” option at the default of “Import both hardware inventory classes and hardware inventory class settings”.&nbsp; Once again click the “Import” button.</p> <p><a href="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/94/77/metablogapi/image_thumb3_1BD122F2.png" original-url="https://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-94-77-metablogapi/image_5F00_thumb3_5F00_1BD122F2.png"><img title="image_thumb3" style="border-left-width:0px;border-right-width:0px;background-image:none;border-bottom-width:0px;padding-top:0px;padding-left:0px;margin:0px;display:inline;padding-right:0px;border-top-width:0px;" border="0" alt="image_thumb3" src="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/94/77/metablogapi/image_thumb3_thumb_790FEB34.png" original-url="https://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-94-77-metablogapi/image_5F00_thumb3_5F00_thumb_5F00_790FEB34.png" width="676" height="267" /></a></p> <p>Select which classes you want to collect, and click OK a couple times.</p> <p><a href="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/94/77/metablogapi/image_thumb1_564EB377.png" original-url="https://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-94-77-metablogapi/image_5F00_thumb1_5F00_564EB377.png"><img title="image_thumb1" style="border-left-width:0px;border-right-width:0px;background-image:none;border-bottom-width:0px;padding-top:0px;padding-left:0px;margin:0px;display:inline;padding-right:0px;border-top-width:0px;" border="0" alt="image_thumb1" src="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/94/77/metablogapi/image_thumb1_thumb_7AE2D1AC.png" original-url="https://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-94-77-metablogapi/image_5F00_thumb1_5F00_thumb_5F00_7AE2D1AC.png" width="649" height="227" /></a></p> <p>Now, initiate a machine policy retrieval and a hardware inventory on a client or two which has a Scanner or other imaging device connected so the database gets populated with the new SQL view.&nbsp; You can confirm the view exists by running a select * from v_GS_Imaging_Devices in SQL Management studio to confirm that you can proceed with creating the report.</p> <p>Next, go to Monitoring-&gt;Reporting-&gt;Reports and click “Create Report”</p> <p><a href="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/94/77/metablogapi/image_thumb77_4EC5D4BB.png" original-url="https://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-94-77-metablogapi/image_5F00_thumb77_5F00_4EC5D4BB.png"><img title="image_thumb77" style="border-left-width:0px;border-right-width:0px;background-image:none;border-bottom-width:0px;padding-top:0px;padding-left:0px;margin:0px;display:inline;padding-right:0px;border-top-width:0px;" border="0" alt="image_thumb77" src="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/94/77/metablogapi/image_thumb77_thumb_1A280931.png" original-url="https://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-94-77-metablogapi/image_5F00_thumb77_5F00_thumb_5F00_1A280931.png" width="238" height="384" /></a></p> <p>The “Create Report Wizard” will appear.&nbsp; Select “SQL-based Report”, give it a memorable name, and select which folder on your SSRS you want to store it in.&nbsp; Click “Next&quot;, “Next”, “Close”.</p> <p><a href="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/94/77/metablogapi/image_416F4673.png" original-url="https://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-94-77-metablogapi/image_5F00_416F4673.png"><img title="image" style="border-top:0px;border-right:0px;background-image:none;border-bottom:0px;padding-top:0px;padding-left:0px;border-left:0px;display:inline;padding-right:0px;" border="0" alt="image" src="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/94/77/metablogapi/image_thumb_4E6BB735.png" original-url="https://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-94-77-metablogapi/image_5F00_thumb_5F00_4E6BB735.png" width="518" height="441" /></a></p> <p>Once SQL Report Builder appears, select “Table or Matrix”:</p> <p><a href="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/94/77/metablogapi/image136_thumb_43C0F5C6.png" original-url="https://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-94-77-metablogapi/image136_5F00_thumb_5F00_43C0F5C6.png"><img title="image136_thumb" style="border-left-width:0px;border-right-width:0px;background-image:none;border-bottom-width:0px;padding-top:0px;padding-left:0px;margin:0px;display:inline;padding-right:0px;border-top-width:0px;" border="0" alt="image136_thumb" src="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/94/77/metablogapi/image136_thumb_thumb_53CFC47D.png" original-url="https://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-94-77-metablogapi/image136_5F00_thumb_5F00_thumb_5F00_53CFC47D.png" width="451" height="205" /></a></p> <p>And then “Create a Dataset”.&nbsp; The “New Table or Matrix” wizard appears with your Data Source Connection to your ConfigMgr database.&nbsp; Click the “Test Connection” if you want to confirm all is well.</p> <p><a href="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/94/77/metablogapi/image_thumb64_20FFBE09.png" original-url="https://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-94-77-metablogapi/image_5F00_thumb64_5F00_20FFBE09.png"><img title="image_thumb64" style="border-left-width:0px;border-right-width:0px;background-image:none;border-bottom-width:0px;padding-top:0px;padding-left:0px;margin:0px;display:inline;padding-right:0px;border-top-width:0px;" border="0" alt="image_thumb64" src="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/94/77/metablogapi/image_thumb64_thumb_2C980BF9.png" original-url="https://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-94-77-metablogapi/image_5F00_thumb64_5F00_thumb_5F00_2C980BF9.png" width="683" height="502" /></a></p> <p>If you don’t have the required permissions with your currently logged on account, instead of using your currently logged on credentials, type in the login credentials for an account which has the appropriate permissions to the site database, and click “Next”.</p> <p>In the “Design a query” wizard, expand dbo –&gt;Views:</p> <p><a href="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/94/77/metablogapi/image_thumb66_47643205.png" original-url="https://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-94-77-metablogapi/image_5F00_thumb66_5F00_47643205.png"><img title="image_thumb66" style="border-left-width:0px;border-right-width:0px;background-image:none;border-bottom-width:0px;padding-top:0px;padding-left:0px;margin:0px;display:inline;padding-right:0px;border-top-width:0px;" border="0" alt="image_thumb66" src="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/94/77/metablogapi/image_thumb66_thumb_6B1FEA50.png" original-url="https://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-94-77-metablogapi/image_5F00_thumb66_5F00_thumb_5F00_6B1FEA50.png" width="629" height="517" /></a></p> <p>Next, expand v_GS_IMAGING_DEVICES and select the values that you want included in your report.&nbsp; I recommend at a minimum ResourceID, DriverDate0, DriverDesc0, DriverVersion0, ProviderName0, SubClass0, and DeviceType0.&nbsp; These will be listed in v_GS_IMAGING_DEVICES which is our Imaging Device information:</p> <p><a href="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/94/77/metablogapi/image_thumb33_38BEA782.png" original-url="https://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-94-77-metablogapi/image_5F00_thumb33_5F00_38BEA782.png"><img title="image_thumb33" style="border-left-width:0px;border-right-width:0px;background-image:none;border-bottom-width:0px;padding-top:0px;padding-left:0px;margin:0px;display:inline;padding-right:0px;border-top-width:0px;" border="0" alt="image_thumb33" src="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/94/77/metablogapi/image_thumb33_thumb_3135C8C6.png" original-url="https://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-94-77-metablogapi/image_5F00_thumb33_5F00_thumb_5F00_3135C8C6.png" width="767" height="564" /></a></p> <p>Then, select Name0 from the v_GS_System view so that you will also get a computer name included.</p> <p><a href="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/94/77/metablogapi/image_thumb68_29ACEA0A.png" original-url="https://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-94-77-metablogapi/image_5F00_thumb68_5F00_29ACEA0A.png"><img title="image_thumb68" style="border-left-width:0px;border-right-width:0px;background-image:none;border-bottom-width:0px;padding-top:0px;padding-left:0px;margin:0px;display:inline;padding-right:0px;border-top-width:0px;" border="0" alt="image_thumb68" src="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/94/77/metablogapi/image_thumb68_thumb_1B04CED6.png" original-url="https://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-94-77-metablogapi/image_5F00_thumb68_5F00_thumb_5F00_1B04CED6.png" width="782" height="575" /></a></p> <p>Click on “Auto Detect”, and then click the “Add Relationships” button to the right of “Edit Fields”</p> <p><a href="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/94/77/metablogapi/image_thumb69_3A4A065A.png" original-url="https://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-94-77-metablogapi/image_5F00_thumb69_5F00_3A4A065A.png"><img title="image_thumb69" style="border-left-width:0px;border-right-width:0px;background-image:none;border-bottom-width:0px;padding-top:0px;padding-left:0px;margin:0px;display:inline;padding-right:0px;border-top-width:0px;" border="0" alt="image_thumb69" src="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/94/77/metablogapi/image_thumb69_thumb_154C45E1.png" original-url="https://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-94-77-metablogapi/image_5F00_thumb69_5F00_thumb_5F00_154C45E1.png" width="438" height="241" /></a></p> <p>Single click into the “Left Table”, selecting one of the two tables, then single click into the “Right Table”, and of course select the other view.&nbsp; Your join can be Inner, Left Outer, Right Outer, or Full Outer, but I’m not going to go into depth on SQL joins today, so you can read more about them <a href="https://www.sql-tutorial.net/SQL-JOIN.asp" target="_blank">here</a>.</p> <p><a href="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/94/77/metablogapi/image_thumb14_054007DB.png" original-url="https://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-94-77-metablogapi/image_5F00_thumb14_5F00_054007DB.png"><img title="image_thumb14" style="border-left-width:0px;border-right-width:0px;background-image:none;border-bottom-width:0px;padding-top:0px;padding-left:0px;margin:0px;display:inline;padding-right:0px;border-top-width:0px;" border="0" alt="image_thumb14" src="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/94/77/metablogapi/image_thumb14_thumb_301AFC9E.png" original-url="https://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-94-77-metablogapi/image_5F00_thumb14_5F00_thumb_5F00_301AFC9E.png" width="595" height="437" /></a></p> <p>Now, click the “Add Field” button:</p> <p><a href="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/94/77/metablogapi/image_thumb16_661F7BAB.png" original-url="https://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-94-77-metablogapi/image_5F00_thumb16_5F00_661F7BAB.png"><img title="image_thumb16" style="border-left-width:0px;border-right-width:0px;background-image:none;border-bottom-width:0px;padding-top:0px;padding-left:0px;margin:0px;display:inline;padding-right:0px;border-top-width:0px;" border="0" alt="image_thumb16" src="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/94/77/metablogapi/image_thumb16_thumb_6F0F0DEA.png" original-url="https://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-94-77-metablogapi/image_5F00_thumb16_5F00_thumb_5F00_6F0F0DEA.png" width="551" height="268" /></a></p> <p>Under the “Left Join Field”, select “ResourceID”.&nbsp; Then under the “Right Join Field” column, once again select “ResourceID”.&nbsp; ResourceID is the field which you should always be familiar with as pretty much every report that contains information about clients has a unique ResourceID value which identifies each client and allows you to join the various views together for reporting purposes. </p> <p><a href="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/94/77/metablogapi/image_thumb12_4A114D71.png" original-url="https://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-94-77-metablogapi/image_5F00_thumb12_5F00_4A114D71.png"><img title="image_thumb12" style="border-left-width:0px;border-right-width:0px;background-image:none;border-bottom-width:0px;padding-top:0px;padding-left:0px;margin:0px;display:inline;padding-right:0px;border-top-width:0px;" border="0" alt="image_thumb12" src="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/94/77/metablogapi/image_thumb12_thumb_67F26223.png" original-url="https://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-94-77-metablogapi/image_5F00_thumb12_5F00_thumb_5F00_67F26223.png" width="530" height="258" /></a></p> <p>Now the final result should look like the image below:</p> <p><a href="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/94/77/metablogapi/image_thumb31_29F8D165.png" original-url="https://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-94-77-metablogapi/image_5F00_thumb31_5F00_29F8D165.png"><img title="image_thumb31" style="border-left-width:0px;border-right-width:0px;background-image:none;border-bottom-width:0px;padding-top:0px;padding-left:0px;margin:0px;display:inline;padding-right:0px;border-top-width:0px;" border="0" alt="image_thumb31" src="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/94/77/metablogapi/image_thumb31_thumb_66B059F5.png" original-url="https://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-94-77-metablogapi/image_5F00_thumb31_5F00_thumb_5F00_66B059F5.png" width="670" height="492" /></a></p> <p>If all is well, click “Next” to continue, and on the “Arrange fields” step, drag “Name0” to the “Row groups” box, and the rest of the information you want associated with each computer name to the “Values” box” and click “Next”.</p> <p><a href="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/94/77/metablogapi/image_thumb20_1F5D94B4.png" original-url="https://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-94-77-metablogapi/image_5F00_thumb20_5F00_1F5D94B4.png"><img title="image_thumb20" style="border-left-width:0px;border-right-width:0px;background-image:none;border-bottom-width:0px;padding-top:0px;padding-left:0px;margin:0px;display:inline;padding-right:0px;border-top-width:0px;" border="0" alt="image_thumb20" src="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/94/77/metablogapi/image_thumb20_thumb_47FC00BB.png" original-url="https://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-94-77-metablogapi/image_5F00_thumb20_5F00_thumb_5F00_47FC00BB.png" width="569" height="418" /></a></p> <p>Uncheck the “Show subtotals and grand totals” and “Expand/collapse groups” checkboxes.</p> <p><a href="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/94/77/metablogapi/image_thumb30_058BEF36.png" original-url="https://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-94-77-metablogapi/image_5F00_thumb30_5F00_058BEF36.png"><img title="image_thumb30" style="border-left-width:0px;border-right-width:0px;background-image:none;border-bottom-width:0px;padding-top:0px;padding-left:0px;margin:0px;display:inline;padding-right:0px;border-top-width:0px;" border="0" alt="image_thumb30" src="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/94/77/metablogapi/image_thumb30_thumb_54F8717D.png" original-url="https://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-94-77-metablogapi/image_5F00_thumb30_5F00_thumb_5F00_54F8717D.png" width="668" height="491" /></a></p> <p>Select your favorite style, click Finish, and after your clients run their next hardware inventory, you should have a report showing each of your scanners, digital cameras, and webcams and their pertinent driver information, manufacturer, etc.&nbsp; You can also customize the column names to something more meaningful as I have below (ie. Name0 –&gt; Computer Name):</p> <p>Now, if you want to filter it down to something like only the scanners, under Datasets,&nbsp; right-click “DataSet1” and click “Properties”.</p> <p><a href="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/94/77/metablogapi/image_thumb24_4B330A05.png" original-url="https://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-94-77-metablogapi/image_5F00_thumb24_5F00_4B330A05.png"><img title="image_thumb24" style="border-left-width:0px;border-right-width:0px;background-image:none;border-bottom-width:0px;padding-top:0px;padding-left:0px;margin:0px;display:inline;padding-right:0px;border-top-width:0px;" border="0" alt="image_thumb24" src="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/94/77/metablogapi/image_thumb24_thumb_1D4847FE.png" original-url="https://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-94-77-metablogapi/image_5F00_thumb24_5F00_thumb_5F00_1D4847FE.png" width="237" height="491" /></a></p> <p>Then click “Filters” and click &quot;Add” to add a filter:</p> <p><a href="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/94/77/metablogapi/image_thumb71_618B3FFB.png" original-url="https://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-94-77-metablogapi/image_5F00_thumb71_5F00_618B3FFB.png"><img title="image_thumb71" style="border-left-width:0px;border-right-width:0px;background-image:none;border-bottom-width:0px;padding-top:0px;padding-left:0px;margin:0px;display:inline;padding-right:0px;border-top-width:0px;" border="0" alt="image_thumb71" src="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/94/77/metablogapi/image_thumb71_thumb_0EA02CCA.png" original-url="https://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-94-77-metablogapi/image_5F00_thumb71_5F00_thumb_5F00_0EA02CCA.png" width="688" height="198" /></a></p> <p>In “Expression” field, select “[DeviceType0]”.&nbsp; Leave the Operator at &quot;=”, and the value for all Scanners is “1”.</p> <p><a href="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/94/77/metablogapi/image_45D32B9D.png" original-url="https://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-94-77-metablogapi/image_5F00_45D32B9D.png"><img title="image" style="border-top:0px;border-right:0px;background-image:none;border-bottom:0px;padding-top:0px;padding-left:0px;border-left:0px;display:inline;padding-right:0px;" border="0" alt="image" src="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/94/77/metablogapi/image_thumb_0E8CA462.png" original-url="https://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-94-77-metablogapi/image_5F00_thumb_5F00_0E8CA462.png" width="695" height="314" /></a></p> <p>Save the report, run it again, and viola, only the scanners will appear for each client, along with their driver dates, descriptions, and versions.</p> <p><a href="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/94/77/metablogapi/image_thumb29_5E0F3FC2.png" original-url="https://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-94-77-metablogapi/image_5F00_thumb29_5F00_5E0F3FC2.png"><img title="image_thumb29" style="border-left-width:0px;border-right-width:0px;background-image:none;border-bottom-width:0px;padding-top:0px;padding-left:0px;margin:0px;display:inline;padding-right:0px;border-top-width:0px;" border="0" alt="image_thumb29" src="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/94/77/metablogapi/image_thumb29_thumb_5FDF9589.png" original-url="https://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-94-77-metablogapi/image_5F00_thumb29_5F00_thumb_5F00_5FDF9589.png" width="887" height="155" /></a></p> <p>Now, run the report and pat yourself on the back for making it to the end of this blog post (and hopefully you even have a working report!)</p>]]></content:encoded>
    </item>
    <item>
      <title>Translate “Content_" folders into plain English in the 2012 ConfigMgr Content Library</title>
      <link>https://docs.microsoft.com/archive/blogs/configmgr_geek_speak/translate-content_-folders-into-plain-english-in-the-2012-configmgr-content-library</link>
      <pubDate>Tue, 17 Dec 2013 11:08:05 GMT</pubDate>
      <dc:creator><![CDATA[Russ Rimmerman [MSFT]]]></dc:creator>
      <guid
        isPermaLink="false">https://blogs.technet.microsoft.com/configmgr_geek_speak/2013/12/17/translate-content_-folders-into-plain-english-in-the-2012-configmgr-content-library/</guid>
      <description><![CDATA[Understanding and troubleshooting the new content library in Configuration Manager 2012 can be...]]></description>
      <content:encoded><![CDATA[<p>Understanding and troubleshooting the new content library in Configuration Manager 2012 can be daunting at first.&nbsp; In ConfigMgr 2007, packages followed a standard XXXYYYYY package ID format, so you could look in your \SMSPKGX$ directory and know which package was which.</p> <p>With the introduction of applications in Configuration Manager 2012, applications and packagaes are now stored in a \SCCMContentLib folder, within the DataLib, FileLib, and PkgLib sub-folders.&nbsp; For more information on how these folders are used, see this <a href="https://blogs.technet.com/b/configmgrdogs/archive/2012/04/16/configmgr-2012-content-library-overview.aspx" target="_blank">blog post</a>.</p> <p>Now, what if you’re looking in distmgr.log and see something like <em>“Taking snapshot for content <font color="#ff0000">Content_54e07188-f697-44d3-8b2b-eb09234522be.1</font> from source </em><em>\\server\share</em><em>”</em></p> <p>Or on a client’s CAS.log stating something like <em>“Download started for <font color="#ff0000">content 0d5f261e-87c7-4e5d-872f-c92b12e1ac78.1</font>”</em></p> <p>Or while looking at a client’s Datatransferservice.log you run into an entry like <em>“UpdateURLWithTransportSettings(): NEW URL - </em><em>https://mylab.com:80/SMS_DP_SMSPKG$/<font color="#ff0000">Content_65fbb8e9-8de2-42da-ae80-44e52e44f95e.1</font></em><em>”</em></p> <p>Or maybe you’re looking through your Content Library’s DataLib and see the Content_ folders and want to know which applications they map to.</p> <p><a href="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/94/77/metablogapi/image_3F450DBC.png" original-url="https://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-94-77-metablogapi/image_5F00_3F450DBC.png"><img title="image" style="background-image:none;display:inline;" border="0" alt="image" src="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/94/77/metablogapi/image_thumb_7D65DA80.png" original-url="https://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-94-77-metablogapi/image_5F00_thumb_5F00_7D65DA80.png" width="682" height="267" /></a></p> <p>Quickly determining via the admin console which package is being referenced can be a challenge – you could add the “Content ID” column and go to the deployment types tab of each application to find a match…&nbsp; Your mouse may quickly tire out.</p> <p>I created an easier way using PowerShell to translate the Content_ directories into plain English package IDs and names.&nbsp; Below is an example of what this looks like in action.&nbsp; Just run the script, supplying the –dbserver, –dbname, and –content switches.&nbsp; If you just run .\contentxlate.ps1 without any switches, you’ll be prompted to enter each value.</p> <p><a href="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/94/77/metablogapi/image_7536E694.png" original-url="https://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-94-77-metablogapi/image_5F00_7536E694.png"><img title="image" style="border-top:0px;border-right:0px;background-image:none;border-bottom:0px;padding-top:0px;padding-left:0px;border-left:0px;display:inline;padding-right:0px;" border="0" alt="image" src="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/94/77/metablogapi/image_thumb_5B89EC6B.png" original-url="https://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-94-77-metablogapi/image_5F00_thumb_5F00_5B89EC6B.png" width="850" height="187" /></a></p> <p>Alternatively, you could create a single report to list out all applications with their Content_ folders and associated Pkg IDs:</p> <p>&nbsp;</p><pre class="csharpcode"><a href="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/94/77/metablogapi/image_655D34BB.png" original-url="https://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-94-77-metablogapi/image_5F00_655D34BB.png"><img title="image" style="border-top:0px;border-right:0px;background-image:none;border-bottom:0px;padding-top:0px;padding-left:0px;border-left:0px;display:inline;padding-right:0px;" border="0" alt="image" src="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/94/77/metablogapi/image_thumb_3B6886BA.png" original-url="https://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-94-77-metablogapi/image_5F00_thumb_5F00_3B6886BA.png" width="854" height="195" /></a></pre>
<p><font></font>&nbsp;</p>
<p><font color="#2a2a2a"></font><font color="#2a2a2a"></font>&nbsp;</p>
<p><font color="#2a2a2a">Here are both solutions depending on your needs.</font></p>
<p><font color="#2a2a2a"><u>SQL QUERY for a REPORT</u></font></p>
<p>SELECT LP.DisplayName,<br />CP.CI_ID,<br />CPS.PkgID,<br />CPS.ContentSubFolder<br />FROM dbo.CI_ContentPackages CPS<br />INNER JOIN dbo.CIContentPackage CP<br />ON CPS.PkgID = CP.PkgID<br />LEFT OUTER JOIN dbo.CI_LocalizedProperties LP<br />ON CP.CI_ID = LP.CI_ID<br />ORDER BY LP.LocaleID DESC</p>
<p>&nbsp;</p><pre class="csharpcode"><font color="#000000"><u>POWERSHELL SCRIPT</u></font></pre><pre class="csharpcode">&lt;#
.EXAMPLE
    PS C:\Scripts&gt; .\contentxlate.ps1 -dbserver yourdbserver.local -dbname CM_XXX -content Content_54e07188-f697-44d3-8b2b-eb09234522be.1

.NOTES
    NAME: contentxlate.ps1
    VERSION: 0.1
    AUTHOR: Russ Rimmerman, Premier Field Engineer
    LASTEDIT: December 17, 2013
    Change history:
        12.17.2013: Created script
#&gt;

Param(    
    [parameter(
    Position = 0, 
    Mandatory=$<span class="kwrd">true</span> )
    ] 
    [ValidateNotNullOrEmpty()]
    [<span class="kwrd">string</span>]$dbserver=<span class="str">&quot;&quot;</span>,
    
    [parameter(
    Position = 1, 
    Mandatory=$<span class="kwrd">true</span> )
    ]
    [ValidateNotNullOrEmpty()]
    [<span class="kwrd">string</span>]$dbname=<span class="str">&quot;&quot;</span>,

    [parameter(
    Position = 2, 
    Mandatory=$<span class="kwrd">true</span> )
    ] 
    [ValidateNotNullOrEmpty()]
    [<span class="kwrd">string</span>]$content=<span class="str">&quot;&quot;</span>
    
)

$sqlquery = <span class="str">&quot;SELECT LP.DisplayName,
CP.CI_ID,
CPS.PkgID
FROM dbo.CI_ContentPackages CPS
INNER JOIN dbo.CIContentPackage CP
ON CPS.PkgID = CP.PkgID
LEFT OUTER JOIN dbo.CI_LocalizedProperties LP
ON CP.CI_ID = LP.CI_ID
WHERE CPS.ContentSubFolder = `&#39;&quot;</span>
$sqlquery += $content
$sqlquery += <span class="str">&quot;`&#39; ORDER BY LP.LocaleID DESC&quot;</span>

invoke-sqlcmd -Serverinstance $dbserver -database $dbname -query $sqlquery</pre>
]]></content:encoded>
    </item>
    <item>
      <title>System Center 2012 R2 Configuration Manager Toolkit &amp; SDK Released</title>
      <link>https://docs.microsoft.com/archive/blogs/configmgr_geek_speak/system-center-2012-r2-configuration-manager-toolkit-sdk-released</link>
      <pubDate>Sat, 07 Dec 2013 20:24:59 GMT</pubDate>
      <dc:creator><![CDATA[Russ Rimmerman [MSFT]]]></dc:creator>
      <guid
        isPermaLink="false">https://blogs.technet.microsoft.com/configmgr_geek_speak/2013/12/07/system-center-2012-r2-configuration-manager-toolkit-sdk-released/</guid>
      <description><![CDATA[We’re pleased to announce the online release of the System Center 2012 R2 Configuration Manager...]]></description>
      <content:encoded><![CDATA[<p>We’re pleased to announce the online release of the System Center 2012 R2 Configuration Manager Toolkit &amp; SDK!</p>  <p>Download the toolkit from: <a href="https://www.microsoft.com/en-us/download/details.aspx?id=36213">https://www.microsoft.com/en-us/download/details.aspx?id=36213</a></p>  <p>Here is a summary of the changes and contents of the R2 Toolkit:</p>  <p><a href="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/94/77/metablogapi/5661.image_1E2085AF.png" original-url="https://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-94-77-metablogapi/5661.image_5F00_1E2085AF.png"><img title="image" style="display: inline; background-image: none;" border="0" alt="image" src="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/94/77/metablogapi/7762.image_thumb_7922C535.png" original-url="https://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-94-77-metablogapi/7762.image_5F00_thumb_5F00_7922C535.png" width="627" height="417" /></a>&#160; </p>  <p><b>Server Based Tools</b>&#160; </p>  <ul>   <li>* DP Job Manager - A tool that helps troubleshoot and manage ongoing content distribution jobs to Configuration Manager distribution points. </li>    <li>* Collection Evaluation Viewer - A tool that assists in troubleshooting collection evaluation related issues by viewing collection evaluation details. </li>    <li>* Content Library Explorer - A tool that assists in troubleshooting issues with and viewing the contents of the content library. </li>    <li>Security Configuration Wizard Template for Microsoft System Center 2012 R2 Configuration Manager - The Security Configuration Wizard (SCW) is an attack-surface reduction tool for the Microsoft Windows Server 2008 R2 operating system. Security Configuration Wizard determines the minimum functionality required for a server's role or roles, and disables functionality that is not required. </li>    <li>Content Library Transfer – A tool that transfers content from one disk drive to another. </li>    <li>Content Ownership Tool – A tool that changes ownership of orphaned packages (packages without an owner site server). </li>    <li>Role-based Administration Modeling and Auditing Tool – This tool helps administrators to model and audit RBA configurations. </li>    <li>Run Metering Summarization Tool - The purpose of this tool is to run the metering summarization task to analyze raw metering data </li> </ul>  <br /><b>Client Based Tools</b>   <ul>   <li>Client Spy - A tool that helps you troubleshoot issues related to software distribution, inventory, and software metering on System Center 2012 Configuration Manager clients. </li>    <li>Configuration Manager Trace Log Viewer – A tool used to view log files created by Configuration Manager components and agents. </li>    <li>Deployment Monitoring Tool - The Deployment Monitoring Tool is a graphical user interface designed help troubleshoot Applications, Updates, and Baseline deployments on System Center 2012 Configuration Manager clients. </li>    <li>Policy Spy - A policy viewer that helps you review and troubleshoot the policy system on System Center 2012 Configuration Manager clients. </li>    <li>Power Viewer Tool – A tool to view the status of power management feature on System Center 2012 Configuration Manager clients. </li>    <li>Send Schedule Tool - A tool used to trigger a schedule on a client or trigger the evaluation of a specified DCM Baseline. You can trigger a schedule either locally or remotely. </li>    <li>Wakeup Spy – A tool that provides a view of the power state of Configuration Manager client computers and which operate as managers or manages. </li> </ul>  <p>You can view the MSDN online SDK content here: <a href="https://msdn.microsoft.com/en-us/library/hh948960.aspx">https://msdn.microsoft.com/en-us/library/hh948960.aspx</a></p>  <p>Download the installable SDK from here: <a href="https://www.microsoft.com/en-us/download/details.aspx?id=29559">https://www.microsoft.com/en-us/download/details.aspx?id=29559</a></p>  <p>Here is a summary of the changes and contents of the R2 SDK:</p>  <p><a href="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/94/77/metablogapi/1715.image_600E2BA1.png" original-url="https://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-94-77-metablogapi/1715.image_5F00_600E2BA1.png"><img title="image" style="display: inline; background-image: none;" border="0" alt="image" src="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/94/77/metablogapi/4477.image_thumb_6655022F.png" original-url="https://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-94-77-metablogapi/4477.image_5F00_thumb_5F00_6655022F.png" width="486" height="443" /></a></p>    <h4>What's new in the System Center 2012 R2 Configuration Manager SDK </h4>  <p>The following topics are new or updated in the System Center 2012 R2 Configuration Manager SDK:</p>  <ul>   <li><strong>New Solutions and Samples</strong>      <ul>       <li>Solution: Configuration Manager Application Approval Workflow</li>        <li>Sample: How to create Software Update groups (SUMCreateGroup)</li>        <li>Sample: How to assign Software Update groups (SUMAssignGroup) </li>     </ul>   </li>    <li><strong>New Classes and Methods</strong>      <ul>       <li>AddChangeNotification Method in Class SMS_VhdPackage</li>        <li>AddDistributionPoints Method in Class SMS_VhdPackage</li>        <li>CancelDistribution Method in Class SMS_DistributionPoint</li>        <li>ChangeOwnership Method in Class SMS_Collection</li>        <li>ClientEditions Method in Class SMS_Collection</li>        <li>GetChainedPullDPs Method in Class SMSDistributionPointInfo</li>        <li>GetImageProperties Method in Class SMS_VhdPackage</li>        <li>GetTSRelatedToDriverCategory Method in Class SMS_TaskSequencePackage</li>        <li>ReassignClientsToSite Method in Class SMS_Collection</li>        <li>RefreshPkgSource Method in Class SMS_VhdPackage</li>        <li>ReloadImageProperties Method in Class SMS_VhdPackage CCM_NetworkSettings Client WMI Class </li>        <li>RunOfflineServicingManager Method in Class SMS_VhdPackage</li>        <li>SetSourceSite Method in Class SMS_VhdPackage</li>        <li>SMS_ClientResourcesConfig Server WMI Class</li>        <li>SMS_DistributionJob Server WMI Class</li>        <li>SMS_G_SYSTEM_ResourceClientSettingsAssignment Server WMI Class</li>        <li>SMS_ObjectContentExtraInfo Server WMI Class</li>        <li>SMS_UserSettings Server WMI Class</li>        <li>SMS_UserVariable Server WMI Class</li>        <li>SMS_VhdPackage Server WMI Class</li>        <li>Unlock Method in Class SMS_VhdPackage</li>     </ul>   </li>    <li><strong>Updated Classes and Methods</strong>      <ul>       <li>CCM_SoftwareBase Client WMI Class</li>        <li>CheckReferencesShareType Method in Class SMS_TaskSequencePackage</li>        <li>CreateCCR Method in Class SMS_Collection </li>        <li>CreateCCRs Method in Class SMS_Collection</li>        <li>CreateCCRs Method in Class SMS_Query</li>        <li>SMS_AppDeploymentAssetDetails Server WMI Class</li>        <li>SMS_Application Server WMI Class</li>        <li>SMS_ApplicationLatest Server WMI Class</li>        <li>SMS_BaselineAssignment Server WMI Class </li>        <li>SMS_BootImagePackage Server WMI Class</li>        <li>SMS_CIAssignmentBaseClass Server WMI Class</li>        <li>SMS_ClientCommunicationConfig Server WMI Class</li>        <li>SMS_Collection Server WMI Class</li>        <li>SMS_CollectionMember_a Server WMI Class</li>        <li>SMS_CombinedDeviceResources Server WMI Class</li>        <li>SMS_ConfigurationPolicyAssignment Server WMI Class</li>        <li>SMS_ContentPackage Server WMI Class</li>        <li>SMS_DeviceSettingPackage Server WMI Class</li>        <li>SMS_DistributionPoint Server WMI Class</li>        <li>SMS_DistributionPointInfo Server WMI Class</li>        <li>SMS_DriverPackage Server WMI Class</li>        <li>SMS_EndpointProtectionAgentConfig Server WMI Class</li>        <li>SMS_FullCollectionMembership Server WMI Class</li>        <li>SMS_G_System_AppClientState Server WMI Class</li>        <li>SMS_ImageInformation Server WMI Class</li>        <li>SMS_OperatingSystemInstallPackage Server WMI Class</li>        <li>SMS_Package Server WMI Class</li>        <li>SMS_PackageBaseclass Server WMI Class</li>        <li>SMS_Query Server WMI Class</li>        <li>SMS_ServiceWindow Server WMI Class</li>        <li>SMS_Site Server WMI Class</li>        <li>SMS_SoftwareUpdate Server WMI Class</li>        <li>SMS_SoftwareUpdatesPackage Server WMI Class</li>        <li>SMS_TaskSequencePackage Server WMI Class</li>        <li>SMS_TaskSequencePackageReference_Flat Server WMI Class</li>        <li>SMS_UpdateGroupAssignment Server WMI Class</li>        <li>SMS_UpdatesAssignment Server WMI Class</li>     </ul>   </li> </ul>]]></content:encoded>
    </item>
    <item>
      <title>Inventorying and Reporting Network Adapter Driver details, and how to report only the wireless type (with bonus mini-primer on SQL Report Builder) in Configuration Manager 2012</title>
      <link>https://docs.microsoft.com/archive/blogs/configmgr_geek_speak/inventorying-and-reporting-network-adapter-driver-details-and-how-to-report-only-the-wireless-type-with-bonus-mini-primer-on-sql-report-builder-in-configuration-manager-2012</link>
      <pubDate>Sun, 10 Nov 2013 16:21:39 GMT</pubDate>
      <dc:creator><![CDATA[Russ Rimmerman [MSFT]]]></dc:creator>
      <guid
        isPermaLink="false">https://blogs.technet.microsoft.com/configmgr_geek_speak/2013/11/10/inventorying-and-reporting-network-adapter-driver-details-and-how-to-report-only-the-wireless-type-with-bonus-mini-primer-on-sql-report-builder-in-configuration-manager-2012/</guid>
      <description><![CDATA[I occasionally get a question where someone wants to report on some seemingly simple piece of client...]]></description>
      <content:encoded><![CDATA[<p>I occasionally get a question where someone wants to report on some seemingly simple piece of client information which seems, initially, to be a “no-brainer.”&nbsp; Of <strong>course </strong>you can pull that information, just look,&nbsp;&nbsp;&nbsp; umm,&nbsp;&nbsp;&nbsp;&nbsp; I thought for <strong>sure</strong> that information was in here somewhere.&nbsp; There’s <strong>no</strong> possible way that it isn’t, I clearly <strong>must</strong> be overlooking it…..  <p>Hmm, it’s <strong>not</strong> there.&nbsp; Then I think to myself, it <strong>must</strong> be Monday?!  <p>So, I’ve learned over time that it’s not always the case – sometimes the seemingly most simple bits of information you want aren’t readily available for you out of the box.  <p>So, what is a good example of this?&nbsp; The most recent one I ran into was a request to report on wireless network drivers and versions.&nbsp; I though for sure it would be included somewhere in Win32_NetworkAdapter or Win32_NetworkAdapterConfiguration or Win32_PnPEntity.&nbsp; Nope, it’s not there, maybe I’m missing it.  <p>So my next question – where is it?&nbsp; I then came across a WMI Class called Win32_PNPSignedDriver.&nbsp; Well, that’s a very interesting WMI Class with lots of good information - including the information I’m looking for – however it contains way more than just network adapters, and to make matters worse, importing the pertinent information into my Configuration Manager 2012 Hardware Inventory didn’t collect anything from this Class no matter how hard I kicked it.  <p>That’s when I came across a <a href="https://blogs.msdn.com/b/vinpa/archive/2010/02/17/to-inventory-the-driver-version-of-the-wireless-network-adapter.aspx">blog posting</a> written by Vinay Pamnani, which helpfully pointed out a registry key which contains all the information I needed!  <p>The registry key for network adapter driver information is at <strong>HKLM\SYSTEM\CurrentControlSet\Control\Class\{4D36E972-E325-11CE-BFC1-08002bE10318.&nbsp; </strong> <p>As Vinay’s blog posting was created back in Feb 2010, it was clear that it was for Configuration Manager 2007.&nbsp; Knowing this, it was time to take the information learned from his blog post and try it out in my trusty Configuration Manager 2012 R2 lab.  <p>First, I (of course) made a backup copy of my configuration.mof in ConfigMgr\Inboxes\clifiles.src\hinv.&nbsp; I then copied the information from Vinay’s Configuration.mof snip (see below) into my clipboard and added a few more entries I found interesting:  <p>[ dynamic, <br />&nbsp; provider(&quot;RegProv&quot;), <br />&nbsp; ClassContext(&quot;local|HKEY_LOCAL_MACHINE\\SYSTEM\\CurrentControlSet\\Control\\Class\\{4D36E972-E325-11CE-BFC1-08002bE10318}&quot;) <br />&nbsp; ] <br />&nbsp; class Win32Reg_NetworkDrivers <br />&nbsp; { <br />&nbsp;&nbsp;&nbsp; [key] <br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; string&nbsp;&nbsp;&nbsp; Index; <br />&nbsp;&nbsp;&nbsp; [PropertyContext(&quot;DriverDesc&quot;)] <br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; string&nbsp;&nbsp;&nbsp; DriverDesc; <br />&nbsp;&nbsp;&nbsp; [PropertyContext(&quot;DriverVersion&quot;)] <br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; string&nbsp;&nbsp;&nbsp; DriverVersion; <br />&nbsp;&nbsp;&nbsp; [PropertyContext(&quot;DriverDate&quot;)&nbsp; ] <br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; string&nbsp;&nbsp;&nbsp; DriverDate; <br />&nbsp;&nbsp;&nbsp; [PropertyContext(&quot;ProviderName&quot;)] <br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; string&nbsp;&nbsp;&nbsp; ProviderName; <br />&nbsp;&nbsp;&nbsp; [PropertyContext(&quot;*MediaType&quot;)&nbsp; ] <br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; string&nbsp;&nbsp;&nbsp; MediaType; <br />&nbsp;&nbsp;&nbsp; [PropertyContext(&quot;RemoteWakeEnable&quot;)&nbsp; ] <br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; string&nbsp;&nbsp;&nbsp; RemoteWakeEnable; <br />&nbsp;&nbsp;&nbsp; [PropertyContext(&quot;*WakeOnMagicPacket&quot;)&nbsp; ] <br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; string&nbsp;&nbsp;&nbsp; WakeOnMagicPacket; <br />&nbsp; };  <p>Next, I pasted it into my configuration.mof on my CAS (yes, even at my own home there’s enough politics to cause me to have a CAS).&nbsp; Next, I simply pasted it between the section at the bottom in between “// Added extensions start” and “//Added extensions end” and saved it, so the final result looked like this:  <p><a href="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/94/77/metablogapi/1373.image_28467AF1.png" original-url="https://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-94-77-metablogapi/1373.image_5F00_28467AF1.png"><img title="image" border="0" alt="image" src="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/94/77/metablogapi/3617.image_thumb_0E74D573.png" original-url="https://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-94-77-metablogapi/3617.image_5F00_thumb_5F00_0E74D573.png" width="795" height="531" /></a>  <p>This change provided my Configuration Manager hierarchy the knowledge about this registry key and all of the information of my interest within the key.&nbsp; Looking at this key, there are a plethora of other values to collect, but the only ones I added over and above Vinay’s example were: Provider, RemoteWakeEnable, and *WakeOnMagicPacket.&nbsp; If desired, I could’ve easily gathered additional information from this key such as the wireless roaming aggressiveness settings, whether or not the wireless radio is enabled, preferred wifi channel, PNP Device info - the list goes on.  <p>Next, I copied the information for the SMS_DEF.MOF file, but once again, I added the additional information for ProviderName, RemoteWakeEnable, and WakeOnMagicPacket to let my ConfigMgr site know that I also want it to collect the information stored in these registry values during my client hardware inventories.&nbsp; All of this will be inserted into the new SQL View it will automatically create named “v_GS_NETWORK_DRIVERS”.  <p>Here’s what I ended up with for my MOF to import into my Hardware Inventory:  <p>#pragma namespace (&quot;\\\\.\\root\\cimv2\\sms&quot;) <br />&nbsp; [ SMS_Report&nbsp;&nbsp;&nbsp;&nbsp; (TRUE), <br />&nbsp; SMS_Group_Name (&quot;Network Drivers&quot;), <br />&nbsp; SMS_Class_ID&nbsp;&nbsp; (&quot;MICROSOFT|NETWORK_DRIVERS|1.0&quot;), <br />&nbsp; Namespace&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (&quot;\\\\\\\\localhost\\\\root\\\\cimv2&quot;) ] <br />&nbsp; class Win32Reg_NetworkDrivers : SMS_Class_Template <br />&nbsp; { <br />&nbsp;&nbsp;&nbsp; [SMS_Report (TRUE), key ] <br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; string Index; <br />&nbsp;&nbsp;&nbsp; [SMS_Report (TRUE)&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ] <br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; string DriverDesc; <br />&nbsp;&nbsp;&nbsp; [SMS_Report (TRUE)&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ] <br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; string DriverVersion; <br />&nbsp;&nbsp;&nbsp; [SMS_Report (TRUE)&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ] <br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; string DriverDate; <br />&nbsp;&nbsp;&nbsp; [SMS_Report (TRUE)&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ] <br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; string MediaType; <br />&nbsp;&nbsp;&nbsp; [SMS_Report (TRUE)&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ] <br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; string ProviderName; <br />&nbsp;&nbsp;&nbsp; [SMS_Report (TRUE)&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ] <br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; string RemoteWakeEnable; <br />&nbsp;&nbsp;&nbsp; [SMS_Report (TRUE)&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ] <br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; string WakeOnMagicPacket; <br />&nbsp; };  <p>Knowing there’s no longer an SMS_DEF.MOF that exists in clifiles.src/hinv on ConfigMgr 2012, I instead pasted it into a new file I created in Notepad and named it something memorable but only slightly witty such as “wifidriversarefun.MOF”.&nbsp; I went to my Administration/Client Settings and modified my Default Client Settings on my CAS.&nbsp; Next, I drilled into the Hardware Inventory section of my Default Client Settings (note: you MUST select Default Client Settings) and clicked the “Set Classes” button:  <p><a href="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/94/77/metablogapi/8637.image_55C0E136.png" original-url="https://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-94-77-metablogapi/8637.image_5F00_55C0E136.png"><img title="image" border="0" alt="image" src="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/94/77/metablogapi/2816.image_thumb_59CDBFB9.png" original-url="https://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-94-77-metablogapi/2816.image_5F00_thumb_5F00_59CDBFB9.png" width="928" height="420" /></a>  <p>Next, click “Import” and browse to the “wifidriversarefun.MOF” file you saved.  <p><a href="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/94/77/metablogapi/5430.image_44729B02.png" original-url="https://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-94-77-metablogapi/5430.image_5F00_44729B02.png"><img title="image" border="0" alt="image" src="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/94/77/metablogapi/2110.image_thumb_2381B90C.png" original-url="https://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-94-77-metablogapi/2110.image_5F00_thumb_5F00_2381B90C.png" width="928" height="793" /></a>  <p>Leave the “Import Summary” option at the default of “Import both hardware inventory classes and hardware inventory class settings”.&nbsp; Once again click the “Import” button.  <p><a href="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/94/77/metablogapi/5277.image_6E0E1848.png" original-url="https://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-94-77-metablogapi/5277.image_5F00_6E0E1848.png"><img title="image" border="0" alt="image" src="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/94/77/metablogapi/0827.image_thumb_68BF3197.png" original-url="https://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-94-77-metablogapi/0827.image_5F00_thumb_5F00_68BF3197.png" width="638" height="623" /></a>  <p>I also left all of the class settings checked since I wanted everything that I defined in both my configuration.mof and my imported Hardware Inventory MOF, and clicked OK a couple times.  <p><a href="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/94/77/metablogapi/8204.image_45FDF9DA.png" original-url="https://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-94-77-metablogapi/8204.image_5F00_45FDF9DA.png"><img title="image" border="0" alt="image" src="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/94/77/metablogapi/8233.image_thumb_3CA4C557.png" original-url="https://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-94-77-metablogapi/8233.image_5F00_thumb_5F00_3CA4C557.png" width="680" height="283" /></a>  <p>Next, go to Monitoring-&gt;Reporting-&gt;Reports and click “Create Report”  <p><a href="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/94/77/metablogapi/3301.image_334B90D4.png" original-url="https://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-94-77-metablogapi/3301.image_5F00_334B90D4.png"><img title="image" border="0" alt="image" src="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/94/77/metablogapi/1680.image_thumb_2DFCAA23.png" original-url="https://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-94-77-metablogapi/1680.image_5F00_thumb_5F00_2DFCAA23.png" width="238" height="384" /></a>  <p>The “Create Report Wizard” will appear.&nbsp; Select “SQL-based Report”, give it a memorable name, and select which folder on your SSRS you want to store it in.&nbsp; Click “Next&quot;, “Next”, “Close”.  <p><a href="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/94/77/metablogapi/3386.image_1D843928.png" original-url="https://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-94-77-metablogapi/3386.image_5F00_1D843928.png"><img title="image" border="0" alt="image" src="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/94/77/metablogapi/6765.image_thumb_51BAF31F.png" original-url="https://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-94-77-metablogapi/6765.image_5F00_thumb_5F00_51BAF31F.png" width="684" height="582" /></a>  <p>Once SQL Report Builder 3.0 appears, select “Table or Matrix”:  <p><a href="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/94/77/metablogapi/7382.image_75E2DE5F.png" original-url="https://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-94-77-metablogapi/7382.image_5F00_75E2DE5F.png"><img title="image" border="0" alt="image" src="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/94/77/metablogapi/0535.image_thumb_2A1707A6.png" original-url="https://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-94-77-metablogapi/0535.image_5F00_thumb_5F00_2A1707A6.png" width="368" height="168" /></a>  <p>And then “Create a Dataset”.&nbsp; The “New Table or Matrix” wizard appears with your Data Source Connection to your ConfigMgr 12 database.&nbsp; Click the “Test Connection” to confirm all is well.  <p><a href="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/94/77/metablogapi/3527.image_2C539062.png" original-url="https://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-94-77-metablogapi/3527.image_5F00_2C539062.png"><img title="image" border="0" alt="image" src="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/94/77/metablogapi/2806.image_thumb_7DFC9B65.png" original-url="https://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-94-77-metablogapi/2806.image_5F00_thumb_5F00_7DFC9B65.png" width="683" height="502" /></a>  <p>If you don’t have the required permissions with your currently logged on account, instead of using your currently logged on credentials, type in the login credentials for an account which has the appropriate permissions to the site database, and click “Next”.  <p>In the “Design a query” wizard, expand dbo –&gt;Views:  <p><a href="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/94/77/metablogapi/3326.image_2DBA43E5.png" original-url="https://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-94-77-metablogapi/3326.image_5F00_2DBA43E5.png"><img title="image" border="0" alt="image" src="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/94/77/metablogapi/2783.image_thumb_1A991739.png" original-url="https://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-94-77-metablogapi/2783.image_5F00_thumb_5F00_1A991739.png" width="629" height="517" /></a>  <p>Next, expand v_GS_NETWORK_DRIVERS and select the values that you want included in your report; first from v_GS_NETWORK_DRIVERS to get the new Network Adapter Driver information:  <p><a href="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/94/77/metablogapi/0624.image_5A658E6F.png" original-url="https://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-94-77-metablogapi/0624.image_5F00_5A658E6F.png"><img title="image" border="0" alt="image" src="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/94/77/metablogapi/8422.image_thumb_54AD057A.png" original-url="https://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-94-77-metablogapi/8422.image_5F00_thumb_5F00_54AD057A.png" width="772" height="567" /></a>  <p>Then, select Name0 from the v_GS_System view so that you will also get a computer name included.  <p><a href="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/94/77/metablogapi/1376.image_7B117976.png" original-url="https://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-94-77-metablogapi/1376.image_5F00_7B117976.png"><img title="image" border="0" alt="image" src="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/94/77/metablogapi/2425.image_thumb_1C2706C2.png" original-url="https://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-94-77-metablogapi/2425.image_5F00_thumb_5F00_1C2706C2.png" width="782" height="575" /></a>  <p>Click on “Auto Detect”, and then click the “Add Relationships” button to the right of “Edit Fields”  <p><a href="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/94/77/metablogapi/7142.image_22706E01.png" original-url="https://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-94-77-metablogapi/7142.image_5F00_22706E01.png"><img title="image" border="0" alt="image" src="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/94/77/metablogapi/4540.image_thumb_36898A8A.png" original-url="https://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-94-77-metablogapi/4540.image_5F00_thumb_5F00_36898A8A.png" width="438" height="241" /></a>  <p>Single click into the “Left Table”, selecting one of the two tables, then single click into the “Right Table”, and of course select the other view.&nbsp; Your join can be Inner, Left Outer, Right Outer, or Full Outer, but I’m not going to go into depth on SQL joins today, so you can read more about them <a href="https://www.sql-tutorial.net/SQL-JOIN.asp">here</a>.  <p><a href="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/94/77/metablogapi/2308.image_267D4C84.png" original-url="https://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-94-77-metablogapi/2308.image_5F00_267D4C84.png"><img title="image" border="0" alt="image" src="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/94/77/metablogapi/4863.image_thumb_284DA24B.png" original-url="https://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-94-77-metablogapi/4863.image_5F00_thumb_5F00_284DA24B.png" width="432" height="279" /></a>  <p>Now, click the “Add Field” button:  <p><a href="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/94/77/metablogapi/6866.image_4A3904CF.png" original-url="https://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-94-77-metablogapi/6866.image_5F00_4A3904CF.png"><img title="image" border="0" alt="image" src="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/94/77/metablogapi/5417.image_thumb_7343A3CB.png" original-url="https://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-94-77-metablogapi/5417.image_5F00_thumb_5F00_7343A3CB.png" width="434" height="214" /></a>  <p>Under the “Left Join Field”, select “ResourceID”.&nbsp; Then under the “Right Join Field” column, once again select “ResourceID”.&nbsp; ResourceID is the field which you should always be familiar with as pretty much every report that contains information about clients has a unique ResourceID value which identifies each client and allows you to join the various views together for reporting purposes.  <p><a href="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/94/77/metablogapi/0068.image_55651FCA.png" original-url="https://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-94-77-metablogapi/0068.image_5F00_55651FCA.png"><img title="image" border="0" alt="image" src="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/94/77/metablogapi/5857.image_thumb_3B90E99B.png" original-url="https://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-94-77-metablogapi/5857.image_5F00_thumb_5F00_3B90E99B.png" width="535" height="260" /></a>  <p>Now the final result should appear like this:  <p><a href="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/94/77/metablogapi/3527.image_4B9FB852.png" original-url="https://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-94-77-metablogapi/3527.image_5F00_4B9FB852.png"><img title="image" border="0" alt="image" src="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/94/77/metablogapi/7752.image_thumb_73684F20.png" original-url="https://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-94-77-metablogapi/7752.image_5F00_thumb_5F00_73684F20.png" width="535" height="393" /></a>  <p>If all is well, click “Next” to continue, and on the “Arrange fields” step, drag “Name0” to the “Row groups” box, and the rest of the information you want associated with each computer name to the “Values” box” and click “Next”.  <p><a href="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/94/77/metablogapi/3835.image_29D90123.png" original-url="https://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-94-77-metablogapi/3835.image_5F00_29D90123.png"><img title="image" border="0" alt="image" src="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/94/77/metablogapi/0317.image_thumb_3741A4DA.png" original-url="https://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-94-77-metablogapi/0317.image_5F00_thumb_5F00_3741A4DA.png" width="541" height="398" /></a>  <p>Uncheck the “Show subtotals and grand totals” and “Expand/collapse groups” checkboxes.  <p><a href="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/94/77/metablogapi/1145.image_53945F1F.png" original-url="https://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-94-77-metablogapi/1145.image_5F00_53945F1F.png"><img title="image" border="0" alt="image" src="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/94/77/metablogapi/3618.image_thumb_7345C998.png" original-url="https://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-94-77-metablogapi/3618.image_5F00_thumb_5F00_7345C998.png" width="545" height="401" /></a>  <p>Select your favorite SSRS style:  <p><a href="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/94/77/metablogapi/4382.image_66FF4D59.png" original-url="https://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-94-77-metablogapi/4382.image_5F00_66FF4D59.png"><img title="image" border="0" alt="image" src="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/94/77/metablogapi/4403.image_thumb_6863702B.png" original-url="https://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-94-77-metablogapi/4403.image_5F00_thumb_5F00_6863702B.png" width="542" height="396" /></a>  <p>Now you should have a nice report showing each of your network adapters and their pertinent driver information, as well as some additionally helpful wake-on-lan information.&nbsp; You can also customize the column names to something more meaningful as I have below (ie. Name0 –&gt; Computer Name):  <p><a href="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/94/77/metablogapi/1588.image_2A69DF6D.png" original-url="https://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-94-77-metablogapi/1588.image_5F00_2A69DF6D.png"><img title="image" border="0" alt="image" src="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/94/77/metablogapi/5661.image_thumb_26EDDF34.png" original-url="https://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-94-77-metablogapi/5661.image_5F00_thumb_5F00_26EDDF34.png" width="546" height="397" /></a>  <p>Now, if you want to filter it down to only the wireless network adapters, under Datasets,&nbsp; right-click “DataSet1” and click “Properties”.  <p><a href="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/94/77/metablogapi/1423.image_7B3FA5E8.png" original-url="https://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-94-77-metablogapi/1423.image_5F00_7B3FA5E8.png"><img title="image" border="0" alt="image" src="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/94/77/metablogapi/6253.image_thumb_4A3FF53B.png" original-url="https://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-94-77-metablogapi/6253.image_5F00_thumb_5F00_4A3FF53B.png" width="268" height="532" /></a>  <p>Then click “Filters” and click &quot;Add” to add a filter:  <p><a href="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/94/77/metablogapi/8233.image_35510379.png" original-url="https://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-94-77-metablogapi/8233.image_5F00_35510379.png"><img title="image" border="0" alt="image" src="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/94/77/metablogapi/1803.image_thumb_17727F78.png" original-url="https://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-94-77-metablogapi/1803.image_5F00_thumb_5F00_17727F78.png" width="688" height="198" /></a>  <p>In “Expression” field, select “MediaType0”.&nbsp; Leave the Operator at &quot;=”, and the value of MediaType0 for all wireless adapters happens to be a value of “16”.  <p><a href="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/94/77/metablogapi/4454.image_128FCBBC.png" original-url="https://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-94-77-metablogapi/4454.image_5F00_128FCBBC.png"><img title="image" border="0" alt="image" src="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/94/77/metablogapi/1680.image_thumb_3B9A6AB8.png" original-url="https://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-94-77-metablogapi/1680.image_5F00_thumb_5F00_3B9A6AB8.png" width="684" height="271" /></a>  <p>Save the report, run it again, and viola, only the wireless network adapters and their driver information will magically appear for each client, along with their driver dates, descriptions, versions and WakeOnLan settings.  <p>Now, for an extra bonus, if you want to be able to click on any client and have it show you some additional Network Adapter information for a specific client, right click in the [Name0] cell, and click “Text Box Properties”  <p><a href="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/94/77/metablogapi/1777.image_6F93EDF5.png" original-url="https://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-94-77-metablogapi/1777.image_5F00_6F93EDF5.png"><img title="image" border="0" alt="image" src="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/94/77/metablogapi/5808.image_thumb_33D6E5F3.png" original-url="https://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-94-77-metablogapi/5808.image_5F00_thumb_5F00_33D6E5F3.png" width="706" height="229" /></a>  <p>Click “Action” and in the “Change Action Options” section, select the “Go to report” radio button, click “Browse”, and browse to the Hardware – Network Adapter / “Network Adapter information for a specific computer” report.&nbsp; Under “Use these parameters to run the report”, click “Add”, select “variable” in the Name field, and “[Name0]” in the Value field, and click OK.  <p><a href="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/94/77/metablogapi/6013.image_3CC67832.png" original-url="https://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-94-77-metablogapi/6013.image_5F00_3CC67832.png"><img title="image" border="0" alt="image" src="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/94/77/metablogapi/2664.image_thumb_4549D77C.png" original-url="https://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-94-77-metablogapi/2664.image_5F00_thumb_5F00_4549D77C.png" width="782" height="711" /></a>  <p>Now, run the report and pat yourself on the back for making it to the end of this blog post (and hopefully you even have a working report!)</p></p></p></p></p></p></p></p></p></p></p></p></p></p></p></p></p></p></p></p></p></p></p></p></p></p></p></p></p></p></p></p></p></p></p></p></p></p></p></p></p></p></p></p></p></p></p></p></p></p></p></p></p></p></p></p></p></p></p></p></p></p></p></p></p></p></p></p></p>]]></content:encoded>
    </item>
  </channel>
</rss>