<?xml version="1.0" encoding="utf-8"?>
<rss xmlns:atom="http://www.w3.org/2005/Atom" xmlns:sy="http://purl.org/rss/1.0/modules/syndication/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
  version="2.0">
  <channel>
    <title>Howard Hoy</title>
    <atom:link
      href="https://docs.microsoft.com/archive/blogs/hhoy/feed.xml"
      rel="self"
      type="application/rss+xml" />
    <link>https://docs.microsoft.com/archive/blogs/hhoy/feed.xml</link>
    <description>System Center 2012 Configuration Manager and other thoughts.</description>
    <lastBuildDate>Wed, 17 Apr 2019 03:31:12 GMT</lastBuildDate>
    <language>en-US</language>
    <sy:updatePeriod>hourly</sy:updatePeriod>
    <sy:updateFrequency>1</sy:updateFrequency>
    <item>
      <title>PowerShell – Maintenance Windows and ConfigMgr Console Extensions</title>
      <link>https://docs.microsoft.com/archive/blogs/hhoy/powershell-maintenance-windows-and-configmgr-console-extensions</link>
      <pubDate>Tue, 22 Jul 2014 17:54:58 GMT</pubDate>
      <dc:creator><![CDATA[Howard Hoy - MCS - Northwest District]]></dc:creator>
      <guid
        isPermaLink="false">https://blogs.technet.microsoft.com/hhoy/2014/07/22/powershell-maintenance-windows-and-configmgr-console-extensions/</guid>
      <description><![CDATA[It’s been awhile and I’ve been having way to much fun with ConfigMgr 2012. I’ve been working for the...]]></description>
      <content:encoded><![CDATA[<p>It’s been awhile and I’ve been having <strong>way to much fun</strong> with ConfigMgr 2012. I’ve been working for the last year on large deployment and would like to share some of the items that have made my day just a bit easier.</p> <p>This article assumes you are all familiar with the PowerShell cmdLets introduced in SP1 and forward. If not go <a href="http://technet.microsoft.com/en-us/library/jj821831(v=sc.20).aspx" target="_blank">here</a> and welcome to the fun.</p> <p>My current environment we have a lot of collections based upon dynamic AD group memberships. I do not&nbsp; have control of when devices are add, moved or deleted from AD. Some of these collections have very tight <a href="http://blogs.technet.com/b/server-cloud/archive/2012/03/28/business-hours-vs-maintenance-windows-with-system-center-2012-configuration-manager.aspx" target="_blank">Maintenance Windows</a> (MW) applied. To complicate matters worse we also have very strict patching deadlines for compliance that follow a schedule. After discovering that some of my devices were added to a collection due to an updated AD Group membership that had MW applied post compliance reporting day. Needless to say they were not compliant. </p> <p>I live for scripting especially if ConfigMgr is involved. I also enjoy PowerShell and Console Extensions. What an opportunity.</p> <p>Disclaimer – there are always more than one way to get information.&nbsp; This is my method.</p> <p>A MW can be viewed in the Console in&nbsp; the individual collection 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/91/47/metablogapi/image_29F84B86.png" original-url="http://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-91-47-metablogapi/image_5F00_29F84B86.png"><img title="image" style="border-left-width:0px;border-right-width:0px;border-bottom-width:0px;display:inline;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/91/47/metablogapi/image_thumb_0CAAA5CF.png" original-url="http://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-91-47-metablogapi/image_5F00_thumb_5F00_0CAAA5CF.png" width="377" height="455" /></a> </p> <p>Well that sucks for me as I have <strong>many </strong>Collections and some with MW windows. I would much prefer to click on a device in the Console and say “show me your MW windows”. So now goal has been defined. Let’s jump into GUID hell</p> <p><a href="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/91/47/metablogapi/image_72940961.png" original-url="http://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-91-47-metablogapi/image_5F00_72940961.png"><img title="image" style="border-left-width:0px;border-right-width:0px;border-bottom-width:0px;display:inline;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/91/47/metablogapi/image_thumb_6864FFA5.png" original-url="http://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-91-47-metablogapi/image_5F00_thumb_5F00_6864FFA5.png" width="483" height="298" /></a> </p> <p>Yup – it’s good.</p> <p><a href="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/91/47/metablogapi/image_5B8FCAE9.png" original-url="http://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-91-47-metablogapi/image_5F00_5B8FCAE9.png"><img title="image" style="border-left-width:0px;border-right-width:0px;border-bottom-width:0px;display:inline;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/91/47/metablogapi/image_thumb_09A1C8F7.png" original-url="http://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-91-47-metablogapi/image_5F00_thumb_5F00_09A1C8F7.png" width="712" height="210" /></a> </p> <p>I created a new .xml for my right click console action:</p> <p>&lt;ActionDescription Class=&quot;Group&quot; DisplayName=&quot;Show Me My Maintenance Windows&quot; MnemonicDisplayName=&quot;Show Me My Maintenance Windows&quot; Description=&quot;Show Me My Maintenance Windows&quot;&gt;&lt;ShowOn&gt;&lt;string&gt;DefaultHomeTab&lt;/string&gt;&lt;string&gt;ContextMenu&lt;/string&gt;&nbsp; &lt;/ShowOn&gt;&lt;ActionGroups&gt; &lt;ActionDescription Class=&quot;Executable&quot; DisplayName=&quot;Show Me My Maintenance Windows&quot; MnemonicDisplayName=&quot;Show Me My Maintenance Windows&quot; Description = &quot;Show Me My Maintenance Windows&quot; RibbonDisplayType=&quot;TextAndSmallImage&quot;&gt;&lt;ShowOn&gt;&lt;string&gt;ContextMenu&lt;/string&gt;&lt;string&gt;DefaultHomeTab&lt;/string&gt;&lt;/ShowOn&gt;<br />&lt;Executable&gt;&lt;FilePath&gt;showmw.bat&lt;/FilePath&gt;&lt;Parameters&gt;&quot;##SUB:Name##&quot;&lt;/Parameters&gt;&lt;/Executable&gt;&lt;/ActionDescription&gt;<br />&lt;/ActionGroups&gt;&lt;/ActionDescription&gt;  <p>This provides:  <p><a href="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/91/47/metablogapi/image_43498443.png" original-url="http://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-91-47-metablogapi/image_5F00_43498443.png"><img title="image" style="border-left-width:0px;border-right-width:0px;border-bottom-width:0px;display:inline;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/91/47/metablogapi/image_thumb_7543B57E.png" original-url="http://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-91-47-metablogapi/image_5F00_thumb_5F00_7543B57E.png" width="583" height="310" /></a>  <p>I use a batch file so I can make quick changes to avoid closing the console and refreshing the right click xml.  <p><a href="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/91/47/metablogapi/image_11E2C203.png" original-url="http://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-91-47-metablogapi/image_5F00_11E2C203.png"><img title="image" style="border-left-width:0px;border-right-width:0px;border-bottom-width:0px;display:inline;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/91/47/metablogapi/image_thumb_554D5416.png" original-url="http://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-91-47-metablogapi/image_5F00_thumb_5F00_554D5416.png" width="777" height="104" /></a>  <p></p> <p>And yup – this one does have a MW.</p> <p><a href="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/91/47/metablogapi/image_57203A8E.png" original-url="http://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-91-47-metablogapi/image_5F00_57203A8E.png"><img title="image" style="border-left-width:0px;border-right-width:0px;border-bottom-width:0px;display:inline;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/91/47/metablogapi/image_thumb_540DDC99.png" original-url="http://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-91-47-metablogapi/image_5F00_thumb_5F00_540DDC99.png" width="618" height="188" /></a> </p> <p>The Powershell script.</p> <div style="overflow:auto;font-size:10pt;border-top:black 1px solid;font-family:consolas,lucida console;border-right:black 1px solid;width:650px;border-bottom:black 1px solid;padding-bottom:5px;padding-top:5px;padding-left:5px;border-left:black 1px solid;padding-right:5px;"> <table cellspacing="0" cellpadding="5" border="0"> <tbody> <tr> <td valign="top"> <div style="font-size:10pt;font-family:consolas,lucida console;background:#cecece;padding-bottom:5px;padding-top:5px;padding-left:5px;padding-right:5px;">001<br />002<br />003<br />004<br />005<br />006<br />007<br />008<br />009<br />010<br />011<br />012<br />013<br />014<br />015<br />016<br />017<br />018<br />019<br />020<br />021<br />022<br />023<br />024<br />025<br />026<br />027<br />028<br />029<br />030<br />031<br />032<br />033<br />034<br />035<br />036<br />037<br />038<br />039<br />040<br />041<br />042<br />043<br />044<br />045<br />046<br />047<br />048<br />049<br />050<br />051<br />052<br />053<br />054<br />055<br />056<br />057<br />058<br />059<br />060<br />061<br />062<br />063<br />064<br />065<br />066<br />067<br />068<br />069<br />070<br />071<br />072<br />073<br />074<br />075<br />076<br />077<br />078<br />079<br />080<br />081<br />082<br />083<br />084<br />085<br /></div></td> <td valign="top"> <div style="font-size:10pt;font-family:consolas,lucida console;background:#fcfcfc;padding-bottom:5px;padding-top:5px;padding-left:5px;padding-right:5px;"><span style="color:#006400;"># Environment Settings #</span><br /><span style="color:#ff4500;">$CMSQLServer</span><span style="color:#000000;">&nbsp;</span><span style="color:#a9a9a9;">=</span><span style="color:#000000;">&nbsp;</span><span style="color:#8b0000;">&#39;your server FQDN&#39;</span><br /><span style="color:#ff4500;">$CMDatabase</span><span style="color:#000000;">&nbsp;</span><span style="color:#a9a9a9;">=</span><span style="color:#000000;">&nbsp;</span><span style="color:#8b0000;">&#39;CM_yoursitecode&#39;</span><br /><span style="color:#ff4500;">$ConnectionTimeout</span><span style="color:#000000;">&nbsp;</span><span style="color:#a9a9a9;">=</span><span style="color:#000000;">&nbsp;</span><span style="color:#800080;">30</span><br /><span style="color:#ff4500;">$QueryTimeout</span><span style="color:#000000;">&nbsp;</span><span style="color:#a9a9a9;">=</span><span style="color:#000000;">&nbsp;</span><span style="color:#800080;">120</span><br /><br /><br /><span style="color:#00008b;">function</span><span style="color:#000000;">&nbsp;</span><span style="color:#8a2be2;">GetServiceWindow</span><span style="color:#000000;">(</span><span style="color:#000000;">)</span><span style="color:#000000;">&nbsp;</span><span style="color:#000000;">{</span><br /><span style="color:#000000;">&nbsp;&nbsp;&nbsp; </span><span style="color:#a9a9a9;">[</span><span style="color:#add8e6;">CmdletBinding</span><span style="color:#000000;">(</span><span style="color:#000000;">)</span><span style="color:#a9a9a9;">]</span><br /><span style="color:#000000;">&nbsp;&nbsp;&nbsp; </span><span style="color:#00008b;">param</span><span style="color:#000000;">(</span><br /><span style="color:#000000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><span style="color:#008080;">[String]</span><span style="color:#ff4500;">$vName</span><span style="color:#000000;">&nbsp;</span><span style="color:#a9a9a9;">=</span><span style="color:#000000;">&nbsp;</span><span style="color:#8b0000;">&#39;&#39;</span><br /><span style="color:#000000;">&nbsp;&nbsp;&nbsp; </span><span style="color:#000000;">)</span><br /><br /><span style="color:#000000;">&nbsp;&nbsp;&nbsp; </span><span style="color:#008080;">[Array]</span><span style="color:#ff4500;">$SWDS</span><span style="color:#000000;">&nbsp;</span><span style="color:#a9a9a9;">=</span><span style="color:#000000;">&nbsp;</span><span style="color:#000000;">@(</span><span style="color:#000000;">)</span><br /><span style="color:#000000;">&nbsp;&nbsp;&nbsp; </span><span style="color:#008080;">[Array]</span><span style="color:#ff4500;">$ServiceWindows</span><span style="color:#000000;">&nbsp;</span><span style="color:#a9a9a9;">=</span><span style="color:#000000;">&nbsp;</span><span style="color:#000000;">@(</span><span style="color:#000000;">)</span><br /><span style="color:#000000;">&nbsp;&nbsp;&nbsp; </span><span style="color:#ff4500;">$strSql</span><span style="color:#000000;">&nbsp;</span><span style="color:#a9a9a9;">=</span><span style="color:#000000;">&nbsp;</span><span style="color:#8b0000;">&quot; <br />&nbsp;<br />&nbsp;&nbsp;&nbsp; ;WITH AllServiceWindows AS <br />(SELECT fcm.ResourceID <br />,c.Name AS Collection <br />,nsw.Duration <br />,nsw.NextServiceWindow <br />,ROW_NUMBER() OVER (PARTITION BY ResourceID ORDER BY nsw.NextServiceWindow) AS RowNumber <br />FROM vSMS_ServiceWindow AS sw <br />JOIN v_FullCollectionMembership AS fcm <br />ON sw.SiteID = fcm.CollectionID <br />JOIN v_Collection AS c <br />ON sw.SiteID = c.CollectionID <br />CROSS <br />APPLY dbo.SCCM_GetNextServiceWindow(sw.Schedules, sw.RecurrenceType) AS nsw <br />) <br />SELECT sys.Name0 AS [Computer] <br />, sys.Distinguished_Name0 AS [AD DN] <br />, asw.Collection AS [Collection] <br />, CONVERT(CHAR(5), DATEADD(MINUTE, asw.Duration, 0), 108) AS [Duration] <br />, CONVERT(CHAR(16), asw.NextServiceWindow, 120) AS [Next_Maintenance_Window] <br />, DATENAME(WEEKDAY, asw.NextServiceWindow) AS [Day_of_Week] <br />FROM v_R_System as sys <br />LEFT <br />JOIN AllServiceWindows AS asw <br />ON sys.ResourceID = asw.ResourceID <br />WHERE sys.Client0 = 1 <br />AND asw.RowNumber = 1 <br />And sys.Name0 = &#39;$vname&#39; <br />ORDER <br />BY asw.NextServiceWindow <br />, asw.Collection <br />, sys.Name0 <br />&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp; <br />&nbsp;<br />&nbsp;&nbsp;&nbsp; &quot;</span><br /><br /><span style="color:#000000;">&nbsp;&nbsp;&nbsp; </span><span style="color:#ff4500;">$Connection</span><span style="color:#000000;">&nbsp;</span><span style="color:#a9a9a9;">=</span><span style="color:#000000;">&nbsp;</span><span style="color:#0000ff;">New-Object</span><span style="color:#000000;">&nbsp;</span><span style="color:#8a2be2;">System.Data.SqlClient.SqlConnection</span><br /><span style="color:#000000;">&nbsp;&nbsp;&nbsp; </span><span style="color:#ff4500;">$ConnectionString</span><span style="color:#000000;">&nbsp;</span><span style="color:#a9a9a9;">=</span><span style="color:#000000;">&nbsp;</span><span style="color:#8b0000;">&quot;Server=$($CMSQLServer);Database=$($CMDatabase);Integrated Security=True;Connect Timeout=$($ConnectionTimeout)&quot;</span><br /><span style="color:#000000;">&nbsp;&nbsp;&nbsp; </span><span style="color:#ff4500;">$Connection</span><span style="color:#a9a9a9;">.</span><span style="color:#000000;">ConnectionString</span><span style="color:#000000;">&nbsp;</span><span style="color:#a9a9a9;">=</span><span style="color:#000000;">&nbsp;</span><span style="color:#ff4500;">$ConnectionString</span><br /><span style="color:#000000;">&nbsp;&nbsp;&nbsp; </span><span style="color:#ff4500;">$Connection</span><span style="color:#a9a9a9;">.</span><span style="color:#000000;">Open</span><span style="color:#000000;">(</span><span style="color:#000000;">)</span><br /><span style="color:#000000;">&nbsp;&nbsp;&nbsp; </span><span style="color:#ff4500;">$cmd</span><span style="color:#a9a9a9;">=</span><span style="color:#0000ff;">New-Object</span><span style="color:#000000;">&nbsp;</span><span style="color:#8a2be2;">System.Data.SqlClient.SqlCommand</span><span style="color:#000000;">(</span><span style="color:#ff4500;">$strSQL</span><span style="color:#a9a9a9;">,</span><span style="color:#ff4500;">$Connection</span><span style="color:#000000;">)</span><br /><span style="color:#000000;">&nbsp;&nbsp;&nbsp; </span><span style="color:#ff4500;">$cmd</span><span style="color:#a9a9a9;">.</span><span style="color:#000000;">CommandTimeout</span><span style="color:#a9a9a9;">=</span><span style="color:#ff4500;">$QueryTimeout</span><br /><span style="color:#000000;">&nbsp;&nbsp;&nbsp; </span><span style="color:#ff4500;">$DataSet</span><span style="color:#a9a9a9;">=</span><span style="color:#0000ff;">New-Object</span><span style="color:#000000;">&nbsp;</span><span style="color:#8a2be2;">System.Data.DataSet</span><br /><span style="color:#000000;">&nbsp;&nbsp;&nbsp; </span><span style="color:#ff4500;">$DataAdapter</span><span style="color:#a9a9a9;">=</span><span style="color:#0000ff;">New-Object</span><span style="color:#000000;">&nbsp;</span><span style="color:#8a2be2;">System.Data.SqlClient.SqlDataAdapter</span><span style="color:#000000;">(</span><span style="color:#ff4500;">$cmd</span><span style="color:#000000;">)</span><br /><span style="color:#000000;">&nbsp;&nbsp;&nbsp; </span><span style="color:#ff4500;">$Dataset</span><span style="color:#000000;">&nbsp;</span><span style="color:#a9a9a9;">=</span><span style="color:#000000;">&nbsp;</span><span style="color:#0000ff;">new-object</span><span style="color:#000000;">&nbsp;</span><span style="color:#8a2be2;">system.data.datatable</span><br /><span style="color:#000000;">&nbsp;&nbsp;&nbsp; </span><span style="color:#ff4500;">$DataAdapter</span><span style="color:#a9a9a9;">.</span><span style="color:#000000;">fill</span><span style="color:#000000;">(</span><span style="color:#ff4500;">$DataSet</span><span style="color:#000000;">)</span><span style="color:#000000;">&nbsp;</span><span style="color:#a9a9a9;">|</span><span style="color:#0000ff;">out-null</span><br /><span style="color:#000000;">&nbsp;&nbsp;&nbsp; </span><span style="color:#ff4500;">$Connection</span><span style="color:#a9a9a9;">.</span><span style="color:#000000;">Close</span><span style="color:#000000;">(</span><span style="color:#000000;">)</span><br /><span style="color:#000000;">&nbsp;&nbsp;&nbsp; </span><span style="color:#ff4500;">$ServiceWindows</span><span style="color:#000000;">&nbsp;</span><span style="color:#a9a9a9;">=</span><span style="color:#000000;">&nbsp;</span><span style="color:#000000;">@(</span><span style="color:#ff4500;">$DataSet</span><span style="color:#000000;">)</span><br /><br /><span style="color:#000000;">&nbsp;&nbsp;&nbsp; </span><span style="color:#00008b;">foreach</span><span style="color:#000000;">&nbsp;</span><span style="color:#000000;">(</span><span style="color:#ff4500;">$ServiceWindow</span><span style="color:#000000;">&nbsp;</span><span style="color:#00008b;">in</span><span style="color:#000000;">&nbsp;</span><span style="color:#ff4500;">$ServiceWindows</span><span style="color:#000000;">)</span><span style="color:#000000;">&nbsp;</span><span style="color:#000000;">{</span><br /><span style="color:#000000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><span style="color:#ff4500;">$Object</span><span style="color:#000000;">&nbsp;</span><span style="color:#a9a9a9;">=</span><span style="color:#000000;">&nbsp;</span><span style="color:#0000ff;">New-Object</span><span style="color:#000000;">&nbsp;</span><span style="color:#8a2be2;">PSObject</span><span style="color:#000000;">&nbsp;</span><span style="color:#000080;">-Property</span><span style="color:#000000;">&nbsp;</span><span style="color:#000000;">@{</span><span style="color:#000000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><br /><span style="color:#000000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><span style="color:#000000;">Name</span><span style="color:#000000;">&nbsp;</span><span style="color:#a9a9a9;">=</span><span style="color:#000000;"> $ServiceWindow.Name</span><br /><span style="color:#000000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><span style="color:#000000;">Collection</span><span style="color:#000000;">&nbsp;</span><span style="color:#a9a9a9;">= </span><span style="color:#006400;">$ServiceWindow.collection </span><br /><span style="color:#000000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><span style="color:#000000;">Duration</span><span style="color:#000000;">&nbsp;</span><span style="color:#a9a9a9;">=</span><span style="color:#000000;">&nbsp;</span><span style="color:#ff4500;">$ServiceWindow</span><span style="color:#a9a9a9;">.</span><span style="color:#000000;">duration</span><span style="color:#000000;">&nbsp;</span><br /><span style="color:#000000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><span style="color:#000000;">NMW</span><span style="color:#000000;">&nbsp;</span><span style="color:#a9a9a9;">=</span><span style="color:#000000;">&nbsp;</span><span style="color:#ff4500;">$ServiceWindow</span><span style="color:#a9a9a9;">.</span><span style="color:#000000;">next_maintenance_window</span><br /><span style="color:#000000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><span style="color:#000000;">TimeOfDay</span><span style="color:#000000;">&nbsp;</span><span style="color:#a9a9a9;">=</span><span style="color:#000000;">&nbsp;</span><span style="color:#ff4500;">$ServiceWindow</span><span style="color:#a9a9a9;">.</span><span style="color:#000000;">day_of_week</span><span style="color:#000000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><br /><span style="color:#000000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><span style="color:#000000;">}</span><span style="color:#006400;">&nbsp;</span><br /><span style="color:#000000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><span style="color:#ff4500;">$SWDS</span><span style="color:#000000;">&nbsp;</span><span style="color:#a9a9a9;">+=</span><span style="color:#000000;">&nbsp;</span><span style="color:#ff4500;">$Object</span><br /><span style="color:#000000;">&nbsp;&nbsp;&nbsp; </span><span style="color:#000000;">}</span><br /><br /><br /><span style="color:#000000;">&nbsp;&nbsp;&nbsp; </span><span style="color:#00008b;">return</span><span style="color:#000000;">&nbsp;</span><span style="color:#ff4500;">$SWDS</span><br /><span style="color:#000000;">}</span><br /><br /><span style="color:#ff4500;">$ServiceWindows</span><span style="color:#000000;">&nbsp;</span><span style="color:#a9a9a9;">=</span><span style="color:#000000;">&nbsp;</span><span style="color:#0000ff;">GetServiceWindow</span><span style="color:#000000;">(</span><span style="color:#ff4500;">$args</span><span style="color:#a9a9a9;">[</span><span style="color:#800080;">0</span><span style="color:#a9a9a9;">]</span><span style="color:#000000;">)</span><span style="color:#000000;">&nbsp;</span><span style="color:#a9a9a9;">|</span><span style="color:#000000;">&nbsp;</span><span style="color:#0000ff;">Out-GridView</span> </div></td></tr></tbody></table></div> <p>You can modify the script to remove the NetBIOS_name0 clause to find all devices if desired. This is just the start framework and the possibilities are endless to instant information with PowerShell and ConfigMgr.</p> <p>Until next time.</p></p></p></p></p></p>]]></content:encoded>
    </item>
    <item>
      <title>IP Range Boundary - Configuration Manager 2012</title>
      <link>https://docs.microsoft.com/archive/blogs/hhoy/ip-range-boundary-configuration-manager-2012</link>
      <pubDate>Fri, 01 Mar 2013 21:05:59 GMT</pubDate>
      <dc:creator><![CDATA[Howard Hoy - MCS - Northwest District]]></dc:creator>
      <guid
        isPermaLink="false">https://blogs.technet.microsoft.com/hhoy/2013/03/01/ip-range-boundary-configuration-manager-2012/</guid>
      <description><![CDATA[Please read regarding IP Ranges in Configuration Manager...]]></description>
      <content:encoded><![CDATA[<p>Please read regarding IP Ranges in Configuration Manager 2012.</p>
<p>&nbsp;</p>
<p><a href="http://blogs.technet.com/b/configmgrteam/archive/2013/03/01/when-not-to-use-ip-address-ranges-as-boundaries-in-configuration-manager.aspx">http://blogs.technet.com/b/configmgrteam/archive/2013/03/01/when-not-to-use-ip-address-ranges-as-boundaries-in-configuration-manager.aspx</a></p>
<p>&nbsp;</p>
<p>&nbsp;</p>]]></content:encoded>
    </item>
    <item>
      <title>How to query Configuration Manager 2012 XML Data with SQL - XQuery</title>
      <link>https://docs.microsoft.com/archive/blogs/hhoy/how-to-query-configuration-manager-2012-xml-data-with-sql-xquery</link>
      <pubDate>Thu, 19 Jul 2012 05:43:00 GMT</pubDate>
      <dc:creator><![CDATA[Howard Hoy - MCS - Northwest District]]></dc:creator>
      <guid
        isPermaLink="false">https://blogs.technet.microsoft.com/hhoy/2012/07/19/how-to-query-configuration-manager-2012-xml-data-with-sql-xquery/</guid>
      <description><![CDATA[Sorry, but I had to divert from my Application Model review to discuss XML data in the CM 2012...]]></description>
      <content:encoded><![CDATA[<p>Sorry, but I had to divert from my Application Model review to discuss XML data in the CM 2012 database. At some point you will start to look at the data and want to generate some custom reports. Perhaps it’s through Report Builder or some killer application / utility that you are working on.&nbsp; I thought I share <strong>some</strong> of my field experiences to save you time and frustration.</p> <p>Some views/tables in CM2012 will store data as XML. You can find out the data type by using the sp_help function. For example:</p> <p>sp_help v_configurationitems</p> <p><a href="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/91/47/metablogapi/0535.image_602C8CF5.png" original-url="http://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-91-47-metablogapi/0535.image_5F00_602C8CF5.png"><img style="background-image: none; border-right-width: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" 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/91/47/metablogapi/6646.image_thumb_51EE1405.png" original-url="http://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-91-47-metablogapi/6646.image_5F00_thumb_5F00_51EE1405.png" width="737" height="407"></a></p> <p>You can see that SDMPackageDigest is a data type of XML. I wonder what’s in there? HMM.. let’s go look.</p> <p>Looks familiar? My XML Notepad test package.</p> <p><a href="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/91/47/metablogapi/6330.image_7F6F33C8.png" original-url="http://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-91-47-metablogapi/6330.image_5F00_7F6F33C8.png"><img style="background-image: none; border-right-width: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" 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/91/47/metablogapi/0550.image_thumb_43436820.png" original-url="http://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-91-47-metablogapi/0550.image_5F00_thumb_5F00_43436820.png" width="802" height="406"></a></p> <p>From there you can generate any type of report necessary using Report Builder. This sample reports (shout out thanks to Lou Smathers for the report) shows all Application Deployment Type versions along with the Application Version. This was pulled with the following SQL Statement.</p><pre style="background-color: #ffffff; margin: 0em; width: 100%; font-family: consolas,'Courier New',courier,monospace; font-size: 10px">;<a style="color: #0000ff" href="http://search.microsoft.com/default.asp?so=RECCNT&amp;siteid=us%2Fdev&amp;p=1&amp;nq=NEW&amp;qu=WITH&amp;IntlSearch=&amp;boolean=PHRASE&amp;ig=01&amp;i=09&amp;i=99">WITH</a> XMLNAMESPACES ( <a style="color: #0000ff" href="http://search.microsoft.com/default.asp?so=RECCNT&amp;siteid=us%2Fdev&amp;p=1&amp;nq=NEW&amp;qu=DEFAULT&amp;IntlSearch=&amp;boolean=PHRASE&amp;ig=01&amp;i=09&amp;i=99">DEFAULT</a> '<span style="color: #8b0000">http://schemas.microsoft.com/SystemCenterConfigurationManager/2009/AppMgmtDigest</span>') 
</pre><pre style="background-color: #ffffff; margin: 0em; width: 100%; font-family: consolas,'Courier New',courier,monospace; font-size: 10px"><a style="color: #0000ff" href="http://search.microsoft.com/default.asp?so=RECCNT&amp;siteid=us%2Fdev&amp;p=1&amp;nq=NEW&amp;qu=select&amp;IntlSearch=&amp;boolean=PHRASE&amp;ig=01&amp;i=09&amp;i=99">select</a>  App.DisplayName, App.SDMPackageDigest.<a style="color: #0000ff" href="http://search.microsoft.com/default.asp?so=RECCNT&amp;siteid=us%2Fdev&amp;p=1&amp;nq=NEW&amp;qu=value&amp;IntlSearch=&amp;boolean=PHRASE&amp;ig=01&amp;i=09&amp;i=99">value</a>('<span style="color: #8b0000">(/AppMgmtDigest/Application/DeploymentTypes/DeploymentType/@Version)[1]</span>', '<span style="color: #8b0000">nvarchar(10)</span>') [Version]   
</pre><pre style="background-color: #ffffff; margin: 0em; width: 100%; font-family: consolas,'Courier New',courier,monospace; font-size: 10px"></pre><pre style="background-color: #ffffff; margin: 0em; width: 100%; font-family: consolas,'Courier New',courier,monospace; font-size: 10px">,sdmpackageversion 
</pre><pre style="background-color: #ffffff; margin: 0em; width: 100%; font-family: consolas,'Courier New',courier,monospace; font-size: 10px"><a style="color: #0000ff" href="http://search.microsoft.com/default.asp?so=RECCNT&amp;siteid=us%2Fdev&amp;p=1&amp;nq=NEW&amp;qu=from&amp;IntlSearch=&amp;boolean=PHRASE&amp;ig=01&amp;i=09&amp;i=99">from</a> fn_ListApplicationCIs(1033) App 
</pre><pre style="background-color: #ffffff; margin: 0em; width: 100%; font-family: consolas,'Courier New',courier,monospace; font-size: 10px"><a style="color: #0000ff" href="http://search.microsoft.com/default.asp?so=RECCNT&amp;siteid=us%2Fdev&amp;p=1&amp;nq=NEW&amp;qu=where&amp;IntlSearch=&amp;boolean=PHRASE&amp;ig=01&amp;i=09&amp;i=99">where</a> sdmpackageversion =  (<a style="color: #0000ff" href="http://search.microsoft.com/default.asp?so=RECCNT&amp;siteid=us%2Fdev&amp;p=1&amp;nq=NEW&amp;qu=SELECT&amp;IntlSearch=&amp;boolean=PHRASE&amp;ig=01&amp;i=09&amp;i=99">SELECT</a> <a style="color: #0000ff" href="http://search.microsoft.com/default.asp?so=RECCNT&amp;siteid=us%2Fdev&amp;p=1&amp;nq=NEW&amp;qu=MAX&amp;IntlSearch=&amp;boolean=PHRASE&amp;ig=01&amp;i=09&amp;i=99">MAX</a> (sdmpackageversion) 
</pre><pre style="background-color: #ffffff; margin: 0em; width: 100%; font-family: consolas,'Courier New',courier,monospace; font-size: 10px">                            <a style="color: #0000ff" href="http://search.microsoft.com/default.asp?so=RECCNT&amp;siteid=us%2Fdev&amp;p=1&amp;nq=NEW&amp;qu=FROM&amp;IntlSearch=&amp;boolean=PHRASE&amp;ig=01&amp;i=09&amp;i=99">FROM</a> fn_ListApplicationCIs(1033)App2 
</pre><pre style="background-color: #ffffff; margin: 0em; width: 100%; font-family: consolas,'Courier New',courier,monospace; font-size: 10px">                           <a style="color: #0000ff" href="http://search.microsoft.com/default.asp?so=RECCNT&amp;siteid=us%2Fdev&amp;p=1&amp;nq=NEW&amp;qu=WHERE&amp;IntlSearch=&amp;boolean=PHRASE&amp;ig=01&amp;i=09&amp;i=99">WHERE</a> app.modelid = App2.modelid) 
</pre><pre style="background-color: #ffffff; margin: 0em; width: 100%; font-family: consolas,'Courier New',courier,monospace; font-size: 10px"><a style="color: #0000ff" href="http://search.microsoft.com/default.asp?so=RECCNT&amp;siteid=us%2Fdev&amp;p=1&amp;nq=NEW&amp;qu=order&amp;IntlSearch=&amp;boolean=PHRASE&amp;ig=01&amp;i=09&amp;i=99">order</a> <a style="color: #0000ff" href="http://search.microsoft.com/default.asp?so=RECCNT&amp;siteid=us%2Fdev&amp;p=1&amp;nq=NEW&amp;qu=by&amp;IntlSearch=&amp;boolean=PHRASE&amp;ig=01&amp;i=09&amp;i=99">by</a> DisplayName
</pre>
<p><span style="font-family: courier new" face="Courier New"></span><a href="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/91/47/metablogapi/0042.DepType_70C487E3.jpg" original-url="http://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-91-47-metablogapi/0042.DepType_5F00_70C487E3.jpg"><img style="background-image: none; border-right-width: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="DepType" border="0" alt="DepType" src="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/91/47/metablogapi/7206.DepType_thumb_6F7FEF04.jpg" original-url="http://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-91-47-metablogapi/7206.DepType_5F00_thumb_5F00_6F7FEF04.jpg" width="719" height="742"></a></p>
<p>Now for the IMPORTANT PAY ATTENTION information.</p>
<p>1. All Syntax is <strong>CASE</strong> and <strong>Whitespace Sensitive</strong>.&nbsp; Review <a href="http://msdn.microsoft.com/en-us/library/ms189075" target="_blank">Here</a>.</p>
<p>Example:</p>
<p><a href="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/91/47/metablogapi/8880.image_282A9912.png" original-url="http://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-91-47-metablogapi/8880.image_5F00_282A9912.png"><img style="background-image: none; border-right-width: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" 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/91/47/metablogapi/5756.image_thumb_15E1D250.png" original-url="http://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-91-47-metablogapi/5756.image_5F00_thumb_5F00_15E1D250.png" width="659" height="247"></a></p>
<p>This will <strong>not work</strong> and return NULL</p>
<p><a href="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/91/47/metablogapi/7888.image_553F85E0.png" original-url="http://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-91-47-metablogapi/7888.image_5F00_553F85E0.png"><img style="background-image: none; border-right-width: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" 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/91/47/metablogapi/4657.image_thumb_42F6BF1E.png" original-url="http://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-91-47-metablogapi/4657.image_5F00_thumb_5F00_42F6BF1E.png" width="868" height="317"></a></p>
<p>Case must Match. <strong>Title</strong></p>
<p>Here is the correct SQL</p>
<p>&nbsp;</p><pre style="background-color: #ffffff; margin: 0em; width: 100%; font-family: consolas,'Courier New',courier,monospace; font-size: 10px">;<a style="color: #0000ff" href="http://search.microsoft.com/default.asp?so=RECCNT&amp;siteid=us%2Fdev&amp;p=1&amp;nq=NEW&amp;qu=WITH&amp;IntlSearch=&amp;boolean=PHRASE&amp;ig=01&amp;i=09&amp;i=99">WITH</a> XMLNAMESPACES ( <a style="color: #0000ff" href="http://search.microsoft.com/default.asp?so=RECCNT&amp;siteid=us%2Fdev&amp;p=1&amp;nq=NEW&amp;qu=DEFAULT&amp;IntlSearch=&amp;boolean=PHRASE&amp;ig=01&amp;i=09&amp;i=99">DEFAULT</a> '<span style="color: #8b0000">http://schemas.microsoft.com/SystemCenterConfigurationManager/2009/AppMgmtDigest</span>' )
</pre><pre style="background-color: #ffffff; margin: 0em; width: 100%; font-family: consolas,'Courier New',courier,monospace; font-size: 10px"><a style="color: #0000ff" href="http://search.microsoft.com/default.asp?so=RECCNT&amp;siteid=us%2Fdev&amp;p=1&amp;nq=NEW&amp;qu=select&amp;IntlSearch=&amp;boolean=PHRASE&amp;ig=01&amp;i=09&amp;i=99">select</a> SDMPackageDigest.<a style="color: #0000ff" href="http://search.microsoft.com/default.asp?so=RECCNT&amp;siteid=us%2Fdev&amp;p=1&amp;nq=NEW&amp;qu=value&amp;IntlSearch=&amp;boolean=PHRASE&amp;ig=01&amp;i=09&amp;i=99">value</a>('<span style="color: #8b0000">(/AppMgmtDigest/DeploymentType/Title)[1]</span>', '<span style="color: #8b0000">nvarchar(MAX)</span>') [Title] 
</pre><pre style="background-color: #ffffff; margin: 0em; width: 100%; font-family: consolas,'Courier New',courier,monospace; font-size: 10px"> <a style="color: #0000ff" href="http://search.microsoft.com/default.asp?so=RECCNT&amp;siteid=us%2Fdev&amp;p=1&amp;nq=NEW&amp;qu=from&amp;IntlSearch=&amp;boolean=PHRASE&amp;ig=01&amp;i=09&amp;i=99">from</a> v_ConfigurationItems
</pre><pre style="background-color: #ffffff; margin: 0em; width: 100%; font-family: consolas,'Courier New',courier,monospace; font-size: 10px"><a style="color: #0000ff" href="http://search.microsoft.com/default.asp?so=RECCNT&amp;siteid=us%2Fdev&amp;p=1&amp;nq=NEW&amp;qu=where&amp;IntlSearch=&amp;boolean=PHRASE&amp;ig=01&amp;i=09&amp;i=99">where</a> CIType_ID = 21</pre>
<p><a href="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/91/47/metablogapi/2526.image_428A8C29.png" original-url="http://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-91-47-metablogapi/2526.image_5F00_428A8C29.png"><img style="background-image: none; border-right-width: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" 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/91/47/metablogapi/5238.image_thumb_1B5042F4.png" original-url="http://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-91-47-metablogapi/5238.image_5F00_thumb_5F00_1B5042F4.png" width="532" height="266"></a></p>
<p>With xQuery and following the above syntax you can retrieve the data stored in the xml. For attributes you need to change like as follows:</p><pre style="background-color: #ffffff; margin: 0em; width: 100%; font-family: consolas,'Courier New',courier,monospace; font-size: 10px"><a style="color: #0000ff" href="http://search.microsoft.com/default.asp?so=RECCNT&amp;siteid=us%2Fdev&amp;p=1&amp;nq=NEW&amp;qu=select&amp;IntlSearch=&amp;boolean=PHRASE&amp;ig=01&amp;i=09&amp;i=99">select</a> SDMPackageDigest.<a style="color: #0000ff" href="http://search.microsoft.com/default.asp?so=RECCNT&amp;siteid=us%2Fdev&amp;p=1&amp;nq=NEW&amp;qu=value&amp;IntlSearch=&amp;boolean=PHRASE&amp;ig=01&amp;i=09&amp;i=99">value</a>('<span style="color: #8b0000">(/AppMgmtDigest/DeploymentType/Title/@ResourceId)[1]</span>', '<span style="color: #8b0000">nvarchar(MAX)</span>') [ResourceID]</pre>
<p>&nbsp;</p>
<p><a href="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/91/47/metablogapi/0042.image_01E83FBA.png" original-url="http://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-91-47-metablogapi/0042.image_5F00_01E83FBA.png"><img style="background-image: none; border-right-width: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" 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/91/47/metablogapi/7206.image_thumb_41B2263F.png" original-url="http://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-91-47-metablogapi/7206.image_5F00_thumb_5F00_41B2263F.png" width="465" height="348"></a></p>
<p>Here is an example where I pulled information for Applications from the v_configurationItems, XML Column, SDMPackageDigest. Note that you can use the Where and AND with the xQuery as 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/91/47/metablogapi/1018.image_61610007.png" original-url="http://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-91-47-metablogapi/1018.image_5F00_61610007.png"><img style="background-image: none; border-right-width: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" 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/91/47/metablogapi/1512.image_thumb_051A27A2.png" original-url="http://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-91-47-metablogapi/1512.image_5F00_thumb_5F00_051A27A2.png" width="885" height="622"></a></p>
<p>xQuery is so much fun! I hope this post has been useful. Now back to the Application Model in Configuration Manager 2012.</p>
<p>For those of you are curious, this is the first sql query I used to extract data.</p>
<p><a href="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/91/47/metablogapi/3582.image_30EA7B91.png" original-url="http://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-91-47-metablogapi/3582.image_5F00_30EA7B91.png"><img style="background-image: none; border-right-width: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" 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/91/47/metablogapi/4336.image_thumb_7E86A811.png" original-url="http://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-91-47-metablogapi/4336.image_5F00_thumb_5F00_7E86A811.png" width="681" height="328"></a></p>
<p>Yes, my SQL Server did call me up and cry just a little bit then asked me to look at xQuery.</p>
<p>Enjoy xQuery!</p>]]></content:encoded>
    </item>
    <item>
      <title>Configuration Manager 2012–Application Model Part 2–Requirements</title>
      <link>https://docs.microsoft.com/archive/blogs/hhoy/configuration-manager-2012application-model-part-2requirements</link>
      <pubDate>Tue, 17 Jul 2012 14:26:59 GMT</pubDate>
      <dc:creator><![CDATA[Howard Hoy - MCS - Northwest District]]></dc:creator>
      <guid
        isPermaLink="false">https://blogs.technet.microsoft.com/hhoy/2012/07/17/configuration-manager-2012application-model-part-2requirements/</guid>
      <description><![CDATA[This is Part 2 of my review of the new Application model in Configuration Manager 2012. In Part 1, I...]]></description>
      <content:encoded><![CDATA[<p>This is <strong>Part 2</strong> of my review of the new Application model in Configuration Manager 2012. In Part 1, I covered <a href="http://blogs.technet.com/b/hhoy/archive/2012/06/09/configuration-manager-2012-application-model-part-1.aspx" target="_blank">Detection</a>, what it is and the options used to detect the presence of an application.</p>  <p>Part 2 will cover <strong>Requirements</strong>.</p>  <p>This is a big area to cover!</p>  <p>What is a Global Condition?</p>  <p>A Global Condition is way to logically group business or technical requirements into a single assigned requirements for an Application.&#160; There are 10 areas to explore:</p>  <ol>   <li>Active Directory Query </li>    <li>Assembly </li>    <li>File System </li>    <li>IIS MetaBase </li>    <li>Registry Key </li>    <li>Registry Value </li>    <li>Script </li>    <li>SQL Query </li>    <li>WQL Query </li>    <li>XPath Query </li> </ol>  <p>1. Active Directory</p>  <p>This uses standard LDAP or GC query syntax.&#160; Nothing special here and if you know LDAP you can quickly use this to group Business areas to their OU’s, etc.</p>  <p>2. Assembly – Checks in the GAC for the assembly. </p>  <p>3. File System – Searches the file system. Take special note here that you can&#160; use System variable including the %UserProfile%. If you do use %UserProfile% it will<strong> search all</strong> profiles. So be careful what you are identifying as a requirement. See Script option if you need to be more specific. Sorry – no UNC support here.</p>  <p>4. IIS MetaBase – You can check in the IIS MetaBase for a particular setting. Pretty self-explanatory.</p>  <p>5. Registry Key – Can check for a KEY – Both 32 and 64 bit. </p>  <p>6. Registry Value&#160; - Can look for a value. </p>  <p>7. Script – Has to be my favorite option. Here you can write in Powershell, VBScript or JScript. With scripts you can be as complex as you want. Big happy dance that you can also check to have the script <strong>run as the user</strong>.</p>  <p>8. SQL Query – Wow… second favorite option. SQL Query against the default instance – saves me the time from writing it in the Script option. However, take note if you are clustered. As soon as I find time, I ‘ll dedicate a few hours to discuss installation, operations and troubleshooting Configuration Manager 2012 on a SQL Cluster. By the way, have you seen time? I’ve been looking but can’t seem to find it.</p>  <p>9. WQL – Query WMI using this option. Excellent addition.</p>  <p>10. XPATH – Hmm. I’m sure this can be useful. Query XML.</p>  <p>Using the Global Conditions is really “big picture thinking” when it comes to deployment of Applications in an Enterprise environment.&#160; Best to use this as a way to logically group like requirements and do the work only once.</p>  <p>Besides the ability to create your own, Configuration Manager 20112 includes 16 pre defined default Global Conditions for you to use. </p>  <p>They are as follows:</p>  <ol>   <li><strong>Active Directory Site </strong></li>    <li><strong>Available internal storage </strong></li>    <li><strong>Configuration Manager site </strong></li>    <li><strong>CPU Speed </strong></li>    <li><strong>Device type </strong></li>    <li><strong>Disk Space </strong></li>    <li><strong>Input Type </strong></li>    <li><strong>Number of processors </strong></li>    <li><strong>Operating system Mobile </strong></li>    <li><strong>Operating system Windows </strong></li>    <li><strong>Operating system language mobile </strong></li>    <li><strong>Operating system language Windows </strong></li>    <li><strong>Organization unit (OU) </strong></li>    <li><strong>Primary device </strong></li>    <li><strong>Screen resolution </strong></li>    <li><strong>Total physical memory</strong> </li> </ol>  <p>Global Conditions <strong>return values</strong> are mapped as data types. For example, Boolean,&#160; String, Integer, etc.</p>  <p>Now onto requirements. </p>  <p>In each Deployment Type you can set Requirements that will be used to evaluate if the Deployment Type applies. </p>  <p>Note that these requirements <strong>by default</strong> are re-evaluated every 7 days. You can increase this setting as necessary. (client setting - Schedule re-evaluation for deployments)</p>  <p>When you start the “Create Requirement” you have three options</p>  <ol>   <li>Custom </li>    <li>Device </li>    <li>User </li> </ol>  <p><a href="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/91/47/metablogapi/1667.image_04DC00B8.png" original-url="http://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-91-47-metablogapi/1667.image_5F00_04DC00B8.png"><img style="background-image: none; border-right-width: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" 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/91/47/metablogapi/5875.image_thumb_325D207B.png" original-url="http://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-91-47-metablogapi/5875.image_5F00_thumb_5F00_325D207B.png" width="297" height="168" /></a></p>  <p>1. Custom</p>  <p>This allows you to pick from a previously created Global Condition or create a new one.</p>  <p>2. Device </p>  <p>3. User</p>  <p>As an example for this review, I created a new Application XML – Notepad. I set the CPU requirement to 100 – something my test box certainly does not 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/91/47/metablogapi/6038.image_763154D2.png" original-url="http://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-91-47-metablogapi/6038.image_5F00_763154D2.png"><img style="background-image: none; border-right-width: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" 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/91/47/metablogapi/2248.image_thumb_0AB6A451.png" original-url="http://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-91-47-metablogapi/2248.image_5F00_thumb_5F00_0AB6A451.png" width="605" height="249" /></a></p>  <p>&#160;</p>  <p>After deploying and refreshing my policies,&#160; the Client logs files, AppDiscovery.log will show that this Deployment Type is not applicable for my client. This is due to the failure of # of processer in my requirements.</p>  <p><a href="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/91/47/metablogapi/3731.image_42F51B69.png" original-url="http://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-91-47-metablogapi/3731.image_5F00_42F51B69.png"><img style="background-image: none; border-right-width: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" 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/91/47/metablogapi/4885.image_thumb_34B6A279.png" original-url="http://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-91-47-metablogapi/4885.image_5F00_thumb_5F00_34B6A279.png" width="657" height="69" /></a></p>  <p>For fun (I’m strange huh), I thought it might be possible to use the Script option to run pre-distribution tasks. For example, deleted old files, etc prior to an MSI installation. While fun, that’s <strong>not a good idea</strong> as it will run on everybody.</p>  <p>In the following example, I created a custom condition “islegal”. </p>  <p><a href="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/91/47/metablogapi/2335.image_1B4E9F3F.png" original-url="http://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-91-47-metablogapi/2335.image_5F00_1B4E9F3F.png"><img style="background-image: none; border-bottom: 0px; border-left: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top: 0px; border-right: 0px; padding-top: 0px" 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/91/47/metablogapi/4370.image_thumb_2FD3EEBD.png" original-url="http://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-91-47-metablogapi/4370.image_5F00_thumb_5F00_2FD3EEBD.png" width="606" height="556" /></a></p>  <p>and added it to my example as such:</p>  <p>Now I can use this to determine if my DT targets are part of my legal team.</p>  <p><a href="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/91/47/metablogapi/4885.image_28487F50.png" original-url="http://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-91-47-metablogapi/4885.image_5F00_28487F50.png"><img style="background-image: none; border-bottom: 0px; border-left: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top: 0px; border-right: 0px; padding-top: 0px" 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/91/47/metablogapi/3225.image_thumb_0EE07C16.png" original-url="http://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-91-47-metablogapi/3225.image_5F00_thumb_5F00_0EE07C16.png" width="614" height="439" /></a></p>  <p>There are many combinations of rules that you can create. Each type and combination will have specific results.</p>  <p>Here this might help clarify it for you:</p>  <p><a href="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/91/47/metablogapi/4863.image_6E593C63.png" original-url="http://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-91-47-metablogapi/4863.image_5F00_6E593C63.png"><img style="background-image: none; border-bottom: 0px; border-left: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top: 0px; border-right: 0px; padding-top: 0px" 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/91/47/metablogapi/2335.image_thumb_31C13DC6.png" original-url="http://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-91-47-metablogapi/2335.image_5F00_thumb_5F00_31C13DC6.png" width="885" height="464" /></a></p>  <p>This will come in handy when I start talking about thread surfing; but that’s much later when I find time.</p>  <p>Up Next Part 3. Dependency</p>]]></content:encoded>
    </item>
    <item>
      <title>Configuration Manager 2012–Application Model Part 1</title>
      <link>https://docs.microsoft.com/archive/blogs/hhoy/configuration-manager-2012application-model-part-1</link>
      <pubDate>Sat, 09 Jun 2012 09:31:00 GMT</pubDate>
      <dc:creator><![CDATA[Howard Hoy - MCS - Northwest District]]></dc:creator>
      <guid
        isPermaLink="false">https://blogs.technet.microsoft.com/hhoy/2012/06/09/configuration-manager-2012application-model-part-1/</guid>
      <description><![CDATA[Dear Application Model,
Ever since I laid eyes on you I have been blown away thinking of the all...]]></description>
      <content:encoded><![CDATA[<p>Dear Application Model,</p>
<p>Ever since I laid eyes on you I have been blown away thinking of the all possibilities that you will bring.&nbsp; Sometimes I wake up at night with nightmares that this is all just but a dream. Pinch me am I awake! You wouldn&rsquo;t believe the things that I&rsquo;ve been through over the last few years. Now don&rsquo;t get me wrong, the SMS platform has provided a best of class infrastructure for my master System Admins to use. In fact they are quite creative and have done things that are of epic proportions, such as delivering to my peers a flawless upgrade of Office 2010 with 20 language packs across networks that I am sure were 50% shoestring. I can&rsquo;t wait for them to discover you. Are you ready?</p>
<p>This brings me back to my first memory of you. When you first deployed an application using the new Application Model in Configuration Manager 2012 the force was strong in my WMI layers of goodness.&nbsp; Without much effort was I able to apply <strong>state management</strong> to the application you delivered. I immediately told the nearest machine about the wonders I&rsquo;ve discovered. At first they didn&rsquo;t grasp it. I created the following diagram to help in my discussions:</p>
<p><a href="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/91/47/metablogapi/8473.image_637981DC.png" original-url="http://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-91-47-metablogapi/8473.image_5F00_637981DC.png"><img style="background-image: none; padding-left: 0px; padding-right: 0px; display: inline; padding-top: 0px; border: 0px;" 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/91/47/metablogapi/2117.image_thumb_62A11BF2.png" original-url="http://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-91-47-metablogapi/2117.image_5F00_thumb_5F00_62A11BF2.png" width="837" height="518" /></a></p>
<p>Before we discuss this in detail you should review the Application Management of Configuration Manager 2012 located here <a href="http://technet.microsoft.com/en-us/library/gg682125.aspx" target="_blank">view</a>.</p>
<p>Forever Yours,</p>
<p><br />Windows Operating System</p>
<hr />
<p><strong>Now</strong> on a more serious note I&rsquo;d like to review the areas of Detection, Requirements, Supersedence and Dependency of the Application Model which <strong>I </strong>find to be so much fun.</p>
<p><strong>In this Part 1,</strong> I will focus on the <strong>Detection</strong> section.</p>
<p>I summed up Detection as &ldquo;Things that tell me I exists&rdquo;. It is the area in which the new application model uses to discover if a targeted Deployment Type is present.</p>
<p><a href="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/91/47/metablogapi/7206.image_4219DC40.png" original-url="http://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-91-47-metablogapi/7206.image_5F00_4219DC40.png"><img style="background-image: none; padding-left: 0px; padding-right: 0px; display: inline; padding-top: 0px; border: 0px;" 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/91/47/metablogapi/0447.image_thumb_48CCE5C3.png" original-url="http://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-91-47-metablogapi/0447.image_5F00_thumb_5F00_48CCE5C3.png" width="287" height="352" /></a></p>
<p>There are <strong>5</strong> ways to determine this:</p>
<ol>
<li>MSI Product Code</li>
<li>File</li>
<li>Folder</li>
<li>Registry</li>
<li>Custom Script</li>
</ol>
<p>Note: Detection runs after a Application Deployment Evaluation policy refresh</p>
<p><strong>#1</strong> <strong>MSI Product Code</strong>&nbsp; - is pretty self explanatory, find the MSI product code and if it exists then it is present. Key here is getting the MSI product code. Thankfully when you create an new application it will detect and automatically provide this for you and generate a Deployment Type.</p>
<p><a href="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/91/47/metablogapi/0044.image_73A549D5.png" original-url="http://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-91-47-metablogapi/0044.image_5F00_73A549D5.png"><img style="background-image: none; padding-left: 0px; padding-right: 0px; display: inline; padding-top: 0px; border: 0px;" 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/91/47/metablogapi/7384.image_thumb_21266999.png" original-url="http://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-91-47-metablogapi/7384.image_5F00_thumb_5F00_21266999.png" width="747" height="409" /></a></p>
<p><strong>#2&nbsp; File</strong> - is based upon a file (yes it that simple):</p>
<p><a href="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/91/47/metablogapi/0458.image_322A977C.png" original-url="http://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-91-47-metablogapi/0458.image_5F00_322A977C.png"><img style="background-image: none; padding-left: 0px; padding-right: 0px; display: inline; padding-top: 0px; border: 0px;" 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/91/47/metablogapi/1425.image_thumb_6AD54189.png" original-url="http://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-91-47-metablogapi/1425.image_5F00_thumb_5F00_6AD54189.png" width="572" height="451" /></a></p>
<p>There are additional options in this section to either choose to have just the file or a rule to check for <strong>Date Modified</strong>, <strong>Date Created</strong>, <strong>Version</strong> or <strong>Size (in Bytes)</strong></p>
<p><strong>#3 is Folder</strong> and is very similar to the file item.</p>
<p><a href="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/91/47/metablogapi/2570.image_0A17E85D.png" original-url="http://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-91-47-metablogapi/2570.image_5F00_0A17E85D.png"><img style="background-image: none; padding-left: 0px; padding-right: 0px; display: inline; padding-top: 0px; border: 0px;" 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/91/47/metablogapi/3755.image_thumb_70AFE522.png" original-url="http://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-91-47-metablogapi/3755.image_5F00_thumb_5F00_70AFE522.png" width="592" height="381" /></a></p>
<p>Note that the options change you now have only Date Modified and Date Created:</p>
<p><strong>#4 is the Registry</strong>:</p>
<p><a href="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/91/47/metablogapi/1425.image_1711C86E.png" original-url="http://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-91-47-metablogapi/1425.image_5F00_1711C86E.png"><img style="background-image: none; padding-left: 0px; padding-right: 0px; display: inline; padding-top: 0px; border: 0px;" 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/91/47/metablogapi/5226.image_thumb_4FBC727B.png" original-url="http://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-91-47-metablogapi/5226.image_5F00_thumb_5F00_4FBC727B.png" width="587" height="575" /></a></p>
<p>You can browse to a machine and select the appropriate key OR you can manually enter the information. Additional options are available. (equal, not equal, etc)</p>
<p><em>Note:</em></p>
<p><em>#1 through #4 can be joined together with And / Or for detection. If you select the next option #5, script, you lose the above and will have to move them to your script if desired.</em></p>
<p><strong>#5 is scripting.</strong> This is where the fun can really begin for those applications that have complicated installations. Wait, we never see those right?</p>
<p><a href="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/91/47/metablogapi/3247.image_761E55C6.png" original-url="http://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-91-47-metablogapi/3247.image_5F00_761E55C6.png"><img style="background-image: none; padding-left: 0px; padding-right: 0px; display: inline; padding-top: 0px; border: 0px;" 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/91/47/metablogapi/5807.image_thumb_15CD2F8F.png" original-url="http://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-91-47-metablogapi/5807.image_5F00_thumb_5F00_15CD2F8F.png" width="586" height="315" /></a></p>
<p>Script options are PowerShell, VBScript and JScript.</p>
<p>All of these Detection options can be found in the Deployment Type under the Application. There can multiple deployment types per application.</p>
<p>In the next parts I&rsquo;ll cover Requirements, Supersedence, Dependency, Examples/Expected Behavior and end with Troubleshooting (thread chasing).</p>
<p>Go forth and deploy!</p>]]></content:encoded>
    </item>
    <item>
      <title>Configuration Manager 2012 Offline Documentation</title>
      <link>https://docs.microsoft.com/archive/blogs/hhoy/configuration-manager-2012-offline-documentation</link>
      <pubDate>Tue, 05 Jun 2012 13:37:45 GMT</pubDate>
      <dc:creator><![CDATA[Howard Hoy - MCS - Northwest District]]></dc:creator>
      <guid
        isPermaLink="false">https://blogs.technet.microsoft.com/hhoy/2012/06/05/configuration-manager-2012-offline-documentation/</guid>
      <description><![CDATA[Technical Documentation Download for System Center 2012 Configuration Manager  Now you can download...]]></description>
      <content:encoded><![CDATA[<p>Technical Documentation Download for System Center 2012 Configuration Manager</p>  <p>Now you can download the Configuration Manager 2012 documentation in one document. This is very helpful when searching for 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/91/47/metablogapi/1362.image_28484610.png" original-url="http://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-91-47-metablogapi/1362.image_5F00_28484610.png"><img style="background-image: none; border-bottom: 0px; border-left: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top: 0px; border-right: 0px; padding-top: 0px" 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/91/47/metablogapi/7242.image_thumb_2E22E9A9.png" original-url="http://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-91-47-metablogapi/7242.image_5F00_thumb_5F00_2E22E9A9.png" width="196" height="96" /></a></p>  <p><a title="http://www.microsoft.com/en-us/download/details.aspx?id=29901" href="http://www.microsoft.com/en-us/download/details.aspx?id=29901">http://www.microsoft.com/en-us/download/details.aspx?id=29901</a></p>]]></content:encoded>
    </item>
    <item>
      <title>An adventure in the sccmcontentlib - single instance store</title>
      <link>https://docs.microsoft.com/archive/blogs/hhoy/an-adventure-in-the-sccmcontentlib-single-instance-store</link>
      <pubDate>Wed, 30 May 2012 22:43:39 GMT</pubDate>
      <dc:creator><![CDATA[Howard Hoy - MCS - Northwest District]]></dc:creator>
      <guid
        isPermaLink="false">https://blogs.technet.microsoft.com/hhoy/2012/05/30/an-adventure-in-the-sccmcontentlib-single-instance-store/</guid>
      <description><![CDATA[Sometimes I have nightmares which are work related. One such nightmare was about Configuration...]]></description>
      <content:encoded><![CDATA[<p><span style="font-size: small;" size="3"><span style="font-family: Calibri;" face="Calibri">Sometimes I have nightmares which are work related. One such nightmare was about Configuration Manager 2012 and it prompted me to write this blog post. In my dream, the telephone rang and it was my Configuration Manager 2012 Distribution point. It kindly told me that one of my packages disappeared for no reason. Geez I need a vacation.</span></span></p>
<p><span style="font-size: small;" size="3"><span style="font-family: Calibri;" face="Calibri">With SCCM 2007, content is stored on a distribution point in package ID folders. If you knew the package ID, you could browse to the file share and install/run manually. </span></span></p>
<p><span style="font-size: small;" size="3"><span style="font-family: Calibri;" face="Calibri">This option is more complicated now in Configuration Manager 2012. The files are not just stored on a drive in a manner you could just copy and execute.</span></span></p>
<p><b><span style="font-family: Calibri; font-size: small;" face="Calibri" size="3">The following blog post is about the new </span></b><a href="http://technet.microsoft.com/library/gg682083.aspx#BKMK_ContentLibrary"><b><span style="color: #0000ff; font-family: Calibri; font-size: small;" face="Calibri" size="3" color="#0000ff">Content Library</span></b></a><span style="font-size: small;" size="3"><span style="font-family: Calibri;" face="Calibri"><b><span style="text-decoration: underline;"><span style="color: #0000ff;" color="#0000ff"> </span></span></b><b>and my attempts to reconstitute a package from the Single Instance Store.</b></span></span></p>
<p><span style="font-size: small;" size="3"><span style="font-family: Calibri;" face="Calibri">By default, the content is single storage and browsing to a DP does not store all the files in a package id folder where you could find an install and execute it. You can enable the older method which will create a separate folder share. This will require double the disk space! Obviously, this is a pain point for those who use the distribution points this way as a mitigation step in a crisis. </span></span></p>
<p><span style="font-size: small;" size="3"><span style="font-family: Calibri;" face="Calibri">To understand <b>how the Content Library</b> works in Configuration Manager 2012, I decided to find a way to solve this pain point.</span></span></p>
<p><span style="font-size: small;" size="3"><span style="font-family: Calibri;" face="Calibri">This functional diagram is my review of the single content library:</span></span></p>
<p><span style="font-family: Calibri; font-size: small;" face="Calibri" size="3"><a href="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/91/47/7065.p1.png" original-url="http://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-91-47/7065.p1.png"><img border="0" alt="" src="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/91/47/7065.p1.png" original-url="http://blogs.technet.com/resized-image.ashx/__size/550x0/__key/communityserver-blogs-components-weblogfiles/00-00-00-91-47/7065.p1.png" width="614" height="521" /></a></span></p>
<p><span style="font-family: Calibri; font-size: small;" face="Calibri" size="3">&nbsp;</span></p>
<p><b><span style="font-size: small;" size="3"><span style="font-family: Calibri;" face="Calibri">Content Layer</span></span></b></p>
<p><span style="font-family: Calibri; font-size: small;" face="Calibri" size="3"><a href="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/91/47/5282.p2.png" original-url="http://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-91-47/5282.p2.png"><img border="0" alt="" src="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/91/47/5282.p2.png" original-url="http://blogs.technet.com/resized-image.ashx/__size/550x0/__key/communityserver-blogs-components-weblogfiles/00-00-00-91-47/5282.p2.png" width="368" height="142" /></a></span></p>
<p><span style="font-size: small;" size="3"><span style="font-family: Calibri;" face="Calibri">In the Content Layer, individual files are sent and <b>only stored once</b> in a single storage location. For example, there might be three packages that need to be distributed in a Configuration Manager 2012 infrastructure. All three packages contain the same file <b>Psexec.exe</b> with the same md5\sha1\sha2 hash value.</span></span></p>
<p><span style="font-size: small;" size="3"><span style="font-family: Calibri;" face="Calibri"><b>Why send the file and store it in three places?</b> </span></span></p>
<p><span style="font-size: small;" size="3"><span style="font-family: Calibri;" face="Calibri"><b>Great efficiencies</b> are gained with the new shared single storage Content Library in Configuration Manager 2012. The file is hashed, given an ID and <b>sent only once</b>. Each package is stored as pointers to the necessary files. This means that packages share files if they are the same. This saves on network usage and file storage requirements. Sounds awesome; doesn&rsquo;t it!</span></span></p>
<p><b><span style="font-size: small;" size="3"><span style="font-family: Calibri;" face="Calibri">Configuration Manager Layer</span></span></b></p>
<p><span style="font-size: small;" size="3"><span style="font-family: Calibri;" face="Calibri">Here is an example:</span></span></p>
<p><span style="font-size: small;" size="3"><span style="font-family: Calibri;" face="Calibri">I created two packages:</span></span></p>
<ol>
<li><span style="font-family: Calibri; font-size: small;" face="Calibri" size="3">1.</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <span style="font-size: small;" size="3"><span style="font-family: Calibri;" face="Calibri">Filezilla &ndash; package id HH00005</span></span></li>
<li><span style="font-family: Calibri; font-size: small;" face="Calibri" size="3">2.</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <span style="font-size: small;" size="3"><span style="font-family: Calibri;" face="Calibri">Notepad ++ - Package id HH00006</span></span></li>
</ol>
<p><span style="font-family: Calibri; font-size: small;" face="Calibri" size="3"><a href="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/91/47/0511.p3.png" original-url="http://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-91-47/0511.p3.png"><img border="0" alt="" src="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/91/47/0511.p3.png" original-url="http://blogs.technet.com/resized-image.ashx/__size/550x0/__key/communityserver-blogs-components-weblogfiles/00-00-00-91-47/0511.p3.png" width="565" height="164" /></a></span></p>
<p><span style="font-family: Calibri; font-size: small;" face="Calibri" size="3">Each has <b>psexec.exe</b>, one of my favorite sysinternal tools. Note you can get it here at </span><a href="http://live.sysinternals.com/"><span style="color: #0000ff; font-family: Calibri; font-size: small;" face="Calibri" size="3" color="#0000ff">http://live.sysinternals.com</span></a></p>
<p><span style="font-size: small;" size="3"><span style="font-family: Calibri;" face="Calibri">Next I &ldquo;Distribute Content&rdquo; in the CM2012 console to my distribution point.</span></span></p>
<p><b><span style="font-size: small;" size="3"><span style="font-family: Calibri;" face="Calibri">Distribution Point Layer</span></span></b></p>
<p><span style="font-size: small;" size="3"><span style="font-family: Calibri;" face="Calibri">When content is sent to the distribution point, it is stored by default on the largest available drive in a folder, <b>sccmcontentlib</b>. During the install you can set this location, however, you cannot configure the drive settings in the distribution point properties after installation completes.</span></span></p>
<p><span style="font-family: Calibri;" face="Calibri"><span style="font-size: small;" size="3">The following folders get created:</span></span></p>
<p><span style="font-family: Calibri; font-size: small;" face="Calibri" size="3"><a href="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/91/47/8371.p4.png" original-url="http://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-91-47/8371.p4.png"><img border="0" alt="" src="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/91/47/8371.p4.png" original-url="http://blogs.technet.com/resized-image.ashx/__size/550x0/__key/communityserver-blogs-components-weblogfiles/00-00-00-91-47/8371.p4.png" width="312" height="182" /></a></span></p>
<ul>
<li><span style="font-size: small;" size="3">&middot;</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <span style="font-size: small;" size="3"><span style="font-family: Calibri;" face="Calibri">Datalib = Data Library</span></span></li>
<li><span style="font-size: small;" size="3">&middot;</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <span style="font-size: small;" size="3"><span style="font-family: Calibri;" face="Calibri">Filelib = File Library</span></span></li>
<li><span style="font-size: small;" size="3">&middot;</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <span style="font-size: small;" size="3"><span style="font-family: Calibri;" face="Calibri">Pkglib = Package Library</span></span></li>
</ul>
<p><b><span style="font-family: Calibri;" face="Calibri"><span style="font-size: small;" size="3">DataLib</span></span></b></p>
<p><span style="font-family: Calibri;" face="Calibri"><span style="font-size: small;" size="3">For each package that you distribute a corresponding package+id.version number folder and file will be created. For patches the folder will appear as the patch guid and application folders will appear as Content_guid</span></span></p>
<p><span style="font-family: Calibri; font-size: small;" face="Calibri" size="3"><a href="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/91/47/7282.p6.png" original-url="http://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-91-47/7282.p6.png"><img border="0" alt="" src="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/91/47/7282.p6.png" original-url="http://blogs.technet.com/resized-image.ashx/__size/550x0/__key/communityserver-blogs-components-weblogfiles/00-00-00-91-47/7282.p6.png" width="242" height="105" /></a></span></p>
<p><span style="font-family: Calibri; font-size: small;" face="Calibri" size="3"><a href="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/91/47/8510.p5.png" original-url="http://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-91-47/8510.p5.png"><img border="0" alt="" src="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/91/47/8510.p5.png" original-url="http://blogs.technet.com/resized-image.ashx/__size/550x0/__key/communityserver-blogs-components-weblogfiles/00-00-00-91-47/8510.p5.png" width="454" height="212" /></a></span></p>
<p><span style="font-family: Calibri;" face="Calibri"><span style="font-size: small;" size="3"><span style="font-family: Calibri;" face="Calibri"><span style="font-size: small;" size="3">Now let&rsquo;s look at the package HH00005.1 (Filezilla)</span></span></span></span></p>
<p><span style="font-family: Calibri;" face="Calibri"><span style="font-size: small;" size="3"><span style="font-family: Calibri;" face="Calibri"><span style="font-size: small;" size="3"><span style="font-family: Calibri; font-size: small;" face="Calibri" size="3"><a href="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/91/47/5460.p7.png" original-url="http://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-91-47/5460.p7.png"><img border="0" alt="" src="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/91/47/5460.p7.png" original-url="http://blogs.technet.com/resized-image.ashx/__size/550x0/__key/communityserver-blogs-components-weblogfiles/00-00-00-91-47/5460.p7.png" /></a></span></span></span></span></span></p>
<p><span style="font-family: Calibri;" face="Calibri"><span style="font-size: small;" size="3">Each DataLib folder contains .ini file which includes important information for the actual file.</span></span></p>
<ul>
<li><span style="font-size: small;" size="3">&middot;</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <span style="font-size: small;" size="3"><span style="font-family: Calibri;" face="Calibri">Attributes</span></span></li>
<li><span style="font-size: small;" size="3">&middot;</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <span style="font-size: small;" size="3"><span style="font-family: Calibri;" face="Calibri">Size</span></span></li>
<li><span style="font-size: small;" size="3">&middot;</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <span style="font-size: small;" size="3"><span style="font-family: Calibri;" face="Calibri">TimeModified</span></span></li>
<li><span style="font-size: small;" size="3">&middot;</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <span style="font-size: small;" size="3"><span style="font-family: Calibri;" face="Calibri">Hash</span></span></li>
</ul>
<p><span style="font-size: small;" size="3"><span style="font-family: Calibri;" face="Calibri">&nbsp;Viewing the psexec.ini file in the HH00005.1 package folder:</span></span></p>
<p><span style="font-size: small;" size="3"><span style="font-family: Calibri;" face="Calibri"><a href="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/91/47/7776.p8.png" original-url="http://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-91-47/7776.p8.png"><img border="0" alt="" src="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/91/47/7776.p8.png" original-url="http://blogs.technet.com/resized-image.ashx/__size/550x0/__key/communityserver-blogs-components-weblogfiles/00-00-00-91-47/7776.p8.png" /></a></span></span></p>
<p><span style="font-family: Calibri; font-size: small;" face="Calibri" size="3"><a href="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/91/47/5460.p7.png" original-url="http://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-91-47/5460.p7.png"></a></span>&nbsp;</p>
<p><span style="font-size: small;" size="3"><span style="font-family: Calibri;" face="Calibri">A Hash value of <b>F8DB</b>&hellip; is found. The <b>first four entries</b> of this hash are important. This is the locater folder name for the actual binary file in the pkgLib folder.</span></span></p>
<p><span style="font-size: small;" size="3"><span style="font-family: Calibri;" face="Calibri">Note</span></span></p>
<p><span style="font-size: small;" size="3"><span style="font-family: Calibri;" face="Calibri">The default hashing algorithm for content is SHA-256</span></span></p>
<p><span style="font-size: small;" size="3"><span style="font-family: Calibri;" face="Calibri">To find the file:</span></span></p>
<p><b><span style="font-size: small;" size="3"><span style="font-family: Calibri;" face="Calibri">Filelib</span></span></b></p>
<p><span style="font-size: small;" size="3"><span style="font-family: Calibri;" face="Calibri">The folder names have meaning. Each corresponds to a hash value in the FileLib folder. In the example of HH000005.1, psexec.exe.ini, the value was F8DB<span style="font-family: Calibri; font-size: small;" face="Calibri" size="3"><a href="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/91/47/0763.p9.png" original-url="http://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-91-47/0763.p9.png"></a><a href="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/91/47/5460.p7.png" original-url="http://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-91-47/5460.p7.png"></a></span></span></span></p>
<p><span style="font-size: small;" size="3"><span style="font-family: Calibri;" face="Calibri">Viewing the F8DB folder:<span style="font-family: Calibri; font-size: small;" face="Calibri" size="3"><a href="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/91/47/0763.p9.png" original-url="http://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-91-47/0763.p9.png"></a><a href="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/91/47/5460.p7.png" original-url="http://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-91-47/5460.p7.png"></a></span></span></span></p>
<p><span style="font-family: Calibri; font-size: small;" face="Calibri" size="3"><a href="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/91/47/6663.p9.png" original-url="http://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-91-47/6663.p9.png"><img border="0" alt="" src="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/91/47/6663.p9.png" original-url="http://blogs.technet.com/resized-image.ashx/__size/550x0/__key/communityserver-blogs-components-weblogfiles/00-00-00-91-47/6663.p9.png" width="604" height="462" /></a><a href="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/91/47/6840.p8.png" original-url="http://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-91-47/6840.p8.png"></a><a href="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/91/47/2148.p8.png" original-url="http://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-91-47/2148.p8.png"></a></span></p>
<p><span style="font-size: small;" size="3"><span style="font-family: Calibri;" face="Calibri">The hash value .ini contains a list of the type and references of which packages use this file. Notice that there are two packages that are listed. <b>This is single instance storage</b>. Any package/program/content/update that has this exact hash file requirement will use this file and location.</span></span></p>
<p><span style="font-size: small;" size="3"><span style="font-family: Calibri;" face="Calibri">The actual file will be the hash with no extension. Copying and renaming the file to psexec.exe, I verified that is the psexec file:</span></span></p>
<p><span style="font-family: Calibri; font-size: small;" face="Calibri" size="3"><a href="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/91/47/8880.p10.png" original-url="http://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-91-47/8880.p10.png"><img border="0" alt="" src="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/91/47/8880.p10.png" original-url="http://blogs.technet.com/resized-image.ashx/__size/550x0/__key/communityserver-blogs-components-weblogfiles/00-00-00-91-47/8880.p10.png" /></a></span></p>
<p><span style="font-size: small;" size="3"><span style="font-family: Calibri;" face="Calibri">SHA-256 hash value matches.</span></span></p>
<p><span style="font-size: small;" size="3"><span style="font-family: Calibri;" face="Calibri">Now back to the HH00005 package. It contains the setup for FileZilla and psexec.</span></span></p>
<p><span style="font-family: Calibri; font-size: small;" face="Calibri" size="3"><a href="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/91/47/5657.p11.png" original-url="http://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-91-47/5657.p11.png"><img border="0" alt="" src="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/91/47/5657.p11.png" original-url="http://blogs.technet.com/resized-image.ashx/__size/550x0/__key/communityserver-blogs-components-weblogfiles/00-00-00-91-47/5657.p11.png" /></a></span></p>
<p><span style="font-size: small;" size="3"><span style="font-family: Calibri;" face="Calibri">Note that the psexec.exe.ini file points to the F8DB filelib folder as I demonstrated above.</span></span></p>
<p><span style="font-size: small;" size="3"><span style="font-family: Calibri;" face="Calibri">To summarize the Content Library, Single Content Storage and this review:</span></span></p>
<p><span style="font-size: small;" size="3"><span style="font-family: Calibri;" face="Calibri">Both HH00005 and HH00006 CM2012 packages contain the file psexec.exe. The file is only sent <b>once</b> to the Content Library and stored as single instance. A SHA-256 hash value is used to track the unique file and the first four digits are used as a locator. When a client requests the download the files are assembled from the Content Library via single instance storage.</span></span></p>
<p><span style="font-size: small;" size="3"><span style="font-family: Calibri;" face="Calibri">Now suppose you want to reconstitute an entire package from the sccmcontentlib folder. I created a basic vb.net application to assist me in this exercise.</span></span></p>
<p><span style="font-family: Calibri; font-size: small;" face="Calibri" size="3"><a href="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/91/47/7848.p12.png" original-url="http://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-91-47/7848.p12.png"><img border="0" alt="" src="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/91/47/7848.p12.png" original-url="http://blogs.technet.com/resized-image.ashx/__size/550x0/__key/communityserver-blogs-components-weblogfiles/00-00-00-91-47/7848.p12.png" /></a></span></p>
<p><span style="font-size: small;" size="3"><span style="font-family: Calibri;" face="Calibri">Following each PkgLib file to the DataLib, I was able to regenerate all the files from the FileLib for any given package. </span></span></p>
<p><span style="font-family: Calibri; font-size: small;" face="Calibri" size="3"><a href="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/91/47/7587.p13.png" original-url="http://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-91-47/7587.p13.png"><img border="0" alt="" src="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/91/47/7587.p13.png" original-url="http://blogs.technet.com/resized-image.ashx/__size/550x0/__key/communityserver-blogs-components-weblogfiles/00-00-00-91-47/7587.p13.png" /></a></span></p>
<p><span style="font-size: small;" size="3"><span style="font-family: Calibri;" face="Calibri">I hope my blog posting was helpful in providing an understanding the Content Library and the Single Instance Storage in Configuration Manager 2012.</span></span></p>]]></content:encoded>
    </item>
    <item>
      <title>Role-Based Administration in System Center 2012 Configuration Manager</title>
      <link>https://docs.microsoft.com/archive/blogs/hhoy/role-based-administration-in-system-center-2012-configuration-manager</link>
      <pubDate>Tue, 06 Mar 2012 17:25:00 GMT</pubDate>
      <dc:creator><![CDATA[Howard Hoy - MCS - Northwest District]]></dc:creator>
      <guid
        isPermaLink="false">https://blogs.technet.microsoft.com/hhoy/2012/03/06/role-based-administration-in-system-center-2012-configuration-manager/</guid>
      <description><![CDATA[&nbsp;
by Howard Hoy - MCS Consultant - Portland Oregon
March&nbsp;2012
Delegation of...]]></description>
      <content:encoded><![CDATA[<p><span style="font-size: xx-large;" size="7"><span style="color: #17365d;" color="#17365d"><span style="font-family: Cambria;" face="Cambria"></span></span></span>&nbsp;</p>
<p><a href="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/91/47/3000.mylist.png" original-url="http://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-91-47/3000.mylist.png"></a>by Howard Hoy - MCS Consultant - Portland Oregon</p>
<p><span style="font-size: small;" size="3"><span style="font-family: Calibri;" face="Calibri">March&nbsp;2012</span></span></p>
<p><span style="font-size: small;" size="3"><span style="font-family: Calibri;" face="Calibri"><b>Delegation</b> of administration in SMS/SCCM/ConfigMgr has always been a challenge. I&rsquo;ve never seen a company where there wasn&rsquo;t some type of delegated administration when it comes to management of computers, both Desktop and Server. Many groups just don&rsquo;t trust one another. This lack of trust leads to some very creative delegation solutions. I&rsquo;ve seen some pretty creative and hard to support implementations. Usually these solutions are developed internally that start off small get adopted as the way of doing business. <b>Thankfully </b>with System Center 2012 Configuration Manager a new feature called Role-Based Administration (RBA) is included to make it easier to delegate and effectively permission administrative tasks.</span></span></p>
<p><span style="font-size: small;" size="3"><span style="font-family: Calibri;" face="Calibri">First I would like to define &ldquo;Delegation&rdquo; and what that really means. The Bing dictionary list delegation as:</span></span></p>
<p><i><span style="font-size: small;" size="3"><span style="font-family: Calibri;" face="Calibri">&ldquo;condition of being given responsibility: the condition of being given to somebody else as a duty or responsibility&rdquo;</span></span></i></p>
<p><span style="font-size: small;" size="3"><span style="font-family: Calibri;" face="Calibri">Delegations that I normally encounter are in environments which have separate Desktop and Server support teams. Each team manages their assets with different standards, governance and processes that almost always are incompatible. &ldquo;One Console to Rule Them All&rdquo; &nbsp;is generally the desire from those who own the corporate Microsoft spending points. I mean, that really makes logical sense right? However, throw logic out the window because that is not reality. Groups will go at great lengths to ensure that they are the only administrators capable of inflicting damage via a management platform. We&rsquo;ve all read about the horror stories from misguided advertisements that cause many support people to be up all night fixing the issues..</span></span></p>
<p><span style="font-size: small;" size="3"><span style="font-family: Calibri;" face="Calibri">One creative implementation that comes to mind while thinking about RBA was a hard core support team from [insert your favorite company] that had responsibility for assets across the globe. They had a massive amount of AD Security groups, DCOM, NTFS Permissions and custom MMC&rsquo;s to lock out admins to a very granular level. They spent a ton of time supporting and fixing their delegated solution. The increased support for creative solution consumed a lot of their time. Nobody was thinking into the future about supporting their creative solution, rather they were more focused on just solving their immediate problem. Furthermore, turnover causes knowledge loss which can make supporting these creative solutions a nightmare.</span></span></p>
<p><span style="font-size: small;" size="3"><span style="font-family: Calibri;" face="Calibri">Now System Center 2012 Configuration Manager and RBA enter the picture. This is an excellent way to provide a level of delegation of duties for a management platform across all Windows (yes there are others) assets. Is it an answer to all those creative and hard to support delegation ideas? No it is not! For example, you could not provide a role for an admin to not see a particular application, yet still have the ability to deploy it within the console. Yes, I&rsquo;ve been asked that before. RBA is the ability to apply a strict set of governance and delegation with permissions for logically grouped functions.&nbsp; </span></span></p>
<p><span style="font-size: small;" size="3"><span style="font-family: Calibri;" face="Calibri">I use the following when consulting with my clients about RBA:</span></span></p>
<p><span style="font-size: small;" size="3"><span style="font-family: Calibri;" face="Calibri">RBA provides Configuration Manager 2012 Administrators with a security model that provides the ability to assign and manage administrative permissions - Delegation. RBA is accomplished by using Security Roles, Security Scopes and Collections in Configuration Manager 2012. This controls <b>Who, How, What, Which and Where</b> Administrative tasks are performed. The Configuration Manager console further simplifies this process by showing ONLY a streamlined view that is customized to a given Role. This is sometimes referred to as &ldquo;The Show Me&rdquo; console.</span></span></p>
<p><span style="font-size: small;" size="3"><span style="font-family: Calibri;" face="Calibri">&nbsp;This is a simplified logical design diagram which layers the key concepts in RBA:</span></span></p>
<p><span style="font-size: medium;" size="4"><span style="color: #4f81bd;" color="#4f81bd"><span style="font-family: Cambria;" face="Cambria"><a href="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/91/47/4718.rbapic1.png" original-url="http://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-91-47/4718.rbapic1.png"></a></span></span></span><a href="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/91/47/2626.rbapic8.png" original-url="http://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-91-47/2626.rbapic8.png"><img border="0" alt="" src="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/91/47/2626.rbapic8.png" original-url="http://blogs.technet.com/resized-image.ashx/__size/550x0/__key/communityserver-blogs-components-weblogfiles/00-00-00-91-47/2626.rbapic8.png" /></a></p>
<p><span style="font-size: medium;" size="4"><span style="color: #4f81bd;" color="#4f81bd"><span style="font-family: Cambria;" face="Cambria">Layers</span></span></span></p>
<p><b><span style="font-family: Calibri;" face="Calibri"><span style="font-size: small;" size="3">Configuration Manager Console Layer - Who</span></span></b></p>
<p><br /><a href="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/91/47/3414.rbapic2.png" original-url="http://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-91-47/3414.rbapic2.png"><img border="0" alt="" src="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/91/47/3414.rbapic2.png" original-url="http://blogs.technet.com/resized-image.ashx/__size/550x0/__key/communityserver-blogs-components-weblogfiles/00-00-00-91-47/3414.rbapic2.png" /></a></p>
<p><span style="font-family: Calibri;" face="Calibri"><span style="font-size: small;" size="3">Any person who requires Administrative/Management functions within Configuration Manager 2012</span></span></p>
<p><span style="font-family: Calibri;" face="Calibri"><span style="font-size: small;" size="3">Configuration Manager 2012 is managed from a console application which groups administrative tasks into logical workspaces. They are as follows:</span></span></p>
<ul>
<li><span style="font-size: small;" size="3"><span style="font-family: Calibri;" face="Calibri">Assets and Compliance</span></span></li>
<li><span style="font-size: small;" size="3"><span style="font-family: Calibri;" face="Calibri">Software Library</span></span></li>
<li><span style="font-size: small;" size="3"><span style="font-family: Calibri;" face="Calibri">Monitoring</span></span></li>
<li><span style="font-size: small;" size="3"><span style="font-family: Calibri;" face="Calibri">Administration</span></span></li>
</ul>
<p><span style="font-size: small;" size="3"><span style="font-family: Calibri;" face="Calibri">The console application can be distributed to the administrator&rsquo;s workstations so long as they have network access. Please see the Appendix for the Operating System support and Network Port requirements.</span></span></p>
<p><span style="font-size: small;" size="3"><span style="font-family: Calibri;" face="Calibri">Note that an Administrator will only see the objects that they are allowed to see. The following layer sections describe how RBA is accomplished.</span></span></p>
<p><b><span style="font-size: small;" size="3"><span style="font-family: Calibri;" face="Calibri">&nbsp;Configuration Manager Site Layer &ndash; How</span></span></b></p>
<p><a href="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/91/47/6403.rbapic3.png" original-url="http://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-91-47/6403.rbapic3.png"><img border="0" alt="" src="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/91/47/6403.rbapic3.png" original-url="http://blogs.technet.com/resized-image.ashx/__size/550x0/__key/communityserver-blogs-components-weblogfiles/00-00-00-91-47/6403.rbapic3.png" /></a></p>
<p><span style="font-size: small;" size="3"><span style="font-family: Calibri;" face="Calibri">The Configuration Manager Site Layer consists of the infrastructure necessary to operate a functional System Center 2012 Configuration Manager environment delivering the RBA capabilities. Since this document focuses on RBA, no more details regarding the requirements for a functional environment are covered. For that you can read TechNet.</span></span></p>
<p><b><span style="font-size: small;" size="3"><span style="font-family: Calibri;" face="Calibri">Configuration Manager Security Role Layer &ndash; What</span></span></b></p>
<p><br /><a href="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/91/47/5758.rbapic4.png" original-url="http://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-91-47/5758.rbapic4.png"><img border="0" alt="" src="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/91/47/5758.rbapic4.png" original-url="http://blogs.technet.com/resized-image.ashx/__size/550x0/__key/communityserver-blogs-components-weblogfiles/00-00-00-91-47/5758.rbapic4.png" /></a></p>
<p><span style="font-size: small;" size="3"><span style="font-family: Calibri;" face="Calibri">Objects and Permissions (operations)<b></b></span></span></p>
<p><span style="font-size: small;" size="3"><span style="font-family: Calibri;" face="Calibri">In Configuration Manager 2012, Security Roles are used to collectively group <b>objects</b> and <b>permissions </b>(operations) for assignment to an Administrator. Instead of an individual permission set on a single instance of object, the Security Role provides a single Role assignment to an administrator; reducing the overall complexity with permission management. An &ldquo;object&rdquo; in the Security Role is something that you want to manage access to and &ldquo;permission&rdquo; is the operational functions, such as Read, Modify and Delete. </span></span></p>
<p><span style="font-size: small;" size="3"><span style="font-family: Calibri;" face="Calibri">For example you might have a requirement to create Roles for Server and Workstation administrators who should be <b>limited</b> to managing Configuration Manager Client Agent settings on their targeted assets.&nbsp; To solve this requirement a Role would be created and permissions could be assigned (see Security Scopes in the next section).</span></span></p>
<ol>
<li>&nbsp;<span style="font-size: small;" size="3"><span style="font-family: Calibri;" face="Calibri">Client Agent Role</span></span></li>
</ol>
<p><span style="font-size: small;" size="3"><span style="font-family: Calibri;" face="Calibri">By default any Administrator assigned this Role would be able to change the settings on both the Server and Workstations. To limit the permissions specific Security Scopes are required to be configured. That will be covered in the next section.</span></span></p>
<p><span style="font-size: small;" size="3"><span style="font-family: Calibri;" face="Calibri">Included are default built-in roles to cover some basic management separation:</span></span></p>
<table border="1" cellspacing="0" cellpadding="0">
<tbody>
<tr>
<td valign="top" width="399">
<p><b><span style="font-size: small;" size="3"><span style="font-family: Calibri;" face="Calibri">Role</span></span></b></p>
</td>
<td valign="top" width="399">
<p><b><span style="font-size: small;" size="3"><span style="font-family: Calibri;" face="Calibri">Description</span></span></b></p>
</td>
</tr>
<tr>
<td valign="top" width="399">
<p><b><span style="font-size: small;" size="3"><span style="font-family: Calibri;" face="Calibri">Application Administrator</span></span></b></p>
</td>
<td valign="top" width="399">
<p><span style="font-size: small;" size="3"><span style="font-family: Calibri;" face="Calibri">Grants permissions to perform both the Application Deployment Manager role and the Application Author role. Administrative users who are associated with this role can also manage queries, view site settings, manage collections, and edit settings for user device affinity.</span></span></p>
</td>
</tr>
<tr>
<td valign="top" width="399">
<p><b><span style="font-size: small;" size="3"><span style="font-family: Calibri;" face="Calibri">Application Author</span></span></b></p>
</td>
<td valign="top" width="399">
<p><span style="font-size: small;" size="3"><span style="font-family: Calibri;" face="Calibri">Grants permissions to create, modify, and retire applications. Administrative users who are associated with this role can also manage applications, packages.</span></span></p>
</td>
</tr>
<tr>
<td valign="top" width="399">
<p><b><span style="font-size: small;" size="3"><span style="font-family: Calibri;" face="Calibri">Application Deployment Manager</span></span></b></p>
</td>
<td valign="top" width="399">
<p><span style="font-size: small;" size="3"><span style="font-family: Calibri;" face="Calibri">Grants permissions to deploy applications.&nbsp; Administrative users who are associated with this role can view a list of applications, and they can manage deployments for applications, alerts, templates and packages, and programs. Administrative users who are associated with this role can also view collections and their members, status messages, queries, and conditional delivery rules.</span></span></p>
</td>
</tr>
<tr>
<td valign="top" width="399">
<p><b><span style="font-size: small;" size="3"><span style="font-family: Calibri;" face="Calibri">Asset Manager</span></span></b></p>
</td>
<td valign="top" width="399">
<p><span style="font-size: small;" size="3"><span style="font-family: Calibri;" face="Calibri">Grants permissions to manage the Asset Intelligence Synchronization Point, Asset Intelligence reporting classes, software inventory, hardware inventory, and metering rules.</span></span></p>
</td>
</tr>
<tr>
<td valign="top" width="399">
<p><b><span style="font-size: small;" size="3"><span style="font-family: Calibri;" face="Calibri">Compliance Settings Manager</span></span></b></p>
</td>
<td valign="top" width="399">
<p><span style="font-size: small;" size="3"><span style="font-family: Calibri;" face="Calibri">Grants permissions to define and monitor Compliance Settings. Administrative users associated with this role can create, modify, and delete configuration items and baselines. They can also deploy configuration baselines to collections, and initiate compliance evaluation, and initiate remediation for non-compliant computers.</span></span></p>
</td>
</tr>
<tr>
<td valign="top" width="399">
<p><b><span style="font-size: small;" size="3"><span style="font-family: Calibri;" face="Calibri">Endpoint Protection Manager</span></span></b></p>
</td>
<td valign="top" width="399">
<p><span style="font-size: small;" size="3"><span style="font-family: Calibri;" face="Calibri">Grants permissions to define and monitor security policies. Administrative Users who are associated with this role can create, modify and delete Endpoint Protection policies. They can also deploy Endpoint Protection policies to collections, create and modify Alerts and monitor Endpoint Protection status.</span></span></p>
</td>
</tr>
<tr>
<td valign="top" width="399">
<p><b><span style="font-size: small;" size="3"><span style="font-family: Calibri;" face="Calibri">Full Administrator</span></span></b></p>
</td>
<td valign="top" width="399">
<p><span style="font-size: small;" size="3"><span style="font-family: Calibri;" face="Calibri">Grants all permissions in Configuration Manager. The administrative user who first creates a new Configuration Manager installation is associated with this security role, all scopes, and all collections.</span></span></p>
</td>
</tr>
<tr>
<td valign="top" width="399">
<p><b><span style="font-size: small;" size="3"><span style="font-family: Calibri;" face="Calibri">Infrastructure Administrator</span></span></b></p>
</td>
<td valign="top" width="399">
<p><span style="font-size: small;" size="3"><span style="font-family: Calibri;" face="Calibri">Grants permissions to create, delete, and modify the Configuration Manager server infrastructure and to perform migration tasks.</span></span></p>
</td>
</tr>
<tr>
<td valign="top" width="399">
<p><b><span style="font-size: small;" size="3"><span style="font-family: Calibri;" face="Calibri">Operating System Deployment Manager</span></span></b></p>
</td>
<td valign="top" width="399">
<p><span style="font-size: small;" size="3"><span style="font-family: Calibri;" face="Calibri">Grants permissions to create operating system images and deploy them to computers. Administrative users who are associated with this role can manage operating system installation packages and images, task sequences, drivers, boot images, and state migration settings.</span></span></p>
</td>
</tr>
<tr>
<td valign="top" width="399">
<p><b><span style="font-size: small;" size="3"><span style="font-family: Calibri;" face="Calibri">Operations Administrator</span></span></b></p>
</td>
<td valign="top" width="399">
<p><span style="font-size: small;" size="3"><span style="font-family: Calibri;" face="Calibri">Grants permissions for all actions in Configuration Manager except for the permissions that are required to manage security, which includes managing administrative users, security roles, and security scopes.</span></span></p>
</td>
</tr>
<tr>
<td valign="top" width="399">
<p><b><span style="font-size: small;" size="3"><span style="font-family: Calibri;" face="Calibri">Read-Only Analyst</span></span></b></p>
</td>
<td valign="top" width="399">
<p><span style="font-size: small;" size="3"><span style="font-family: Calibri;" face="Calibri">Grants permissions to view all Configuration Manager objects.</span></span></p>
</td>
</tr>
<tr>
<td valign="top" width="399">
<p><b><span style="font-size: small;" size="3"><span style="font-family: Calibri;" face="Calibri">Remote Tools Operator</span></span></b></p>
</td>
<td valign="top" width="399">
<p><span style="font-size: small;" size="3"><span style="font-family: Calibri;" face="Calibri">Grants permissions to run and audit the remote administration tools that help users resolve computer issues. Administrative users that are associated with this role can run Remote Control, Remote Assistance and Remote Desktop from the Configuration Manager console. In addition, they can run the Out of Band Management console and AMT power control options.</span></span></p>
</td>
</tr>
<tr>
<td valign="top" width="399">
<p><b><span style="font-size: small;" size="3"><span style="font-family: Calibri;" face="Calibri">Security Administrator</span></span></b></p>
</td>
<td valign="top" width="399">
<p><span style="font-size: small;" size="3"><span style="font-family: Calibri;" face="Calibri">Grants permissions to add and remove administrative users and to associate administrative users with security roles, collections, and security scopes. Administrative users who are associated with this role can also create, modify, and delete security roles and their assigned security scopes and collections.</span></span></p>
</td>
</tr>
<tr>
<td valign="top" width="399">
<p><b><span style="font-size: small;" size="3"><span style="font-family: Calibri;" face="Calibri">Software Update Manager</span></span></b></p>
</td>
<td valign="top" width="399">
<p><span style="font-size: small;" size="3"><span style="font-family: Calibri;" face="Calibri">Grants permissions to define and deploy software updates. Administrative users who are associated with this role can manage software update groups, deployments, deployment templates, and enable software updates for Network Access Protection (NAP).</span></span></p>
</td>
</tr>
</tbody>
</table>
<p><span style="font-family: Calibri; font-size: small;" size="3" face="Calibri">&nbsp;</span></p>
<p><span style="font-size: small;" size="3"><span style="font-family: Calibri;" face="Calibri">&nbsp;These roles can be copied and customized to fit many different sets of Role requirements.</span></span></p>
<p><span style="font-family: Calibri; font-size: small;" size="3" face="Calibri">&nbsp;</span></p>
<p><b><span style="font-size: small;" size="3"><span style="font-family: Calibri;" face="Calibri">Configuration Manager Security Scope Layer - Which</span></span></b></p>
<p><a href="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/91/47/2352.rbapic5.png" original-url="http://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-91-47/2352.rbapic5.png"><img border="0" alt="" src="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/91/47/2352.rbapic5.png" original-url="http://blogs.technet.com/resized-image.ashx/__size/550x0/__key/communityserver-blogs-components-weblogfiles/00-00-00-91-47/2352.rbapic5.png" /></a></p>
<p><span style="font-size: small;" size="3"><span style="font-family: Calibri;" face="Calibri">Specific permissions to specific instances</span></span></p>
<p><span style="font-size: small;" size="3"><span style="font-family: Calibri;" face="Calibri">A Security Scope contains <b>permissions</b> to specific Configuration Manager <b>instances</b>. Unlike the Security Role, which grants rights at a class level such as &ldquo;Modify&rdquo;, a Security Scope is granular and defines which permission apply within an specific instance. Collectively, these instance permissions are assigned to a Security Scope and is used to limit administrative access to specific secured objects. </span></span></p>
<p><span style="font-size: small;" size="3"><span style="font-family: Calibri;" face="Calibri">For example let&rsquo;s review our Security Scope Roles defined in the previous section:</span></span></p>
<ol>
<li><span style="font-size: small;" size="3"><span style="font-family: Calibri;" face="Calibri">Client Setting Role</span></span></li>
</ol>
<p><span style="font-size: small;" size="3"><span style="font-family: Calibri;" face="Calibri">Each type, Server and Workstation Administrator must have the ability to manage specific Configuration Manager Agent Client settings for the targeted assets and would be added to the Client Setting Role. </span></span></p>
<p><span style="font-size: small;" size="3"><span style="font-family: Calibri;" face="Calibri">To &ldquo;limit&rdquo; the administrator access two Security Scopes are defined:</span></span></p>
<ol>
<li><span style="font-size: small;" size="3"><span style="font-family: Calibri;" face="Calibri">Server Assets</span></span></li>
<li><span style="font-size: small;" size="3"><span style="font-family: Calibri;" face="Calibri">Workstation Assets</span></span></li>
</ol>
<p><span style="font-size: small;" size="3"><span style="font-family: Calibri;" face="Calibri">In addition two Collections are defined and contain the targeted Assets:</span></span></p>
<ol>
<li><span style="font-size: small;" size="3"><span style="font-family: Calibri;" face="Calibri">All Servers</span></span></li>
<li><span style="font-size: small;" size="3"><span style="font-family: Calibri;" face="Calibri">All Desktops</span></span></li>
</ol>
<p><span style="font-family: Calibri;" face="Calibri"><span style="font-size: small;" size="3">Next the All Servers client agent settings are assigned to the Server Assets Security Scope and the All Desktops are assigned Workstation Assets Security Scope.</span></span></p>
<p><span style="font-family: Calibri;" face="Calibri"><span style="font-size: small;" size="3">Finally the new Security Scopes are assigned to the applicable administrators. This process would prevent a Desktop Administrator from changing the client settings for any asset in the Server Collection. The opposite applies to the Server Administrator.</span></span></p>
<p><span style="font-family: Calibri;" face="Calibri"><span style="font-size: small;" size="3">Additional Scopes and Collections can be generated to create very granular Security Scopes. For example a Security Scope could limit a Server Administrator to a specific set of assets and only allow Application Management.</span></span></p>
<p><span style="font-family: Calibri;" face="Calibri"><span style="font-size: small;" size="3">There is a default scope that is generated during the installation of Configuration Manager 2012. All objects (if applicable) must have a Security Scope assigned. It is important to note that this default security scopes does not follow new objects. Any new object has a scope that is based upon the administrator&rsquo;s security scope which is creating the new object.</span></span></p>
<p><b><span style="font-family: Calibri;" face="Calibri"><span style="font-size: small;" size="3">Configuration Manager Collection Layer - Where</span></span></b></p>
<p><a href="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/91/47/6811.rbapic6.png" original-url="http://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-91-47/6811.rbapic6.png"><img border="0" alt="" src="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/91/47/6811.rbapic6.png" original-url="http://blogs.technet.com/resized-image.ashx/__size/550x0/__key/communityserver-blogs-components-weblogfiles/00-00-00-91-47/6811.rbapic6.png" /></a></p>
<p><span style="font-family: Calibri;" face="Calibri"><span style="font-size: small;" size="3">Collections of assets</span></span></p>
<p><span style="font-family: Calibri;" face="Calibri"><span style="font-size: small;" size="3">A collection is group of resources that can be managed. In Configuration Manager 2012 there are two types of collections, Device and User. A Device Collection is a group of devices and a User Collection contains users. Collections support the ability to &ldquo;Include&rdquo; or &ldquo;Exclude&rdquo; resources in other Collections. For example a collection All Desktops could be &ldquo;Include&rdquo; all devices in the All Systems collection and have an &ldquo;Exclude&rdquo; for any device in the All Servers Collection. This would create a collection with just all Workstations.</span></span></p>
<p><span style="font-family: Calibri;" face="Calibri"><span style="font-size: small;" size="3">Scenarios that you might have:</span></span></p>
<ul>
<li><span style="font-size: small;" size="3"><span style="font-family: Calibri;" face="Calibri">Workstation Admins Only</span></span></li>
<li><span style="font-size: small;" size="3"><span style="font-family: Calibri;" face="Calibri">Server Admins Only</span></span></li>
<li><span style="font-size: small;" size="3"><span style="font-family: Calibri;" face="Calibri">Vender Admin to Workstations Only</span></span></li>
<li><span style="font-size: small;" size="3"><span style="font-family: Calibri;" face="Calibri">Server Admins to Specific Region</span></span></li>
<li>&nbsp;<span style="font-size: small;" size="3"><span style="font-family: Calibri;" face="Calibri">Patching Admin to Servers</span></span></li>
</ul>
<p><span style="font-family: Calibri; font-size: small;" size="3" face="Calibri">&nbsp;</span></p>
<p><span style="font-family: Calibri; font-size: small;" size="3" face="Calibri">&nbsp;Here are some links for more information:</span></p>
<p><span style="font-family: Calibri; font-size: small;" size="3" face="Calibri"><a href="http://technet.microsoft.com/en-us/edge/Video/hh709988">http://technet.microsoft.com/en-us/edge/Video/hh709988</a></span></p>
<p><span style="font-family: Calibri; font-size: small;" size="3" face="Calibri">and one of my favorites:</span></p>
<p><span style="font-family: Calibri; font-size: small;" size="3" face="Calibri"><a href="http://technet.microsoft.com/en-us/library/gg682088.aspx">http://technet.microsoft.com/en-us/library/gg682088.aspx</a></span><span style="font-family: Calibri; font-size: small;" size="3" face="Calibri"></span></p>]]></content:encoded>
    </item>
  </channel>
</rss>