<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" media="screen" href="/~d/styles/rss2full.xsl"?><?xml-stylesheet type="text/css" media="screen" href="http://feeds.feedburner.com/~d/styles/itemcontent.css"?><rss xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:sy="http://purl.org/rss/1.0/modules/syndication/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" version="2.0">

<channel>
	<title>Nothing but ConfigMgr</title>
	
	<link>http://www.petervanderwoude.nl</link>
	<description>Peter blogs about Configuration Manager</description>
	<lastBuildDate>Sun, 19 May 2013 14:24:11 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
		<atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="self" type="application/rss+xml" href="http://feeds.feedburner.com/NothingButConfigmgr" /><feedburner:info xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0" uri="nothingbutconfigmgr" /><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="hub" href="http://pubsubhubbub.appspot.com/" /><item>
		<title>Changing the Deployment Package linked to an Automatic Deployment Rule in ConfigMgr 2012</title>
		<link>http://www.petervanderwoude.nl/post/changing-the-deployment-package-linked-to-an-automatic-deployment-rule-in-configmgr-2012/</link>
		<comments>http://www.petervanderwoude.nl/post/changing-the-deployment-package-linked-to-an-automatic-deployment-rule-in-configmgr-2012/#comments</comments>
		<pubDate>Sun, 19 May 2013 14:23:00 +0000</pubDate>
		<dc:creator>Peter van der Woude</dc:creator>
				<category><![CDATA[Automatic Deployment Rule]]></category>
		<category><![CDATA[ConfigMgr 2012]]></category>
		<category><![CDATA[PowerShell]]></category>
		<category><![CDATA[Powershell]]></category>
		<category><![CDATA[SCCM]]></category>

		<guid isPermaLink="false">http://www.petervanderwoude.nl/?p=897</guid>
		<description><![CDATA[This week I want to devote a post to changing the Deployment Package, which is linked to an Automatic Deployment Rule. I came on this subject as I got and read some questions about it. Actually it was not just &#8230; <a href="http://www.petervanderwoude.nl/post/changing-the-deployment-package-linked-to-an-automatic-deployment-rule-in-configmgr-2012/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>This week I want to devote a post to changing the <strong>Deployment Package</strong>, which is linked to an <strong>Automatic Deployment Rule</strong>. I came on this subject as I got and read some questions about it. Actually it was not just that, also the fact that the answer was usually, that it’s not possible, at leas not via the console. As I couldn’t imagine that it’s not possible I went on a small research to see where it’s stored and how we can change it.</p>
<h2>XML and WMI</h2>
<p>Let’s start with where it’s stored. In WMI it’s stored in the class <strong>SMS_AutoDeployment</strong> and then the property <strong>ContentTemplate</strong>. Here it’s stored in XML format, like this: </p>
<div id="scid:57F11A72-B0E5-49c7-9094-E3A15BD5B5E6:131b6ead-a4a2-4513-87a9-cd845f1f8803" class="wlWriterEditableSmartContent" style="float: none; padding-bottom: 0px; padding-top: 0px; padding-left: 0px; margin: 0px; display: inline; padding-right: 0px">
<pre style="background-color:#FFFFFF;white-space:-moz-pre-wrap; white-space: -pre-wrap; white-space: -o-pre-wrap; white-space: pre-wrap; word-wrap: break-word;overflow: auto;"><span style="color: #0000FF;">&lt;?</span><span style="color: #FF00FF;">xml version="1.0" encoding="utf-16"</span><span style="color: #0000FF;">?&gt;</span><span style="color: #0000FF;">&lt;</span><span style="color: #800000;">ContentActionXML </span><span style="color: #FF0000;">xmlns:xsi</span><span style="color: #0000FF;">="http://www.w3.org/2001/XMLSchema-instance"</span><span style="color: #FF0000;"> xmlns:xsd</span><span style="color: #0000FF;">="http://www.w3.org/2001/XMLSchema"</span><span style="color: #0000FF;">&gt;&lt;</span><span style="color: #800000;">PackageID</span><span style="color: #0000FF;">&gt;</span><span style="color: #000000;">PTP00027</span><span style="color: #0000FF;">&lt;/</span><span style="color: #800000;">PackageID</span><span style="color: #0000FF;">&gt;&lt;</span><span style="color: #800000;">ContentLocales</span><span style="color: #0000FF;">&gt;&lt;</span><span style="color: #800000;">Locale</span><span style="color: #0000FF;">&gt;</span><span style="color: #000000;">Locale:9</span><span style="color: #0000FF;">&lt;/</span><span style="color: #800000;">Locale</span><span style="color: #0000FF;">&gt;&lt;</span><span style="color: #800000;">Locale</span><span style="color: #0000FF;">&gt;</span><span style="color: #000000;">Locale:0</span><span style="color: #0000FF;">&lt;/</span><span style="color: #800000;">Locale</span><span style="color: #0000FF;">&gt;&lt;/</span><span style="color: #800000;">ContentLocales</span><span style="color: #0000FF;">&gt;&lt;</span><span style="color: #800000;">ContentSources</span><span style="color: #0000FF;">&gt;&lt;</span><span style="color: #800000;">Source </span><span style="color: #FF0000;">Name</span><span style="color: #0000FF;">="Internet"</span><span style="color: #FF0000;"> Order</span><span style="color: #0000FF;">="1"</span><span style="color: #0000FF;">/&gt;&lt;</span><span style="color: #800000;">Source </span><span style="color: #FF0000;">Name</span><span style="color: #0000FF;">="WSUS"</span><span style="color: #FF0000;"> Order</span><span style="color: #0000FF;">="2"</span><span style="color: #0000FF;">/&gt;&lt;</span><span style="color: #800000;">Source </span><span style="color: #FF0000;">Name</span><span style="color: #0000FF;">="UNC"</span><span style="color: #FF0000;"> Order</span><span style="color: #0000FF;">="3"</span><span style="color: #FF0000;"> Location</span><span style="color: #0000FF;">=""</span><span style="color: #0000FF;">/&gt;&lt;/</span><span style="color: #800000;">ContentSources</span><span style="color: #0000FF;">&gt;&lt;/</span><span style="color: #800000;">ContentActionXML</span><span style="color: #0000FF;">&gt;</span></pre>
<p><!-- Code inserted with Steve Dunn's Windows Live Writer Code Formatter Plugin.  http://dunnhq.com --></div>
<h2>PowerShell</h2>
<p>Now let’s go to the cool part, how do to change the package id that’s in the <strong>ContentActionXML</strong>. Well it’s actually quite easy with common XML parsing. To get all ins-and-outs about that, read this great article on the <a href="http://blogs.technet.com/b/heyscriptingguy/archive/2012/03/25/the-scripting-wife-learns-to-use-powershell-to-work-with-xml.aspx">Hey, Scripting Guy! Blog</a>. The first I needed, was to get a direct instance of the specific <strong>Automatic Deployment Rule</strong>. For that I used the following command: </p>
<div id="scid:57F11A72-B0E5-49c7-9094-E3A15BD5B5E6:df6ddc36-7398-4338-9d75-996577546319" class="wlWriterEditableSmartContent" style="float: none; padding-bottom: 0px; padding-top: 0px; padding-left: 0px; margin: 0px; display: inline; padding-right: 0px">
<pre style="background-color:#FFFFFF;white-space:-moz-pre-wrap; white-space: -pre-wrap; white-space: -o-pre-wrap; white-space: pre-wrap; word-wrap: break-word;overflow: auto;;font-family:Calibri;font-size:9,75"><span style="color: #000000;">[wmi]</span><span style="color: #800080;">$AutoDeployment</span><span style="color: #000000;"> </span><span style="color: #000000;">=</span><span style="color: #000000;"> (Get</span><span style="color: #000000;">-</span><span style="color: #000000;">WmiObject </span><span style="color: #000000;">-</span><span style="color: #000000;">Class SMS_AutoDeployment </span><span style="color: #000000;">-</span><span style="color: #000000;">Namespace root</span><span style="color: #000000;">/</span><span style="color: #000000;">SMS</span><span style="color: #000000;">/</span><span style="color: #000000;">site_</span><span style="color: #000000;">$</span><span style="color: #000000;">(</span><span style="color: #800080;">$SiteCode</span><span style="color: #000000;">) </span><span style="color: #000000;">-</span><span style="color: #000000;">ComputerName </span><span style="color: #800080;">$SiteServer</span><span style="color: #000000;"> </span><span style="color: #000000;">|</span><span style="color: #000000;"> Where</span><span style="color: #000000;">-</span><span style="color: #000000;">Object </span><span style="color: #000000;">-</span><span style="color: #000000;">FilterScript {</span><span style="color: #800080;">$_</span><span style="color: #000000;">.Name </span><span style="color: #008080;">-eq</span><span style="color: #000000;"> </span><span style="color: #800080;">$AutoDeploymentName</span><span style="color: #000000;">}).__PATH</span></pre>
<p><!-- Code inserted with Steve Dunn's Windows Live Writer Code Formatter Plugin.  http://dunnhq.com --></div>
<p>The second thing I needed to do, was to get the XML content of the <strong>ContentTemplate</strong> property. For that I used the following command:</p>
<div id="scid:57F11A72-B0E5-49c7-9094-E3A15BD5B5E6:a7dfa96f-fb69-4642-95dd-2142e5b8b705" class="wlWriterEditableSmartContent" style="float: none; padding-bottom: 0px; padding-top: 0px; padding-left: 0px; margin: 0px; display: inline; padding-right: 0px">
<pre style="background-color:#FFFFFF;white-space:-moz-pre-wrap; white-space: -pre-wrap; white-space: -o-pre-wrap; white-space: pre-wrap; word-wrap: break-word;overflow: auto;;font-family:Calibri;font-size:9,75"><span style="color: #000000;">[xml]</span><span style="color: #800080;">$ContentTemplateXML</span><span style="color: #000000;"> </span><span style="color: #000000;">=</span><span style="color: #000000;"> </span><span style="color: #800080;">$AutoDeployment</span><span style="color: #000000;">.ContentTemplate</span></pre>
<p><!-- Code inserted with Steve Dunn's Windows Live Writer Code Formatter Plugin.  http://dunnhq.com --></div>
<p>The third thing I needed to do, was to write the new package id to the <strong>PackageId</strong> property the <strong>ContentActionXML</strong>.The nice thing here, is that the different parts of the XML content can now be accessed as properties. So I used the following command to change the package id:</p>
<div id="scid:57F11A72-B0E5-49c7-9094-E3A15BD5B5E6:6c8c2b06-953b-4045-9115-7f80d62b69f3" class="wlWriterEditableSmartContent" style="float: none; padding-bottom: 0px; padding-top: 0px; padding-left: 0px; margin: 0px; display: inline; padding-right: 0px">
<pre style="background-color:#FFFFFF;white-space:-moz-pre-wrap; white-space: -pre-wrap; white-space: -o-pre-wrap; white-space: pre-wrap; word-wrap: break-word;overflow: auto;;font-family:Calibri;font-size:9,75"><span style="color: #800080;">$ContentTemplateXML</span><span style="color: #000000;">.ContentActionXML.PackageId </span><span style="color: #000000;">=</span><span style="color: #000000;"> </span><span style="color: #800080;">$PackageId</span></pre>
<p><!-- Code inserted with Steve Dunn's Windows Live Writer Code Formatter Plugin.  http://dunnhq.com --></div>
<p>The fourth thing I needed to do, was to write the XML content back to the <strong>ContentTemplate</strong> property. For that I used the following command:</p>
<div id="scid:57F11A72-B0E5-49c7-9094-E3A15BD5B5E6:3bdd3547-3517-4c98-a775-842699521ba7" class="wlWriterEditableSmartContent" style="float: none; padding-bottom: 0px; padding-top: 0px; padding-left: 0px; margin: 0px; display: inline; padding-right: 0px">
<pre style="background-color:#FFFFFF;white-space:-moz-pre-wrap; white-space: -pre-wrap; white-space: -o-pre-wrap; white-space: pre-wrap; word-wrap: break-word;overflow: auto;;font-family:Calibri;font-size:9,75"><span style="color: #800080;">$AutoDeployment</span><span style="color: #000000;">.ContentTemplate </span><span style="color: #000000;">=</span><span style="color: #000000;"> </span><span style="color: #800080;">$ContentTemplateXML</span><span style="color: #000000;">.OuterXML</span></pre>
<p><!-- Code inserted with Steve Dunn's Windows Live Writer Code Formatter Plugin.  http://dunnhq.com --></div>
<p>The last thing was to save the changes to the<strong> Automatic Deployment Rule</strong> and for that I used the following command:</p>
<div id="scid:57F11A72-B0E5-49c7-9094-E3A15BD5B5E6:76dd1763-e5b6-48ea-8770-607e54e68f2f" class="wlWriterEditableSmartContent" style="float: none; padding-bottom: 0px; padding-top: 0px; padding-left: 0px; margin: 0px; display: inline; padding-right: 0px">
<pre style="background-color:#FFFFFF;white-space:-moz-pre-wrap; white-space: -pre-wrap; white-space: -o-pre-wrap; white-space: pre-wrap; word-wrap: break-word;overflow: auto;;font-family:Calibri;font-size:9,75"><span style="color: #800080;">$AutoDeployment</span><span style="color: #000000;">.Put()</span></pre>
<p><!-- Code inserted with Steve Dunn's Windows Live Writer Code Formatter Plugin.  http://dunnhq.com --></div>
<h2>Conclusion</h2>
<p>It was actually quite simple to change the <strong>Deployment Package</strong>, which is linked to an <strong>Automatic Deployment Rule</strong>, even though it’s not possible via the console. To see if the changes applied, either run the <strong>Automatic Deployment Rule</strong> and check the <strong>ruleengine.log</strong>, or run the <strong>Get-CMSoftwareUpdateAutoDeploymentRule</strong> cmdlet. With the combination of ConfigMgr, WMI, XML and PowerShell, there is little that can’t be changed! </p>
<p>The complete code (and usage) is available via the <a href="http://gallery.technet.microsoft.com/Change-the-Package-linked-65662298">TechNet Galleries</a>.</p>
<p><a class="a2a_dd a2a_target addtoany_share_save" href="http://www.addtoany.com/share_save#url=http%3A%2F%2Fwww.petervanderwoude.nl%2Fpost%2Fchanging-the-deployment-package-linked-to-an-automatic-deployment-rule-in-configmgr-2012%2F&amp;title=Changing%20the%20Deployment%20Package%20linked%20to%20an%20Automatic%20Deployment%20Rule%20in%20ConfigMgr%202012" id="wpa2a_2"><img src="http://www.petervanderwoude.nl/wordpress/wp-content/plugins/add-to-any/share_save_171_16.png" width="171" height="16" alt="Share"/></a></p>]]></content:encoded>
			<wfw:commentRss>http://www.petervanderwoude.nl/post/changing-the-deployment-package-linked-to-an-automatic-deployment-rule-in-configmgr-2012/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Just Released: Import Computer Form v0.7</title>
		<link>http://www.petervanderwoude.nl/post/just-released-import-computer-form-v0-7/</link>
		<comments>http://www.petervanderwoude.nl/post/just-released-import-computer-form-v0-7/#comments</comments>
		<pubDate>Mon, 13 May 2013 11:34:00 +0000</pubDate>
		<dc:creator>Peter van der Woude</dc:creator>
				<category><![CDATA[Collections]]></category>
		<category><![CDATA[ConfigMgr 2012]]></category>
		<category><![CDATA[Import Computer Form]]></category>
		<category><![CDATA[PowerShell]]></category>
		<category><![CDATA[Powershell]]></category>
		<category><![CDATA[SCCM]]></category>

		<guid isPermaLink="false">http://www.petervanderwoude.nl/?p=889</guid>
		<description><![CDATA[Today I released a public version of my Import Computer Form. Many has been written about scripts to Import Computer Information in ConfigMgr 2012, via PowerShell, but there was never a worked-out example (like all the different HTA’s there where &#8230; <a href="http://www.petervanderwoude.nl/post/just-released-import-computer-form-v0-7/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>Today I released a public version of my <strong>Import Computer Form</strong>. Many has been written about scripts to <strong>Import Computer Information</strong> in ConfigMgr 2012, via PowerShell, but there was never a worked-out example (like all the different HTA’s there where for the previous version). That’s why I thought it would be nice to post an example form to just simply <strong>Import Computer Information</strong> in ConfigMgr 2012. Again, like with my <a href="http://www.petervanderwoude.nl/post/updated-approval-manager-v0-8/">Approval Manager</a>, <u>I did NOT use the PowerShell Cmdlets for ConfigMgr 2012</u>, but just PowerShell to WMI. The main reason for that is, still the same, that using WMI, via PowerShell, is much friendlier for remote usage.<br />
<h2>Import Computer Form</h2>
<p>This public version gives the user the possibility to perform the following actions, without the need of access to and/ or a locally installed ConfigMgr console:
<ul>
<li><a href="http://www.petervanderwoude.nl/wordpress/wp-content/uploads/ImpoCompForm071.jpg"><img title="ImpoCompForm07" style="border-top: 0px; border-right: 0px; background-image: none; border-bottom: 0px; float: right; padding-top: 0px; padding-left: 0px; border-left: 0px; display: inline; padding-right: 0px" border="0" alt="ImpoCompForm07" align="right" src="http://www.petervanderwoude.nl/wordpress/wp-content/uploads/ImpoCompForm07_thumb1.jpg" width="244" height="112"></a>Fill in a Computer name.
<li>Fill in a MAC Address.
<li>Select an OS Deployment Collection.
<li><strong>Import</strong> the <strong>Computer Information</strong>.
<li>Close the form.</li>
</ul>
<h2>Security Role</h2>
<p>This time I won’t spent to much time on specifying which rights are necessary to<strong> Import Computer Information</strong>. The reason for that is simple, as it’s been very good explained in <a href="http://blogs.technet.com/b/inside_osd/archive/2012/04/30/custom-role-based-administration-for-importing-computers.aspx">this post on the TechNet Blogs</a>.&nbsp;<br />
<h2>Public Available</h2>
<p>As of today my <strong>Import Computer Form </strong>is publicly available via the <a href="http://gallery.technet.microsoft.com/Import-Computers-via-a-df450468">TechNet Galleries</a>. Please let me know what you think of the tool.</p>
<p><a class="a2a_dd a2a_target addtoany_share_save" href="http://www.addtoany.com/share_save#url=http%3A%2F%2Fwww.petervanderwoude.nl%2Fpost%2Fjust-released-import-computer-form-v0-7%2F&amp;title=Just%20Released%3A%20Import%20Computer%20Form%20v0.7" id="wpa2a_4"><img src="http://www.petervanderwoude.nl/wordpress/wp-content/plugins/add-to-any/share_save_171_16.png" width="171" height="16" alt="Share"/></a></p>]]></content:encoded>
			<wfw:commentRss>http://www.petervanderwoude.nl/post/just-released-import-computer-form-v0-7/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Updated: Approval Manager v0.8</title>
		<link>http://www.petervanderwoude.nl/post/updated-approval-manager-v0-8/</link>
		<comments>http://www.petervanderwoude.nl/post/updated-approval-manager-v0-8/#comments</comments>
		<pubDate>Mon, 13 May 2013 10:30:00 +0000</pubDate>
		<dc:creator>Peter van der Woude</dc:creator>
				<category><![CDATA[Approval Manager]]></category>
		<category><![CDATA[Approval Request]]></category>
		<category><![CDATA[ConfigMgr 2012]]></category>
		<category><![CDATA[PowerShell]]></category>
		<category><![CDATA[Powershell]]></category>
		<category><![CDATA[SCCM]]></category>

		<guid isPermaLink="false">http://www.petervanderwoude.nl/?p=885</guid>
		<description><![CDATA[After I released the first public version of my Approval Manager, last week, I’ve got some nice comments on it. One of these comments was that it would be very handy to built-in some alerting. And that’s what I did &#8230; <a href="http://www.petervanderwoude.nl/post/updated-approval-manager-v0-8/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>After I released the first public version of my <strong>Approval Manager</strong>, last week, I’ve got some nice comments on it. One of these comments was that it would be very handy to built-in some alerting. And that’s what I did in this updated version!</p>
<h2>Approval Manager</h2>
<p>This updated version gives the user the possibility to perform the following actions, without the need of access to and/ or a locally installed ConfigMgr console:
<ul>
<li><a href="http://www.petervanderwoude.nl/wordpress/wp-content/uploads/ApprMana081.jpg"><img title="ApprMana08" style="border-top: 0px; border-right: 0px; background-image: none; border-bottom: 0px; float: right; padding-top: 0px; padding-left: 0px; border-left: 0px; display: inline; padding-right: 0px" border="0" alt="ApprMana08" align="right" src="http://www.petervanderwoude.nl/wordpress/wp-content/uploads/ApprMana08_thumb1.jpg" width="244" height="115"></a>Select a User from the specified Collection.
<li>Show only <strong>Approval Requests</strong>, for the selected User, that are Pending Approval.
<li>(<strong><u>NEW!</u></strong>) Show an alert when new <strong>Approval Requests</strong>, are Pending Approval, for the Users of the specified Collection.
<li>Approve, the selected, <strong>Approval Request</strong>.
<li>Deny, the selected, <strong>Approval Request</strong>.
<li>Close the form.</li>
</ul>
<h2>Alerting</h2>
<p>As mentioned, above, there is a new function to add some alerting. This function adds a timer that will check every hour for new <strong>Approval Requests</strong>, which are Pending Approval, for the Users of the specified Collection. This function can be enabled by using the new command line switch <strong>–EnableAlert</strong>.</p>
<h2>Public Available</h2>
<p>As of today the updated version of my <strong>Approval Manager</strong> is publicly available via the <a href="http://gallery.technet.microsoft.com/Manage-Approval-Requests-2f48e7ee">TechNet Galleries</a>. Please let me know what you think of the tool (and specifically this update).</p>
<p><a class="a2a_dd a2a_target addtoany_share_save" href="http://www.addtoany.com/share_save#url=http%3A%2F%2Fwww.petervanderwoude.nl%2Fpost%2Fupdated-approval-manager-v0-8%2F&amp;title=Updated%3A%20Approval%20Manager%20v0.8" id="wpa2a_6"><img src="http://www.petervanderwoude.nl/wordpress/wp-content/plugins/add-to-any/share_save_171_16.png" width="171" height="16" alt="Share"/></a></p>]]></content:encoded>
			<wfw:commentRss>http://www.petervanderwoude.nl/post/updated-approval-manager-v0-8/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Just Released: Approval Manager v0.7</title>
		<link>http://www.petervanderwoude.nl/post/just-released-approval-manager-v0-7/</link>
		<comments>http://www.petervanderwoude.nl/post/just-released-approval-manager-v0-7/#comments</comments>
		<pubDate>Sat, 04 May 2013 12:35:00 +0000</pubDate>
		<dc:creator>Peter van der Woude</dc:creator>
				<category><![CDATA[Approval Manager]]></category>
		<category><![CDATA[Approval Request]]></category>
		<category><![CDATA[ConfigMgr 2012]]></category>
		<category><![CDATA[PowerShell]]></category>
		<category><![CDATA[SCCM; ConfigMgr 2012; Approval Request; Approval Manager; PowerShell]]></category>

		<guid isPermaLink="false">http://www.petervanderwoude.nl/?p=881</guid>
		<description><![CDATA[Today I released a public version of my Approval Manager, which I mentioned a few weeks ago in my post about Managing Approval Request in ConfigMgr 2012. The biggest difference, and maybe even a contradiction with what I mentioned in &#8230; <a href="http://www.petervanderwoude.nl/post/just-released-approval-manager-v0-7/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>Today I released a public version of my <strong>Approval Manager</strong>, which I mentioned a few weeks ago in my post about <a href="http://www.petervanderwoude.nl/post/managing-approval-requests-in-configmgr-2012/">Managing Approval Request in ConfigMgr 2012</a>. The biggest difference, and maybe even a contradiction with what I mentioned in that post, is that <u>I did NOT use the PowerShell Cmdlets for ConfigMgr 2012</u> in this release. The main reason for that is that using WMI, via PowerShell, is much friendlier for remote usage.</p>
<h2><a href="http://www.petervanderwoude.nl/wordpress/wp-content/uploads/ApprMana07p.jpg"><img title="ApprMana07p" style="border-top: 0px; border-right: 0px; background-image: none; border-bottom: 0px; float: right; padding-top: 0px; padding-left: 0px; border-left: 0px; display: inline; padding-right: 0px" border="0" alt="ApprMana07p" align="right" src="http://www.petervanderwoude.nl/wordpress/wp-content/uploads/ApprMana07p_thumb.jpg" width="235" height="244"></a>Approval Manager</h2>
<p>This public version gives the user the possibility to perform the following actions, without the need of access to and/ or a locally installed ConfigMgr console:</p>
<ul>
<li>Select a User from the specified Collection.</li>
<li>Show only <strong>Approval Request</strong>, for the selected User, that are Pending Approval.</li>
<li>Approve, the selected, <strong>Approval Request</strong>.</li>
<li>Deny, the selected, <strong>Approval Request</strong>.</li>
<li>Close the form.</li>
</ul>
<h2><a href="http://www.petervanderwoude.nl/wordpress/wp-content/uploads/ApplApprProp.jpg"><img title="ApplApprProp" style="border-top: 0px; border-right: 0px; background-image: none; border-bottom: 0px; float: right; padding-top: 0px; padding-left: 0px; border-left: 0px; display: inline; padding-right: 0px" border="0" alt="ApplApprProp" align="right" src="http://www.petervanderwoude.nl/wordpress/wp-content/uploads/ApplApprProp_thumb.jpg" width="232" height="244"></a>Security Role</h2>
<p>In case the user, that is going to use the <strong>Approval Manager</strong>, only needs to approve, or deny, <strong>Approval Request</strong>, I would suggest to create a new <strong>Security Role</strong>. As the user that uses the <strong>Approval Manager</strong> only needs to have the following rights:</p>
<ul>
<li>Application &#8211; Read; Approve. </li>
<li>Collection &#8211; Read; Read Resource.</li>
</ul>
<h2>Public Available</h2>
<p>As of today my <strong>Approval Manager</strong> is publicly available via the <a href="http://gallery.technet.microsoft.com/Manage-Approval-Requests-2f48e7ee">TechNet Galleries</a>. Please let me know what you think of the tool.</p>
<p><a class="a2a_dd a2a_target addtoany_share_save" href="http://www.addtoany.com/share_save#url=http%3A%2F%2Fwww.petervanderwoude.nl%2Fpost%2Fjust-released-approval-manager-v0-7%2F&amp;title=Just%20Released%3A%20Approval%20Manager%20v0.7" id="wpa2a_8"><img src="http://www.petervanderwoude.nl/wordpress/wp-content/plugins/add-to-any/share_save_171_16.png" width="171" height="16" alt="Share"/></a></p>]]></content:encoded>
			<wfw:commentRss>http://www.petervanderwoude.nl/post/just-released-approval-manager-v0-7/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Using Global Conditions to check the State of a Service with ConfigMgr 2012</title>
		<link>http://www.petervanderwoude.nl/post/using-global-conditions-to-check-the-state-of-a-service-with-configmgr-2012/</link>
		<comments>http://www.petervanderwoude.nl/post/using-global-conditions-to-check-the-state-of-a-service-with-configmgr-2012/#comments</comments>
		<pubDate>Sun, 14 Apr 2013 18:17:00 +0000</pubDate>
		<dc:creator>Peter van der Woude</dc:creator>
				<category><![CDATA[Applications]]></category>
		<category><![CDATA[ConfigMgr 2012]]></category>
		<category><![CDATA[Global Conditions]]></category>
		<category><![CDATA[SCCM]]></category>

		<guid isPermaLink="false">http://www.petervanderwoude.nl/?p=875</guid>
		<description><![CDATA[This week my post will be about using a Global Condition to check the State of a service. I came to this, as I was once again deploying my UE-V Agent, like here, but this time via a normal Deployment. &#8230; <a href="http://www.petervanderwoude.nl/post/using-global-conditions-to-check-the-state-of-a-service-with-configmgr-2012/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>This week my post will be about using a <strong>Global Condition</strong> to check the <strong>State</strong> of a service. I came to this, as I was once again deploying my UE-V Agent, like <a href="http://www.petervanderwoude.nl/post/deploying-windows-8-with-the-ue-v-1-0-agent-via-configmgr-2012/">here</a>, but this time via a normal <strong>Deployment</strong>. This installation will only run, without failure, when the <em>Offline Files Service</em> (CscService) is running. So a <strong>Requirement</strong> for the <strong>Deployment Type</strong> should be that the service is running. As I like to find ways to do things without the need of scripts/ scripting, I came to using a standard <strong>Global Condition</strong>.</p>
<h2>Configuration</h2>
<p>Now lets take a look at how we can configure a <strong>Global Condition</strong>, in such a way, that it checks for the <strong>State</strong> of a service. During the configuration steps I will use the <em>Offline Files Service</em> (CscService) as an example.</p>
<ul>
<li><a href="http://www.petervanderwoude.nl/wordpress/wp-content/uploads/GlobCondStatServ.jpg"><img title="GlobCondStatServ" style="border-top: 0px; border-right: 0px; background-image: none; border-bottom: 0px; float: right; padding-top: 0px; padding-left: 0px; border-left: 0px; display: inline; padding-right: 0px" border="0" alt="GlobCondStatServ" align="right" src="http://www.petervanderwoude.nl/wordpress/wp-content/uploads/GlobCondStatServ_thumb.jpg" width="241" height="244"></a>In the <strong>Configuration Manager Console</strong>, navigate to <strong>Software Library</strong> &gt; <strong>Overview</strong> &gt; <strong>Application</strong> <strong>Management</strong> &gt; <strong>Global Condition</strong>.
<li>On the <strong>Home</strong> tab, click <strong>Create</strong> &gt; <strong>Create Global Condition </strong>and the<strong> Create Global Condition</strong> –popup will show.
<li>Now fill in the following information and click <strong>Ok</strong>.</li>
<ul>
<li>Fill in as <strong>Name</strong> <em>&lt;aName&gt;</em>.
<li>Select as <strong>Device type</strong> <em>Windows</em>.
<li>Select as <strong>Condition type</strong> <em>Setting</em>.
<li>Select as <strong>Setting type</strong> <em>WQL query</em>.
<li>Select as <strong>Data type</strong> <em>String</em>.
<li>Fill in as <strong>Namespace</strong> <em>root\cimv2</em>.
<li>Fill in as <strong>Class</strong> <em>Win32_Service</em>.
<li>Fill in as <strong>Property</strong> <em>State</em>.
<li>Fill in as <strong>WQL query WHERE clause:</strong> <em>Name=’CscService’</em>.</li>
</ul>
</ul>
<p>After configuring the <strong>Global Condition</strong>, lets add it as a <strong>Requirement</strong> on a <strong>Deployment Type</strong>. During these configuration steps I will use the UE-V Agent as an example.</p>
<ul>
<ul>
<li><a href="http://www.petervanderwoude.nl/wordpress/wp-content/uploads/AddRequStatServ.jpg"><img title="AddRequStatServ" style="border-top: 0px; border-right: 0px; background-image: none; border-bottom: 0px; float: right; padding-top: 0px; padding-left: 0px; border-left: 0px; display: inline; padding-right: 0px" border="0" alt="AddRequStatServ" align="right" src="http://www.petervanderwoude.nl/wordpress/wp-content/uploads/AddRequStatServ_thumb.jpg" width="231" height="244"></a>In the <strong>Configuration Manager Console</strong>, navigate to <strong>Software Library</strong> &gt; <strong>Overview</strong> &gt; <strong>Application</strong> <strong>Management</strong> &gt; <strong>Applications</strong>.
<li>Select the <em>UE-V Agent</em> <strong>Application</strong> and on the <strong>Deployment Types</strong> –tab double-click <em>&lt;aDeploymentType&gt;</em>.
<li>On the <strong>Requirements</strong> –tab, click.<strong>Add…</strong> and the <strong>Create Requirement</strong> –popup will show.</li>
<li>Now fill in the following information and click <strong>Ok</strong>.</li>
<ul>
<li>Select as <strong>Category:</strong> <em>Custom</em>.</li>
<li>Select as <strong>Condition:</strong> <em>&lt;aName&gt;</em>.</li>
<li>Select as <strong>Rule type:</strong> <em>Value</em>.</li>
<li>Select as <strong>Operator:</strong> <em>Equals</em>.</li>
<li>Fill in as <strong>Value:</strong> <em>Running</em>.</li>
</ul>
<p><!--EndFragment--></ul>
</ul>
<h2>Result</h2>
<p>As always, now it’s time to show the results. In this case I’m not going to show any log files, but I’m going to use the <strong>Simulate Deployment</strong> option. This option is specifically designed for testing the <strong>Requirements</strong> for an <strong>Application</strong>. I like to think that the best way to test a custom <strong>Requirement</strong>/ <strong>Global Condition</strong> is to test it with a wrong <strong>Value</strong>. The reason for that is that it will show the results of the <strong>Requirement</strong> in the <strong>Requirements Not Met</strong> –tab of the <strong>Deployment Status</strong>. In my case I tested it with the <strong>Value</strong> <em>Stopping</em>, while I knew that it was <em>Running</em>. See here the results of that test.<a href="http://www.petervanderwoude.nl/wordpress/wp-content/uploads/AsseDetaStatServ.jpg"><img title="AsseDetaStatServ" 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="AsseDetaStatServ" src="http://www.petervanderwoude.nl/wordpress/wp-content/uploads/AsseDetaStatServ_thumb.jpg" width="712" height="92"></a></p>
<p><a class="a2a_dd a2a_target addtoany_share_save" href="http://www.addtoany.com/share_save#url=http%3A%2F%2Fwww.petervanderwoude.nl%2Fpost%2Fusing-global-conditions-to-check-the-state-of-a-service-with-configmgr-2012%2F&amp;title=Using%20Global%20Conditions%20to%20check%20the%20State%20of%20a%20Service%20with%20ConfigMgr%202012" id="wpa2a_10"><img src="http://www.petervanderwoude.nl/wordpress/wp-content/plugins/add-to-any/share_save_171_16.png" width="171" height="16" alt="Share"/></a></p>]]></content:encoded>
			<wfw:commentRss>http://www.petervanderwoude.nl/post/using-global-conditions-to-check-the-state-of-a-service-with-configmgr-2012/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Managing Approval Requests in ConfigMgr 2012</title>
		<link>http://www.petervanderwoude.nl/post/managing-approval-requests-in-configmgr-2012/</link>
		<comments>http://www.petervanderwoude.nl/post/managing-approval-requests-in-configmgr-2012/#comments</comments>
		<pubDate>Sun, 07 Apr 2013 16:09:00 +0000</pubDate>
		<dc:creator>Peter van der Woude</dc:creator>
				<category><![CDATA[Applications]]></category>
		<category><![CDATA[Approval Request]]></category>
		<category><![CDATA[ConfigMgr 2012]]></category>
		<category><![CDATA[PowerShell]]></category>
		<category><![CDATA[Powershell]]></category>
		<category><![CDATA[SCCM]]></category>

		<guid isPermaLink="false">http://www.petervanderwoude.nl/?p=867</guid>
		<description><![CDATA[This week I want to devote a post to managing Approval Requests in ConfigMgr 2012. I’m not going to discuss whether the current model works, or not, I’m just going to say that in general it won’t work. The reason &#8230; <a href="http://www.petervanderwoude.nl/post/managing-approval-requests-in-configmgr-2012/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.petervanderwoude.nl/wordpress/wp-content/uploads/ApprRequ.jpg"><img title="ApprRequ" style="border-top: 0px; border-right: 0px; background-image: none; border-bottom: 0px; float: right; padding-top: 0px; padding-left: 0px; border-left: 0px; display: inline; padding-right: 0px" border="0" alt="ApprRequ" align="right" src="http://www.petervanderwoude.nl/wordpress/wp-content/uploads/ApprRequ_thumb.jpg" width="244" height="89"></a>This week I want to devote a post to managing <strong>Approval Requests</strong> in ConfigMgr 2012. I’m not going to discuss whether the current model works, or not, I’m just going to say that in general it won’t work. The reason for that is simple, because it’s just one big list for everyone and every single <strong>Approval Request</strong>. To fill a small gap here, there is the <a href="http://www.microsoft.com/en-us/download/details.aspx?id=29687">Application Approval Workflow (solution accelerator)</a>, but for that also System Center 2012 – Service Manager and – Orchestrator are required. This just doesn’t fill the gap for everyone and/ or every company. So where does this leave us?</p>
<h2>Approval Manager</h2>
<p><a href="http://www.petervanderwoude.nl/wordpress/wp-content/uploads/ApprMana.jpg"><img title="ApprMana" style="border-top: 0px; border-right: 0px; background-image: none; border-bottom: 0px; float: right; padding-top: 0px; padding-left: 0px; border-left: 0px; display: inline; padding-right: 0px" border="0" alt="ApprMana" align="right" src="http://www.petervanderwoude.nl/wordpress/wp-content/uploads/ApprMana_thumb.jpg" width="244" height="244"></a>Instead of complaining about all this, something that’s in a humans’ nature to do, we can also look at the options that we do get. With ConfigMgr 2012 SP1 we’ve been given PowerShell Cmdlets for ConfigMgr 2012! Many has been written about that already, so here I’m just going to give an example of what can be done with it. What I did was, with some help of <u>PrimalForms Communtiy Edition</u>, create a basic form, with some buttons and a selection box, to manage <strong>Approval Requests</strong>. The basic idea behind it, is to give somebody a list with users and let him manage the <strong>Approval Requests</strong> for those users only. By default the form shows all the <strong>Approval Requests</strong> for a specific user and gives the option to only show the <strong>Approval Requests</strong> that are waiting for approval. Then the <strong>Approval Requests</strong> that are still waiting for approval can be either approved, or denied.</p>
<h2>Code</h2>
<p>Now lets take a look at the cmdlets used for creating a basic form like this. Besides the code used for creating the form, I used the following cmdlets for the actions specified with it. The first I needed to do, was to get a specific list of users. This can be achieved by using the <a href="http://technet.microsoft.com/en-us/library/jj821806.aspx">Get-CMUser</a> cmdlet, which can be used to retrieve user objects from a specific collection. As I only needed the SMSID property, I used the following command:</p>
<p>
<div id="scid:57F11A72-B0E5-49c7-9094-E3A15BD5B5E6:26b6a08e-8753-4c4c-a97d-860a2e87c71e" class="wlWriterEditableSmartContent" style="float: none; padding-bottom: 0px; padding-top: 0px; padding-left: 0px; margin: 0px; display: inline; padding-right: 0px">
<pre style="background-color:#FFFFFF;white-space:-moz-pre-wrap; white-space: -pre-wrap; white-space: -o-pre-wrap; white-space: pre-wrap; word-wrap: break-word;overflow: auto;;font-family:Calibri;font-size:9,75"><span style="color: #000000;">Get</span><span style="color: #000000;">-</span><span style="color: #000000;">CMUser </span><span style="color: #000000;">-</span><span style="color: #000000;">CollectionID </span><span style="color: #800080;">$CollectionID</span><span style="color: #000000;"> </span><span style="color: #000000;">|</span><span style="color: #000000;"> Select SMSID</span></pre>
<p><!-- Code inserted with Steve Dunn's Windows Live Writer Code Formatter Plugin.  http://dunnhq.com --></div>
</p>
<p>The second thing I needed to do, was to get a list of <strong>Approval Requests</strong> for a specific user. This can be achieved by using the <a href="http://technet.microsoft.com/en-us/library/jj850166.aspx">Get-CMApprovalRequest</a> cmdlet, which can be used to retrieve a list of requests for a specific user. As I only wanted the Application, CurrentState and User properties, I used the following command:</p>
<p><div id="scid:57F11A72-B0E5-49c7-9094-E3A15BD5B5E6:2c65e7ca-35f2-447b-8679-c937864fb892" class="wlWriterEditableSmartContent" style="float: none; padding-bottom: 0px; padding-top: 0px; padding-left: 0px; margin: 0px; display: inline; padding-right: 0px">
<pre style="background-color:#FFFFFF;white-space:-moz-pre-wrap; white-space: -pre-wrap; white-space: -o-pre-wrap; white-space: pre-wrap; word-wrap: break-word;overflow: auto;;font-family:Calibri;font-size:9,75"><span style="color: #000000;">Get</span><span style="color: #000000;">-</span><span style="color: #000000;">CMApprovalRequest </span><span style="color: #000000;">-</span><span style="color: #000000;">User </span><span style="color: #800080;">$User</span><span style="color: #000000;"> </span><span style="color: #000000;">|</span><span style="color: #000000;"> Select Application,CurrentState,User</span></pre>
<p><!-- Code inserted with Steve Dunn's Windows Live Writer Code Formatter Plugin.  http://dunnhq.com --></div>
</p>
<p>A nice small follow up on this list is that it’s also very easy to create a list of <strong>Approval Requests</strong> with the state of <strong>Requested</strong>. This is an small and easy change, because an <strong>Approval Request</strong> knows the following 4 states: </p>
<ul>
<li>1 – Requested</li>
<li>2 – Cancelled</li>
<li>3 – Denied</li>
<li>4 – Approved</li>
</ul>
<p>So a list with only <strong>Approval Requests</strong>, with the state <strong>Requested</strong>, can be easily achieved with the following command (which is a small change, in query, from the general list):</p>
<p><div id="scid:57F11A72-B0E5-49c7-9094-E3A15BD5B5E6:51b46b2c-f30e-4a49-a50e-4ef33a6da798" class="wlWriterEditableSmartContent" style="float: none; padding-bottom: 0px; padding-top: 0px; padding-left: 0px; margin: 0px; display: inline; padding-right: 0px">
<pre style="background-color:#FFFFFF;white-space:-moz-pre-wrap; white-space: -pre-wrap; white-space: -o-pre-wrap; white-space: pre-wrap; word-wrap: break-word;overflow: auto;;font-family:Calibri;font-size:9,75"><span style="color: #000000;">Get</span><span style="color: #000000;">-</span><span style="color: #000000;">CMApprovalRequest </span><span style="color: #000000;">-</span><span style="color: #000000;">User </span><span style="color: #800080;">$User</span><span style="color: #000000;"> </span><span style="color: #000000;">|</span><span style="color: #000000;"> Select Application,CurrentState,User </span><span style="color: #000000;">|</span><span style="color: #000000;"> Where CurrentState </span><span style="color: #008080;">-eq</span><span style="color: #000000;"> </span><span style="color: #000000;">1</span></pre>
<p><!-- Code inserted with Steve Dunn's Windows Live Writer Code Formatter Plugin.  http://dunnhq.com --></div>
</p>
<p>The third thing I needed to do, was to create an option to <strong>Approve</strong> an <strong>Approval Requests</strong> for a specific user. This can be achieved by using the <a href="http://technet.microsoft.com/en-us/library/jj850155.aspx">Approve-CMApprovalRequest</a> cmdlet, which can be used to approve a request for a specific application of a specific user. As it also needs a comment, I used the following command:</p>
<p><div id="scid:57F11A72-B0E5-49c7-9094-E3A15BD5B5E6:78fc5337-41c0-4131-a804-b403fdc9b3b7" class="wlWriterEditableSmartContent" style="float: none; padding-bottom: 0px; padding-top: 0px; padding-left: 0px; margin: 0px; display: inline; padding-right: 0px">
<pre style="background-color:#FFFFFF;white-space:-moz-pre-wrap; white-space: -pre-wrap; white-space: -o-pre-wrap; white-space: pre-wrap; word-wrap: break-word;overflow: auto;;font-family:Calibri;font-size:9,75"><span style="color: #000000;">Approve</span><span style="color: #000000;">-</span><span style="color: #000000;">CMApprovalRequest </span><span style="color: #000000;">-</span><span style="color: #000000;">Application </span><span style="color: #800080;">$ApplName</span><span style="color: #000000;"> </span><span style="color: #000000;">-</span><span style="color: #000000;">User </span><span style="color: #800080;">$User</span><span style="color: #000000;"> </span><span style="color: #000000;">-</span><span style="color: #000000;">Comment </span><span style="color: #800000;">"</span><span style="color: #800000;">Request approved.</span><span style="color: #800000;">"</span></pre>
<p><!-- Code inserted with Steve Dunn's Windows Live Writer Code Formatter Plugin.  http://dunnhq.com --></div>
</p>
<p>The fourth, and also last thing I needed to do, was to create an option to <strong>Deny </strong>an <strong>Approval Requests</strong> for a specific user. This can be achieved by using the <a href="http://technet.microsoft.com/en-us/library/jj821853.aspx">Deny-CMApprovalRequest</a> cmdlet, which can be used to deny a request for a specific application of a specific user. As it also needs a comment, I used the following command::</p>
<p><div id="scid:57F11A72-B0E5-49c7-9094-E3A15BD5B5E6:23dff29e-7576-472d-9f71-582a6d4fead3" class="wlWriterEditableSmartContent" style="float: none; padding-bottom: 0px; padding-top: 0px; padding-left: 0px; margin: 0px; display: inline; padding-right: 0px">
<pre style="background-color:White;overflow: auto;;font-family:Calibri;font-size:9,75"><span style="color: #000000;">Deny</span><span style="color: #000000;">-</span><span style="color: #000000;">CMApprovalRequest </span><span style="color: #000000;">-</span><span style="color: #000000;">Application </span><span style="color: #800080;">$ApplName</span><span style="color: #000000;"> </span><span style="color: #000000;">-</span><span style="color: #000000;">User </span><span style="color: #800080;">$User</span><span style="color: #000000;"> </span><span style="color: #000000;">-</span><span style="color: #000000;">Comment </span><span style="color: #800000;">"</span><span style="color: #800000;">Request denied.</span><span style="color: #800000;">"</span><span style="color: #000000;"> </span></pre>
<p><!-- Code inserted with Steve Dunn's Windows Live Writer Code Formatter Plugin.  http://dunnhq.com --></div>
</p>
<h2>Conclusion</h2>
<p>This was my first real, but small, PowerShell project in ConfigMgr 2012 and I do have to say that I really like the power of it. It makes it very easy to automate console action. One thing that is important to note is, that it’s also via PowerShell not possible to do something with already approved, or denied <strong>Approval Requests</strong>.</p>
<p>In case someone wants to see/ have the complete code, I will upload it somewhere next week. For those, that can’t wait, don’t hesitate to contact me.</p>
<p><a class="a2a_dd a2a_target addtoany_share_save" href="http://www.addtoany.com/share_save#url=http%3A%2F%2Fwww.petervanderwoude.nl%2Fpost%2Fmanaging-approval-requests-in-configmgr-2012%2F&amp;title=Managing%20Approval%20Requests%20in%20ConfigMgr%202012" id="wpa2a_12"><img src="http://www.petervanderwoude.nl/wordpress/wp-content/plugins/add-to-any/share_save_171_16.png" width="171" height="16" alt="Share"/></a></p>]]></content:encoded>
			<wfw:commentRss>http://www.petervanderwoude.nl/post/managing-approval-requests-in-configmgr-2012/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Deployment of Configuration Baseline failed with error ‘Script is not signed’ in ConfigMgr 2012</title>
		<link>http://www.petervanderwoude.nl/post/deployment-of-configuration-baseline-failed-with-error-script-is-not-signed-in-configmgr-2012/</link>
		<comments>http://www.petervanderwoude.nl/post/deployment-of-configuration-baseline-failed-with-error-script-is-not-signed-in-configmgr-2012/#comments</comments>
		<pubDate>Sun, 31 Mar 2013 19:31:00 +0000</pubDate>
		<dc:creator>Peter van der Woude</dc:creator>
				<category><![CDATA[Client Settings]]></category>
		<category><![CDATA[ConfigMgr 2012]]></category>
		<category><![CDATA[Configuration Baseline]]></category>
		<category><![CDATA[Policy Spy]]></category>
		<category><![CDATA[SCCM]]></category>

		<guid isPermaLink="false">http://www.petervanderwoude.nl/?p=854</guid>
		<description><![CDATA[This week my post will still be a small one, as my time is still limited during the move to our new home. In between I was still doing some work and trying to find a subject for a presentation/ &#8230; <a href="http://www.petervanderwoude.nl/post/deployment-of-configuration-baseline-failed-with-error-script-is-not-signed-in-configmgr-2012/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>This week my post will still be a small one, as my time is still limited during the move to our new home. In between I was still doing some work and trying to find a subject for a presentation/ demo. During that I was working with the <strong>Configuration Baseline</strong> of UE-V. That baseline is completely based on one <strong>Configuration Item</strong>, which consists of eight script setting types and those scripts are all written in PowerShell. The deployment of the baseline resulted in error <strong>0x87D00327</strong>, which translates to <strong>‘Script is not signed’</strong> (see picture).<a href="http://www.petervanderwoude.nl/wordpress/wp-content/uploads/ScriptIsNotSigned1.jpg"><img title="ScriptIsNotSigned" 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="ScriptIsNotSigned" src="http://www.petervanderwoude.nl/wordpress/wp-content/uploads/ScriptIsNotSigned_thumb1.jpg" width="712" height="48"></a></p>
<h2>Solution</h2>
<p>In most cases it’s not possible, or allowed, to change the execution policy for PowerShell on the system. So just let the ConfigMgr client “manage it” and then the solution is actually very simple. In the <strong>Client Settings</strong>, under <strong>Computer Agent</strong>, there is an option to configure the <strong>PowerShell execution policy</strong>. The only pitfall in here is that it means something different then someone might think. These are the options:</p>
<ul>
<li><strong>Bypass</strong>: The ConfigMgr client bypasses the PowerShell configuration on the local system so that unsigned scripts can run.
<li><strong>Restricted</strong> (default in ConfigMgr 2012): The ConfigMgr client uses the current PowerShell configuration on the local system, which determines whether, or not, unsigned scripts can run.
<li><strong>All Signed</strong> (default in ConfigMgr 2012 SP1):The ConfigMgr client runs scripts only if they are signed by a trusted publisher and applies independently from the current PowerShell configuration on the local system.</li>
</ul>
<p><a href="http://www.petervanderwoude.nl/wordpress/wp-content/uploads/PSExecPoli.jpg"><img title="PSExecPoli" style="border-top: 0px; border-right: 0px; background-image: none; border-bottom: 0px; float: right; padding-top: 0px; padding-left: 0px; border-left: 0px; display: inline; padding-right: 0px" border="0" alt="PSExecPoli" align="right" src="http://www.petervanderwoude.nl/wordpress/wp-content/uploads/PSExecPoli_thumb.jpg" width="244" height="189"></a>The easiest way to configure this, for the <strong>Configuration Baseline</strong>, is to follow the next steps:
<ul>
<li>In the Configuration Manager Console navigate to <strong>Administration </strong>&gt; <strong>Overview</strong> &gt; <strong>Client Settings</strong>.
<li>On the <strong>Home</strong> tab, in the <strong>Create </strong>group, select <strong>Create Custom Client Device Settings</strong> and the <strong>Create Custom Client Device Settings</strong> –popup will show<strong>.</strong>
<li>On the <strong>General</strong> page, fill in with <strong>Name</strong> <em>&lt;aName&gt;</em> and select <strong>Computer Agent</strong>.
<li>On the <strong>Computer Agent </strong>page, select next to <strong>PowerShell execution policy </strong><em>Bypass </em>and click <strong>Ok</strong>.
<li>Select the new policy <em>&lt;aName&gt;</em> and on the <strong>Home</strong> tab, in the <strong>Client Settings </strong>group, select <strong>Deploy</strong>.
<li>Select <em>&lt;aDeviceCollection&gt;</em> and click <strong>Ok</strong>.</li>
</ul>
<h2>Result</h2>
<p><a href="http://www.petervanderwoude.nl/wordpress/wp-content/uploads/PoliSpyPSExec.jpg"><img title="PoliSpyPSExec" style="border-top: 0px; border-right: 0px; background-image: none; border-bottom: 0px; float: right; padding-top: 0px; padding-left: 0px; border-left: 0px; display: inline; padding-right: 0px" border="0" alt="PoliSpyPSExec" align="right" src="http://www.petervanderwoude.nl/wordpress/wp-content/uploads/PoliSpyPSExec_thumb.jpg" width="244" height="174"></a>As always, now it’s time to take a look at the result. In this case it would be easy to just show a good result of the deployment of the <strong>Configuration Baseline</strong>, but I want to show some more. I want to show the result of the deployment of the new <strong>Client Settings.</strong> Normally, the best places to look at the results are the log files. In this case, there is no log file that shows the current setting of the<strong> PowerShell execution policy</strong>. So the best place to look at that is the old-school <strong>Policy Spy</strong>. In this case it will show <em>PowerShellExecutionPolicy = 1</em> as a setting under, <strong>Machine</strong> \ <strong>CCM_ClientAgentConfig</strong>. The meaning of the different possible values are:
<ul>
<li>0 = All signed</li>
<li>1 = ByPass</li>
<li>2 = Restricted</li>
</ul>
<p>More information: <a title="http://technet.microsoft.com/en-us/library/gg682067.aspx#BKMK_ComputerAgentDeviceSettings" href="http://technet.microsoft.com/en-us/library/gg682067.aspx#BKMK_ComputerAgentDeviceSettings">http://technet.microsoft.com/en-us/library/gg682067.aspx#BKMK_ComputerAgentDeviceSettings</a></p>
<p><a class="a2a_dd a2a_target addtoany_share_save" href="http://www.addtoany.com/share_save#url=http%3A%2F%2Fwww.petervanderwoude.nl%2Fpost%2Fdeployment-of-configuration-baseline-failed-with-error-script-is-not-signed-in-configmgr-2012%2F&amp;title=Deployment%20of%20Configuration%20Baseline%20failed%20with%20error%20%26lsquo%3BScript%20is%20not%20signed%26rsquo%3B%20in%20ConfigMgr%202012" id="wpa2a_14"><img src="http://www.petervanderwoude.nl/wordpress/wp-content/plugins/add-to-any/share_save_171_16.png" width="171" height="16" alt="Share"/></a></p>]]></content:encoded>
			<wfw:commentRss>http://www.petervanderwoude.nl/post/deployment-of-configuration-baseline-failed-with-error-script-is-not-signed-in-configmgr-2012/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Preventing initiation of available deployments on specific systems with ConfigMgr 2012</title>
		<link>http://www.petervanderwoude.nl/post/preventing-initiation-of-available-deployments-on-specific-systems-with-configmgr-2012/</link>
		<comments>http://www.petervanderwoude.nl/post/preventing-initiation-of-available-deployments-on-specific-systems-with-configmgr-2012/#comments</comments>
		<pubDate>Sun, 10 Mar 2013 15:28:00 +0000</pubDate>
		<dc:creator>Peter van der Woude</dc:creator>
				<category><![CDATA[Applications]]></category>
		<category><![CDATA[Client Settings]]></category>
		<category><![CDATA[ConfigMgr 2012]]></category>
		<category><![CDATA[Task Sequence]]></category>
		<category><![CDATA[SCCM]]></category>

		<guid isPermaLink="false">http://www.petervanderwoude.nl/?p=848</guid>
		<description><![CDATA[This week I want to devote a small post to a question that I read on windows-noob.com. The question came to the point whether, or not, it is possible to deploy applications via a task sequence, but only allow administrators &#8230; <a href="http://www.petervanderwoude.nl/post/preventing-initiation-of-available-deployments-on-specific-systems-with-configmgr-2012/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>This week I want to devote a small post to a question that I read on <a href="http://www.windows-noob.com/forums/index.php?app=portal">windows-noob.com</a>. The question came to the point whether, or not, it is possible to deploy applications via a task sequence, but only allow administrators to actually run it. This question triggered me to look a bit better into the different <strong>Client Settings</strong> and then specifically the setting of <strong>Install permissions</strong>. This setting gives us the possibility to prevent the initiation of available deployments via the Software Center <strong><strong><u>and</u></strong> </strong>the Application Catalog on specific systems. So in this post I will show that setting by only allowing administrators to initiate available deployments.<br />
<h2>Configuration</h2>
<p><a href="http://www.petervanderwoude.nl/wordpress/wp-content/uploads/CompAgenInstPerm.jpg"><img title="CompAgenInstPerm" style="border-left-width: 0px; border-right-width: 0px; background-image: none; border-bottom-width: 0px; float: right; padding-top: 0px; padding-left: 0px; display: inline; padding-right: 0px; border-top-width: 0px" border="0" alt="CompAgenInstPerm" align="right" src="http://www.petervanderwoude.nl/wordpress/wp-content/uploads/CompAgenInstPerm_thumb.jpg" width="244" height="189"></a>Now lets start with the configuration, which is actually very easy, but like always it’s all about knowing that the possibility exists. The <strong>Install permissions</strong> –setting<strong> </strong>is another new (Computer) <strong>Client Setting</strong> under <strong>Computer Agent</strong>. This setting can be used to allow<strong> All users </strong>(default), <strong>Only administrators</strong>, <strong>Only administrators and primary users</strong> or <strong>No users</strong> to initiate available deployments on a specific system. To configure this, follow the next steps:
<ul>
<li>In the Configuration Manager Console navigate to <strong>Administration </strong>&gt; <strong>Overview</strong> &gt; <strong>Client Settings</strong>.
<li>On the <strong>Home</strong> tab, in the <strong>Create </strong>group, select <strong>Create Custom Client Device Settings</strong> and the <strong>Create Custom Client Device Settings</strong> –popup will show<strong>.</strong>
<li>On the <strong>General</strong> page, fill in with <strong>Name</strong> <em>&lt;aName&gt;</em> and select <strong>Computer Agent</strong>.
<li>On the <strong>Computer Agent </strong>page, select next to <strong>Install permissions </strong><em>Only Administrators </em>and click <strong>Ok</strong>.
<li>Select the new policy <em>&lt;aName&gt;</em> and on the <strong>Home</strong> tab, in the <strong>Client Settings </strong>group, select <strong>Deploy</strong>.
<li>Select <em>&lt;aDeviceCollection&gt;</em> and click <strong>Ok</strong>.</li>
</ul>
<h2>Result</h2>
<p>After the deployment of the new <strong>Client Settings</strong> it is time to take a look at the impact on targeted system(s). Normally I’m a huge fan of looking at the client logs for the results, but in this case the log files don’t “speak” as much as the real error messages. When a normal users now logs on to the system and tries to initiate an available deployment, the following error messages will appear.</p>
<table cellspacing="0" cellpadding="0" width="400" border="0">
<tbody>
<tr>
<td valign="top" width="269">Software Center</td>
<td valign="top" width="455">Application Portal</td>
</tr>
<tr>
<td valign="top" width="269"><a href="http://www.petervanderwoude.nl/wordpress/wp-content/uploads/SoftCentInstErro.jpg"><img title="SoftCentInstErro" 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="SoftCentInstErro" src="http://www.petervanderwoude.nl/wordpress/wp-content/uploads/SoftCentInstErro_thumb.jpg" width="258" height="141"></a></td>
<td valign="top" width="455"><a href="http://www.petervanderwoude.nl/wordpress/wp-content/uploads/PortInstErro.jpg"><img title="PortInstErro" 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="PortInstErro" src="http://www.petervanderwoude.nl/wordpress/wp-content/uploads/PortInstErro_thumb.jpg" width="431" height="141"></a></td>
</tr>
</tbody>
</table>
<p><a class="a2a_dd a2a_target addtoany_share_save" href="http://www.addtoany.com/share_save#url=http%3A%2F%2Fwww.petervanderwoude.nl%2Fpost%2Fpreventing-initiation-of-available-deployments-on-specific-systems-with-configmgr-2012%2F&amp;title=Preventing%20initiation%20of%20available%20deployments%20on%20specific%20systems%20with%20ConfigMgr%202012" id="wpa2a_16"><img src="http://www.petervanderwoude.nl/wordpress/wp-content/plugins/add-to-any/share_save_171_16.png" width="171" height="16" alt="Share"/></a></p>]]></content:encoded>
			<wfw:commentRss>http://www.petervanderwoude.nl/post/preventing-initiation-of-available-deployments-on-specific-systems-with-configmgr-2012/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Troubleshooting Windows app package deployment on Windows 8 with ConfigMgr 2012</title>
		<link>http://www.petervanderwoude.nl/post/troubleshooting-windows-app-package-deployment-on-windows-8-with-configmgr-2012/</link>
		<comments>http://www.petervanderwoude.nl/post/troubleshooting-windows-app-package-deployment-on-windows-8-with-configmgr-2012/#comments</comments>
		<pubDate>Sun, 03 Mar 2013 15:50:00 +0000</pubDate>
		<dc:creator>Peter van der Woude</dc:creator>
				<category><![CDATA[Applications]]></category>
		<category><![CDATA[ConfigMgr 2012]]></category>
		<category><![CDATA[SCCM]]></category>

		<guid isPermaLink="false">http://www.petervanderwoude.nl/?p=831</guid>
		<description><![CDATA[This week I was planning on doing a post about deploying a Windows app package (.appx) on Windows 8, until I saw that Keith Mayer already just posted a Step-by-Step for that. As that post is, from a ConfigMgr perspective, &#8230; <a href="http://www.petervanderwoude.nl/post/troubleshooting-windows-app-package-deployment-on-windows-8-with-configmgr-2012/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>This week I was planning on doing a post about deploying a <strong>Windows app package (.appx)</strong> on Windows 8, until I saw that Keith Mayer already just posted a <a href="http://blogs.technet.com/b/keithmayer/archive/2013/02/25/step-by-step-deploying-windows-8-apps-with-system-center-2012-service-pack-1.aspx#.UTJlrExgWHt">Step-by-Step</a> for that. As that post is, from a ConfigMgr perspective, already very complete, I changed, from my original plan, to troubleshooting the deployment of a <strong>Windows app package (.appx)</strong> on Windows 8. The deployment of a <strong>Windows app package (.appx)</strong> on Windows 8 requires two specific settings and in this post I will describe those settings and the errors that will appear when these settings are forgotten.</p>
<h2>Import the root certificate as a Trusted Root Certification Authority</h2>
<p>The first setting is that the app package has to be signed with a certificate chain that can be validated by the local computer. In other words the root certificate has to be trusted by the local computer. When this is not configured correctly, both, the <strong>AppDiscovery.log</strong> and the <strong>AppEnforce.log</strong>, will show error 800B0109. The nice thing is that the<strong> AppEnforce.log</strong> will also implicate what the problem is, see this log snippet (followed by a picture of the complete error in the log): </p>
<blockquote><p>In-line script returned error output: Add-AppxPackage : Deployment failed with HRESULT: 0x800B0109, A certificate chain processed, but terminated in a root certificate which is not trusted by the trust provider. (Exception from HRESULT: 0x800B0109) error 0x800B0109: The root certificate of the signature in the app package must be trusted.</p>
</blockquote>
<p><a href="http://www.petervanderwoude.nl/wordpress/wp-content/uploads/AppEnfo800B01091.jpg"><img title="AppEnfo800B0109" 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="AppEnfo800B0109" src="http://www.petervanderwoude.nl/wordpress/wp-content/uploads/AppEnfo800B0109_thumb1.jpg" width="712" height="157"></a></p>
<p><a href="http://www.petervanderwoude.nl/wordpress/wp-content/uploads/TrusRootCertPoli1.jpg"><img title="TrusRootCertPoli" style="border-top: 0px; border-right: 0px; background-image: none; border-bottom: 0px; float: right; padding-top: 0px; padding-left: 0px; border-left: 0px; display: inline; padding-right: 0px" border="0" alt="TrusRootCertPoli" align="right" src="http://www.petervanderwoude.nl/wordpress/wp-content/uploads/TrusRootCertPoli_thumb1.jpg" width="223" height="244"></a></p>
<p>The easiest way to correctly import the root certificate for all computers is by using Group Policies. To configure this follow the next steps:</p>
<ul>
<li>Open the <strong>Group Policy Management Editor</strong> and navigate to <strong>Computer Configuration</strong> \ <strong>Policies</strong> \ <strong>Windows Settings</strong> \ <strong>Security Settings</strong> \ <strong>Public Key Policies</strong>.</li>
<li>Right-click <strong>Trusted Root Certification Authorities</strong>, select <strong>Import…</strong> and the <strong>Certificate Import Wizard</strong> will show.</li>
<ul>
<li>On the <strong>Welcome</strong> page, click <strong>Next</strong>. </li>
<li>On the <strong>File to Import</strong> page, <strong>Browse</strong> to the certificate and click <strong>Next</strong>.</li>
<li>On the <strong>Certificate Store</strong> page, click <strong>Next</strong>. </li>
<li>On the <strong>Completion</strong> page, click <strong>Finish</strong>.</li>
</ul>
</ul>
<h2>Allow all trusted apps to install</h2>
<p>The second setting is that the local computer is allowed to install trusted app packages that do not originate from the Windows Store. When this is not configured correctly, both, the <strong>AppDiscovery.log</strong> and the <strong>AppEnforce.log</strong>, will show error <strong>80073CFF</strong>. The nice thing is again that the <strong>AppEnforce.log</strong> will implicate what the problem is, even though it’s a bit more cryptic this time, see this log snippet (followed by a picture of the complete error in the log): </p>
<blockquote><p>In-line script returned error output: Add-AppxPackage : Deployment failed with HRESULT: 0x80073CFF, To install this application you need either a Windows developer license or a sideloading-enabled system. (Exception from HRESULT: 0x80073CFF) Deployment of package bc25cdcc-f901-4f91-91a7-55a74a247376_1.0.0.0_neutral__tbz3402trp7yy failed because no valid license or sideloading policy could be applied. A developer license (<a href="http://go.microsoft.com/fwlink/?LinkId=233074)">http://go.microsoft.com/fwlink/?LinkId=233074)</a> or enterprise sideloading configuration (<a href="http://go.microsoft.com/fwlink/?LinkId=231020)">http://go.microsoft.com/fwlink/?LinkId=231020)</a> may be required.</p>
</blockquote>
<p><a href="http://www.petervanderwoude.nl/wordpress/wp-content/uploads/AppEnfo80073CFF1.jpg"><img title="AppEnfo80073CFF" 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="AppEnfo80073CFF" src="http://www.petervanderwoude.nl/wordpress/wp-content/uploads/AppEnfo80073CFF_thumb1.jpg" width="711" height="157"></a></p>
<p><a href="http://www.petervanderwoude.nl/wordpress/wp-content/uploads/AppPackDeplPoli1.jpg"><img title="AppPackDeplPoli" style="border-top: 0px; border-right: 0px; background-image: none; border-bottom: 0px; float: right; padding-top: 0px; padding-left: 0px; border-left: 0px; display: inline; padding-right: 0px" border="0" alt="AppPackDeplPoli" align="right" src="http://www.petervanderwoude.nl/wordpress/wp-content/uploads/AppPackDeplPoli_thumb1.jpg" width="244" height="156"></a></p>
<p>Also for allowing all trusted apps to install, the easiest way to correctly configure that for all computers is by using Group Policies. To configure this follow the next steps:</p>
<ul>
<li>Open the <strong>Group Policy Management Editor</strong> and navigate to <strong>Computer Configuration</strong> \ <strong>Policies</strong> \ <strong>Administrative Templates </strong>\ <strong>Windows Components </strong>\ <strong>App Package Deployment</strong>.</li>
<li>Double-click <strong>Allow all trusted apps to install</strong>, select <strong>Enabled</strong> and click <strong>OK</strong>.</li>
</ul>
<p><u>Note</u>: Before the app package is a trusted app package, the (root) certificate, that is used for signing the app package, has to be trusted.</p>
<p><a class="a2a_dd a2a_target addtoany_share_save" href="http://www.addtoany.com/share_save#url=http%3A%2F%2Fwww.petervanderwoude.nl%2Fpost%2Ftroubleshooting-windows-app-package-deployment-on-windows-8-with-configmgr-2012%2F&amp;title=Troubleshooting%20Windows%20app%20package%20deployment%20on%20Windows%208%20with%20ConfigMgr%202012" id="wpa2a_18"><img src="http://www.petervanderwoude.nl/wordpress/wp-content/plugins/add-to-any/share_save_171_16.png" width="171" height="16" alt="Share"/></a></p>]]></content:encoded>
			<wfw:commentRss>http://www.petervanderwoude.nl/post/troubleshooting-windows-app-package-deployment-on-windows-8-with-configmgr-2012/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Quickly catch Active Directory Group Membership changes in ConfigMgr 2012</title>
		<link>http://www.petervanderwoude.nl/post/quickly-catch-active-directory-group-membership-changes-in-configmgr-2012/</link>
		<comments>http://www.petervanderwoude.nl/post/quickly-catch-active-directory-group-membership-changes-in-configmgr-2012/#comments</comments>
		<pubDate>Sun, 24 Feb 2013 15:19:00 +0000</pubDate>
		<dc:creator>Peter van der Woude</dc:creator>
				<category><![CDATA[Collections]]></category>
		<category><![CDATA[ConfigMgr 2012]]></category>
		<category><![CDATA[SCCM]]></category>

		<guid isPermaLink="false">http://www.petervanderwoude.nl/?p=820</guid>
		<description><![CDATA[This week my post will be about catching Active Directory Group Membership changes. I choose this subject, because I still see and get questions about how long does it take before a group membership change is active in a collection. &#8230; <a href="http://www.petervanderwoude.nl/post/quickly-catch-active-directory-group-membership-changes-in-configmgr-2012/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>This week my post will be about catching Active Directory Group Membership changes. I choose this subject, because I still see and get questions about how long does it take before a group membership change is active in a collection. The short answer would be, based on default settings, between 1 till 10 minutes. In the rest of this post I will show a longer answer on why it’s like that. The main reasons are that the Delta Discovery and the Incremental Updates are working now. </p>
<h2>Configuration</h2>
<p>The most important part to quickly catch Active Directory Group Membership changes, is a good configuration. For that two configurations are very important, the <strong>Active Directory Group Discovery</strong> and the collection settings. To show how, and how fast, it works, I will show it with my Microsoft Office 2013 Security Group and that means the following configuration:</p>
<ul>
<li><a href="http://www.petervanderwoude.nl/wordpress/wp-content/uploads/ActiDireGrouDiscProp.jpg"><img title="ActiDireGrouDiscProp" style="border-top: 0px; border-right: 0px; background-image: none; border-bottom: 0px; float: right; padding-top: 0px; padding-left: 0px; border-left: 0px; display: inline; padding-right: 0px" border="0" alt="ActiDireGrouDiscProp" align="right" src="http://www.petervanderwoude.nl/wordpress/wp-content/uploads/ActiDireGrouDiscProp_thumb.jpg" width="232" height="244"></a>First thing is to enable delta discovery. To configure the delta discovery navigate to <strong>Administration</strong> &gt; <strong>Overview</strong> &gt; <strong>Hierarchy Configuration </strong>&gt; <strong>Discovery Methods</strong>. Now double-click <strong>Active Directory Group Discovery</strong> to open the <strong>Active Directory Grou Discovery Properties</strong> and go to the <strong>Polling Shedule</strong> –tab. Select <strong>Enable delta discovery</strong> and leave the <strong>Delta discovery interval (minutes)</strong> default.</li>
<ul>
<li><u>Note</u>: Delta discovery does NOT work for deleted objects from the Active Directory.</li>
</ul>
<li>Second thing is to configure the collection query and to enable incremental updates on the collection. <a href="http://www.petervanderwoude.nl/wordpress/wp-content/uploads/CollMembRule.jpg"><img title="CollMembRule" style="border-top: 0px; border-right: 0px; background-image: none; border-bottom: 0px; float: right; padding-top: 0px; padding-left: 0px; border-left: 0px; display: inline; padding-right: 0px" border="0" alt="CollMembRule" align="right" src="http://www.petervanderwoude.nl/wordpress/wp-content/uploads/CollMembRule_thumb.jpg" width="232" height="244"></a>To configure the incremental updates navigate to the collection <strong>Properties</strong> and then the <strong>Membership Rules</strong> –tab. Now select <strong>Enable Use incremental updates for this collection</strong> and add a <strong>Query Rule</strong> for the members of the Microsoft Office 2013 Security Group. For that add the following query:
<pre class="csharpcode"><span class="kwrd">select</span> SMS_R_USER.ResourceID,SMS_R_USER.ResourceType,SMS_R_USER.Name,SMS_R_USER.UniqueUserName,SMS_R_USER.WindowsNTDomain <span class="kwrd">from</span> SMS_R_User <span class="kwrd">where</span> SMS_R_User.UserGroupName = "PETERTEST\\Microsoft Office 2013"</pre>
</li>
<ul>
<li><u>Note</u>: To change the interval for incremental updates take a look at <a href="http://www.petervanderwoude.nl/post/configuring-collection-membership-evaluation-in-configmgr-2012/">this post</a>.<br />
<style type="text/css">.csharpcode, .csharpcode pre
{
	font-size: small;
	color: black;
	font-family: consolas, "Courier New", courier, monospace;
	background-color: #ffffff;
	/*white-space: pre;*/
}
.csharpcode pre { margin: 0em; }
.csharpcode .rem { color: #008000; }
.csharpcode .kwrd { color: #0000ff; }
.csharpcode .str { color: #006080; }
.csharpcode .op { color: #0000c0; }
.csharpcode .preproc { color: #cc6633; }
.csharpcode .asp { background-color: #ffff00; }
.csharpcode .html { color: #800000; }
.csharpcode .attr { color: #ff0000; }
.csharpcode .alt 
{
	background-color: #f4f4f4;
	width: 100%;
	margin: 0em;
}
.csharpcode .lnum { color: #606060; }
</style>
</li>
</ul>
</ul>
<h2>Result</h2>
<p>Now making a change to the group membership of the Microsoft Office 2013 Security Group will trigger the following reaction. The first thing that happens, within 5 minutes, is that the Active Directory Group Discovery will start to run. This can be followed in the <strong>adsgdis.log</strong> and looks like this:<a href="http://www.petervanderwoude.nl/wordpress/wp-content/uploads/ADSecuGrou.jpg"><img title="ADSecuGrou" 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="ADSecuGrou" src="http://www.petervanderwoude.nl/wordpress/wp-content/uploads/ADSecuGrou_thumb.jpg" width="712" height="107"></a>&nbsp; </p>
<p>One of the things that this log shows, is that a Data Discovery Record (DDR) was written for group ‘PETERTEST\Microsoft Office 2013’. This DDR looks like this:
<pre class="csharpcode">

 |  FV°     <span class="kwrd">&lt;</span><span class="html">User</span> <span class="attr">Group</span><span class="kwrd">&gt;</span>
BEGIN_PROPERTY
<span class="kwrd">&lt;</span><span class="html">8</span><span class="kwrd">&gt;&lt;</span><span class="html">Unique</span> <span class="attr">Usergroup</span> <span class="attr">Name</span><span class="kwrd">&gt;&lt;</span><span class="html">19</span><span class="kwrd">&gt;&lt;</span><span class="html">32</span><span class="kwrd">&gt;&lt;</span><span class="html">PETERTEST</span>\<span class="attr">Microsoft</span> <span class="attr">Office</span> <span class="attr">2013</span><span class="kwrd">&gt;</span>
END_PROPERTY
BEGIN_PROPERTY
<span class="kwrd">&lt;</span><span class="html">0</span><span class="kwrd">&gt;&lt;</span><span class="html">Usergroup</span> <span class="attr">Name</span><span class="kwrd">&gt;&lt;</span><span class="html">19</span><span class="kwrd">&gt;&lt;</span><span class="html">32</span><span class="kwrd">&gt;&lt;</span><span class="html">Microsoft</span> <span class="attr">Office</span> <span class="attr">2013</span><span class="kwrd">&gt;</span>
END_PROPERTY
BEGIN_PROPERTY
<span class="kwrd">&lt;</span><span class="html">17</span><span class="kwrd">&gt;&lt;</span><span class="html">Active</span> <span class="attr">Directory</span> <span class="attr">Organizational</span> <span class="attr">Unit</span><span class="kwrd">&gt;&lt;</span><span class="html">19</span><span class="kwrd">&gt;&lt;</span><span class="html">64</span><span class="kwrd">&gt;</span>
BEGIN_ARRAY_VALUES
<span class="kwrd">&lt;</span><span class="html">PETERTEST.LOCAL</span>/PETERTEST<span class="kwrd">&gt;&lt;</span><span class="html">PETERTEST.LOCAL</span>/PETERTEST/GROUPS<span class="kwrd">&gt;&lt;</span><span class="html">PETERTEST.LOCAL</span>/PETERTEST/GROUPS/APPLICATION<span class="kwrd">&gt;</span>
END_ARRAY_VALUES
END_PROPERTY
BEGIN_PROPERTY
<span class="kwrd">&lt;</span><span class="html">17</span><span class="kwrd">&gt;&lt;</span><span class="html">Active</span> <span class="attr">Directory</span> <span class="attr">Container</span> <span class="attr">Name</span><span class="kwrd">&gt;&lt;</span><span class="html">19</span><span class="kwrd">&gt;&lt;</span><span class="html">64</span><span class="kwrd">&gt;</span>
BEGIN_ARRAY_VALUES

END_ARRAY_VALUES
END_PROPERTY
BEGIN_PROPERTY
<span class="kwrd">&lt;</span><span class="html">0</span><span class="kwrd">&gt;&lt;</span><span class="html">Windows</span> <span class="attr">NT</span> <span class="attr">Domain</span><span class="kwrd">&gt;&lt;</span><span class="html">19</span><span class="kwrd">&gt;&lt;</span><span class="html">32</span><span class="kwrd">&gt;&lt;</span><span class="html">PETERTEST</span><span class="kwrd">&gt;</span>
END_PROPERTY
BEGIN_PROPERTY
<span class="kwrd">&lt;</span><span class="html">0</span><span class="kwrd">&gt;&lt;</span><span class="html">AD</span> <span class="attr">Domain</span> <span class="attr">Name</span><span class="kwrd">&gt;&lt;</span><span class="html">19</span><span class="kwrd">&gt;&lt;</span><span class="html">32</span><span class="kwrd">&gt;&lt;</span><span class="html">PETERTEST.LOCAL</span><span class="kwrd">&gt;</span>
END_PROPERTY
BEGIN_PROPERTY
<span class="kwrd">&lt;</span><span class="html">0</span><span class="kwrd">&gt;&lt;</span><span class="html">SID</span><span class="kwrd">&gt;&lt;</span><span class="html">19</span><span class="kwrd">&gt;&lt;</span><span class="html">64</span><span class="kwrd">&gt;&lt;</span><span class="html">S-1-5-21-3410556430-1908461509-240868779-1127</span><span class="kwrd">&gt;</span>
END_PROPERTY
BEGIN_PROPERTY
<span class="kwrd">&lt;</span><span class="html">0</span><span class="kwrd">&gt;&lt;</span><span class="html">Object</span> <span class="attr">GUID</span><span class="kwrd">&gt;&lt;</span><span class="html">3</span><span class="kwrd">&gt;&lt;</span><span class="html">16</span><span class="kwrd">&gt;&lt;</span><span class="html">0x03E526344A6AEC4889CDCC6DC07A26DE</span><span class="kwrd">&gt;</span>
END_PROPERTY
BEGIN_PROPERTY
<span class="kwrd">&lt;</span><span class="html">0</span><span class="kwrd">&gt;&lt;</span><span class="html">Group</span> <span class="attr">Type</span><span class="kwrd">&gt;&lt;</span><span class="html">8</span><span class="kwrd">&gt;&lt;</span><span class="html">4</span><span class="kwrd">&gt;&lt;</span><span class="html">-2147483646</span><span class="kwrd">&gt;</span>
END_PROPERTY
AGENTINFO<span class="kwrd">&lt;</span><span class="html">SMS_AD_SECURITY_GROUP_DISCOVERY_AGENT</span><span class="kwrd">&gt;&lt;</span><span class="html">PTP</span><span class="kwrd">&gt;&lt;</span><span class="html">02</span>/<span class="attr">23</span>/<span class="attr">2013</span> <span class="attr">20:35:01</span><span class="kwrd">&gt;</span>
FEOF
  FV
</pre>
<style type="text/css">.csharpcode, .csharpcode pre
{
	font-size: small;
	color: black;
	font-family: consolas, "Courier New", courier, monospace;
	background-color: #ffffff;
	/*white-space: pre;*/
}
.csharpcode pre { margin: 0em; }
.csharpcode .rem { color: #008000; }
.csharpcode .kwrd { color: #0000ff; }
.csharpcode .str { color: #006080; }
.csharpcode .op { color: #0000c0; }
.csharpcode .preproc { color: #cc6633; }
.csharpcode .asp { background-color: #ffff00; }
.csharpcode .html { color: #800000; }
.csharpcode .attr { color: #ff0000; }
.csharpcode .alt 
{
	background-color: #f4f4f4;
	width: 100%;
	margin: 0em;
}
.csharpcode .lnum { color: #606060; }
</style>
</p>
<p>After this DDR is processed into the database the next (incremental) collection evaluation will pick up the new member of the Microsoft Office 2013 Security Group as a new member of the collection (PTP00000B). This can be followed in the <strong>colleval.log</strong> and looks like this:<a href="http://www.petervanderwoude.nl/wordpress/wp-content/uploads/colleval.jpg"><img title="colleval" 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="colleval" src="http://www.petervanderwoude.nl/wordpress/wp-content/uploads/colleval_thumb.jpg" width="712" height="107"></a></p>
<p>As my log files show, this whole process took less then a minute. So when a user is added right before the delta discovery starts it can be within a minute that the user is part of the collection. In the most extreme situation when a user is added right after the delta discovery had run and then, when the delta discovery finally runs again, it runs so long that the incremental collection update didn’t pick up the change yet, it takes up two full cycles of, in this sample, 5 minutes. So, also the long answer is between 1 till 10 minutes.</p>
<p><a class="a2a_dd a2a_target addtoany_share_save" href="http://www.addtoany.com/share_save#url=http%3A%2F%2Fwww.petervanderwoude.nl%2Fpost%2Fquickly-catch-active-directory-group-membership-changes-in-configmgr-2012%2F&amp;title=Quickly%20catch%20Active%20Directory%20Group%20Membership%20changes%20in%20ConfigMgr%202012" id="wpa2a_20"><img src="http://www.petervanderwoude.nl/wordpress/wp-content/plugins/add-to-any/share_save_171_16.png" width="171" height="16" alt="Share"/></a></p>]]></content:encoded>
			<wfw:commentRss>http://www.petervanderwoude.nl/post/quickly-catch-active-directory-group-membership-changes-in-configmgr-2012/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
	</channel>
</rss>
