June 25 2013

Automatic documentation of your SCCM environment

I use a maximum of one Google Ad per post to help offset some of my blog hosting costs.


David O’Brien has created a fantastic PowerShell script that collects the configuration of your SCCM 2012 environment and exports it into a well formatted and comprehensive Word document. More information and downloads here:

Enhansoft have also just released their SCCM 2012 Documentation Script (SYDI-SCCM), this is available for free (after registration) from their website:




I use a maximum of one Google Ad per post to help offset some of my blog hosting costs.


June 18 2013

Site assignment boundaries are NOT required in SCCM 2012

SCCM 2012I’d like to do a quick post on something that I feel isn’t very well documented in SCCM 2012 – site assignment boundaries.  Boundaries in SCCM 2012 are very different to previous versions not only because there are now ‘Boundaries’ and ‘Boundaries Group’ but because ‘site assignment’ and ‘content location’  are now separated and are configurable properties of a boundary group.  For a one line definition of both of these, I quote directly from Microsoft (http://technet.microsoft.com/en-us/library/hh427326.aspx):
  • Site assignment = Site assignment is used by clients that use automatic site assignment to find an appropriate site to join, based on the clients current network location.
  • Content location = Content location is used by clients to identify available distribution points or state migration points, based upon the client’s current network location.

I’ll put a statement out there that I have proven a number of times and I have had clarified by the SCCM product group and also Microsoft Premier Support as a working and supported configuration – ‘Given the right scenario, site assignment boundaries are NOT required to be configured in SCCM 2012‘.

To give this statement some context, I have worked in numerous multi-vendor, multi-region and highly politically complex organisations where one or more vendors or internal teams may use SCCM (2007, 2012 or even SMS 2003) as their support tool and it will need to co-exist with other SCCM deployments / hierarchies within the same environment (including same Active Directory forest).  A new SCCM 2012 hierarchy can be deployed into these environment without affecting the existing environments and without breaking the SCCM golden rule that ‘boundaries cannot overlap’ (well, this is still partially true with SCCM 2012 – site assignment boundaries cannot overlap however content boundaries can overlap).

So if you are putting in a new SCCM 2012 hierarchy and you don’t want to reconfigure boundaries on existing SCCM hierarchies, on your new implementation simply:
  • Untick the ‘use this boundary group for site assignment’ box for all of your boundaries groups, eg:
Site assignment
  • Ensure you have the appropriate site systems added into the content locations section
  • Ensure the SMSSITECODE=xxx installation property is entered into the tab in the Client Push Installation Properties, eg:
Hardcode sitecode


This way the client is hardcoded (for lack of a better word) to use a sitecode for site assignment (P00 in the above example) rather than trying to autodetect it, but the content location is still automatically and dynamically detected.

The impact of the above configuration on this new SCCM hierarchy is:
  • Automatic site assignment will not be supported. SCCM clients will always contact their designated Site Server unless reconfigured.
  • This hierarchy will not automatically support network roaming of SCCM clients.
  • Automatic client push installation will not work however other installation methods including pushing from the console with the ‘Install Configuration Manager Client Wizard’ will still work
A few relevant notes:
  • System Center 2012 Configuration Manager clients check the version of the Configuration Manager site before they complete site assignment and cannot assign to a Configuration Manager 2007 site if boundaries overlap. However, Configuration Manager 2007 clients do not check for the site version and can incorrectly be assigned to a System Center 2012 Configuration Manager site. (see client site assignment considerations in http://technet.microsoft.com/en-gb/library/jj822985.aspx)
  • You will still need to ensure the pre-existing SCCM hierarchies are configured so they don’t try and push the old SCCM client to your new hierarchy’s clients
  • This configuration assumes you use the client push wizard for client installation, obviously if you are doing manual or GPO client installation you will need to use the SMSSITECODE=xxx property too
  • If you manually assign a client computer to a System Center 2012 Configuration Manager site code that does not exist, the site assignment fails. The client remains installed but unmanaged until it is assigned to a valid System Center 2012 Configuration Manager site.
  • If you make a change to the site assignment configuration of a boundary group, only new site assignment actions are affected. Clients that have previously been assigned to a site, do not re-evaluate their site assignment based on changes to the configuration of a boundary group (http://technet.microsoft.com/en-us/library/gg712679.aspx).

And finally, a blurb from Microsoft (http://technet.microsoft.com/en-us/library/gg682060.aspx) on the basics of SCCM client site assignment:

After a System Center 2012 Configuration Manager client is installed, it must join a System Center 2012 Configuration Manager primary site before it can be managed. The site that a client joins is referred to as its assigned site. Clients cannot be assigned to a central administration site or to a secondary site.

The assignment process occurs after the client is successfully installed and determines which site manages the client computer. When you install the mobile device client during Configuration Manager enrollment, this process always automatically assigns the mobile device to a site. When you install the client on a computer, you can also assign the client to a site or you can just install the client without assigning it to a site. However, when the client is installed but not assigned, the client is unmanaged until site assignment is successful.

To assign a client computer, you can either directly assign the client to a site, or you can use automatic site assignment where the client automatically finds an appropriate site based on its current network location or a fallback site that has been configured for the hierarchy.  After the client is assigned to a site, it remains assigned to that site, even if the client changes its IP address and roams to another site. Only an administrator can later manually assign the client to another site or remove the client assignment.



April 4 2013

System Center 2012 SP1 resources

I went hunting for the download of SP1 for System Center 2012 today, but as I suspected this isn’t a public download, it’s only available via MVLS, TechNet etc. I came across a great link that summarises a lot of the information and links that you need to know about for Service Pack 1 of System Center 2012. Head to http://systemscentre.blogspot.co.uk/2013/01/system-center-2012-service-pack-1.html for more info.



March 30 2013

Exam 70-247: Config & Deploy Private Cloud with SC2012

Today I took and passed the 70-247: “Configuring and Deploying a Private Cloud with System Center 2012” exam as part of my track to obtain the MCSE: Private Cloud certification.

I found the exam reasonably challenging. The exam focused mainly on VMM & App Controller, a fair bit of DPM, SCSM & SCOM and a little bit of App-V and SCORC.

There is an MVP who has broken down his experience of the exam – http://blog.scsmfaq.ch/2012/07/06/private-cloud-exam-70-247-my-experience/ – I would agree  with the breakdown however my exam was 62 questions and included 2 large case studies.

I’d recommend a very good understanding and experience with VMM & App Controller, and at least a good logical understanding of the remaining technologies before sitting this exam.




March 27 2013

Exam 70-243: SCCM 2012

This week I had a bit of free time so I booked and studied up for the Microsoft exam 70-243: Administering and Deploying System Center 2012 Configuration Manager.

I successfully passed the exam and achieved another certification – ‘Microsoft Certified Technology Specialist: Administering and Deploying System Center 2012 Configuration Manager’.

I felt the exam was one of the easier Microsoft exams I have sat (especially the SCCM 2007 one), I really think that anyone that has deeply used the SCCM 2012 product for 6 or more months would feel quite comfortable sitting this exam. Without giving away too much (I’m under NDA of course), I personally studied and would recommend having a good understanding of all areas covered under the ‘skills measured’ section of http://www.microsoft.com/learning/en/us/exam.aspx?id=70-243#fbid=YEjNtAwNtTv?tab2 . I am lucky enough to have a good exposure to all of these areas in my profession.

Here are some more good links related to exam 70-243:

Good luck!

January 24 2013

Popup message during SCCM task sequence in full OS

So it’s pretty easy to create a VB script popup during a task sequence when it is running in WinPE, however it’s a bit more difficult to have a VB script popup to show to the user when the task sequence is still running in the full OS – eg Windows 7 with a user logged on.


This is one method that I used to get it working, maybe there are easier or cleaner ways, but this one works well for me. We can achieve something like this:



In the task sequence, somewhere after the MDT Use Toolkit Package step, add a command line step:

TS Warning


Use the following command line:

“%ScriptRoot%ServiceUI.exe” -process:tsprogressui.exe %SYSTEMROOT%system32wscript.exe “%ScriptRoot%Warning.wsf”


This is the warning VB script (Warning.wsf) that I’ve used in my example, you just need to put this in your MDT scripts folder:


<job id=”setEnv”>

<script language=”VBScript” src=”ZTIUtility.vbs”/>
<script language=”VBScript”>

Dim oTSProgressUI
set oTSProgressUI = CreateObject(“Microsoft.SMS.TSProgressUI”)

MsgBox “Popup warning message to go here. This is shown in the user session.” & chr(13) & chr(13) & “Press OK to continue.”,0, “Warning”




There is also a bit of info over here on ServiceUI.exe – http://blogs.technet.com/b/cameronk/archive/2011/01/25/can-i-use-serviceui-exe-to-launch-other-programs-besides-the-udi-setup-wizard.aspx