The following are some best practices that should be followed when developing configuration packs.  This list of best practices is not inclusive and is only a recommendation.

  • If you want your configuration pack to work with both Configuration Manager 2007 and Configuration Manager 2012 write the configuration pack using the DCM digest schema for Configuration Manager 2007
  • Use accurate and friendly names for all items, including configuration baseline and item names
  • If creating outside of Configuration Manager be sure to always increment your version number prior to import.  This includes each configuration item as well as baseline, including the version number for each configuration item referenced in the baseline.
  • Write accurate and detailed names and descriptions for every setting & rule, including what the rule is evaluating and why it would fail
  • Make sure all data types are appropriately set
  • Pay special attention to correct file version checks (= vs. >=)
  • Avoid using hard-coded strings in comparisons such as “Administrators” if possible, especially if you plan to localize your configuration pack
  • Appropriate usage of configuration items and baselines concepts (i.e. do not create 100+ configuration items that can easily be represented as settings with rules in one configuration item)
  • Ensure detection methods are properly defined for application configuration items
  • Order matters (Power Users, Administrators) vs. (Administrators, Power Users).  When writing scripts order as you best see fit
  • Try to avoid using wildcards, like in registry, rather write a rule for each sub key
  • Be very targeted and specific (look for individual files, not a group), do not be general.  The more specific you settings and rules are the more accurate your configuration pack will be
  • Should define the platform applicability
  • Flatter CI relationship is better than 4-5-6 levels deep