SCCM 2012 – How to Create a Custom Compliance Report with Hardcoded Parameters

In order to allow users to run the SCCM 2012 Compliance 1 – Overall compliance report without the need to enter the two required parameters the following procedure was completed.

Obtain the Required Parameters

  • Obtain the Collection ID of SCCM collection to run the compliance report against.  In my case I used SMSDM003 which is the generic ID for the All Desktop and Server Clients SCCM collection.
  • Obtain the Software Update Group ID to run the compliance report against.  This can be obtained by exposing the CI Unique ID column in the SCCM console, using ctrl+c to copy the data and then ctrl+v into Notepad.

Create Folders

  • Access the SSRS home page.
  • Create a new folder called Custom Reports.
  • Create a subfolder called Compliance Reports.

Link the Report

Note:  You need to link the report rather copy the report otherwise the secondary reports will not run.

  • Navigate to the Software Updates – A Compliance report folder.
  • Click the Compliance 1 – Overall compliance report and select Manage from the dropdown.
  • From the menu bar click Create Linked Report.
  • Give the report a name, e.g. Overall Compliance Report.
  • Click the Change Location button.
  • Navigate to the Compliance Reports folder just created and click OK at the bottom of the page.
  • Click OK again to save the new report.

Adding the Parameters

  • Navigate to the Compliance Reports folder and the newly saved report should be visible.
  • Select the Overall Compliance Report and Manage from the dropdown.
  • Click the Parameters button on the left.
  • Clear the two checkboxes in the Prompt User column.
  • Tick the two checkboxes in the Has Default column (adjacent to AuthListID and CollID labels).
  • Enter the Collection ID in the CollID text box and the Software Update Group ID in the AuthListID text box.
  • Click the Apply button.

Running the Report

  • Back at the folder list run the Overall Compliance Report.  It should now run without the need to enter any parameters.
  • When the report opens in Internet Explorer copy the URL of the report.

The URL can now be distributed to users who will be able to run the report without the need to enter the parameters (subject to appropriate permissions).

How to Stop the Microsoft Antimalware Service (MsMpEng.exe)

The procedure below was used to stop both the Microsoft SCCM Agent Service and the Microsoft Antimalware Service when creating an App-V package on a Windows 8.1 reference machine.

The batch file starts the Process Explorer tool that was in the C:\SysinternalsSuite folder.

  • Create a batch file containing the following lines that will stop the SMS Agent Host Service and then open Process Explorer in the context of SYSTEM.
net stop ccmexec
cd SysinternalsSuite
psexec -s -i C:\Temp\SysinternalsSuite\procexp.exe
  • In Process Explorer locate and open the Properties of the MsMPEng.exe process.
  • Select the Services tab.
  • Click the Permissions button.
  • Set SYSTEM to have Full Control.
  • Click the Stop button.


vSphere Datastore on a QNAP TS-670

  • Access QTS web interface.
  • Open Storage Manager.
  • Select the iSCSI Storage tab.
  • Click the Create button.
  • Select I want to create iSCSI Target with mapped LUN.
  • Enter a name for the iSCSI Target.
  • Select File Based and Instant Allocation.
  • Change LUN name to match the iSCSI Target name.
  • Select required volume.
  • Set capacity required.
  • Repeat the above as required to create more LUNs.

Note:  QNAP recommend one-to-one mapping of iSCSI Targets to LUNs and then combining several LUNs to create a vSphere datastore.

  • Access the vSphere client.
  • Select an ESXi host.
  • Select the Configuration tab.
  • Select Storage Adapters.
  • Select Rescan.
  • Select the newly discovered devices in turn and change the Path Selection to Fixed(VMware).
  • Select the Storage option.
  • Click Add Storage.
  • Select one of the newly discovered LUNs and create the datastore as normal.
  • When the new datastore is available select Properties and then click the Increase button.
  • Add the other newly discovered LUNs in turn to extend the datastore to the required size.

How to Make a Custom Ringtone for Windows Phone 8.1

To complete this procedure I used Audacity 2.0.5 open source software on a PC running Windows 8.1 Update.  The phone I used was a Nokia Lumia 635.

Select the Required Section of the Track

  • Open your MP3 file in Audacity.
  • Play the track and note the start and finish time for the section of the track you want to use as a ringtone (typically about a 30 second chunk).
  • In Audacity, click in the waveform area at the noted start time.
  • Hold the shift key and then click at the noted end time – the required section of the track should now be highlighted.
  • Press the spacebar to play the highlighted area and then adjust the required section of the track as required.
  • Ensure the required section of track is highlighted once you have tweaked the start/finish time.

Trim the Start and Finish

  • From the Edit menu select Remove Audio or Labels and then Trim Audio – just the required section of the track should now be displayed.

Note:  There is no need move the start of the remaining section of the track to zero as the white space before and after will be removed automatically.

Fade In

  • Click in the waveform area about 1 second before the end of the track.
  • From the Edit menu select Select and then Cursor to end of Track End.
  • From the Effect menu select Fade Out.

Fade Out

  • Click in the waveform area about 1 second into the track.
  • From the Edit menu select Select and then Track Start to Cursor.
  • From the Effect menu select Fade In.


  • From the File menu click Export and save the MP3 file as normal.

Find on Phone

  • Connect the phone to the PC (open File Explorer and the phone should be listed once connected).
  • Browse to the Ringtones folder and copy in the saved MP3 file.
  • On the Windows phone access Settings, Ringtones+Sounds, Ringtone and the imported MP3 file should appear in the list of ringtones under the Custom heading.

Note:  It is possible to convert other audio file types to MP3 using Audacity as long as the LAME plugin is used.  See the Audacity website for details:


Adobe Reader Deployment Useful Links

  • Command to extract the installer file AdbeRdr11000_en_US.exe to the C:\Temp folder:
    AdbeRdr11000_en_US.exe -nos_o”C:\Temp” -nos_ne



Administrative Templates for Windows 8.1 Update and Windows Server 2012 R2 Update 1

Procedure to follow to enable the new Administrative Templates for Windows 8.1 Update 1 and Windows Server 2012 R2 Update 1.

  • Install the .MSI on the Domain Controller (DC).
  • Once the install is done navigate to:  C:\Program Files (x86)\Microsoft Group Policy\Windows Server 2012\PolicyDefinitions to see the actual policy files.
  • On the DC create a new folder called PolicyDefinitions under C:\Windows\SYSVOL\domain\Policies.
  • Copy all the files from C:\Program Files (x86)\Microsoft Group Policy\Windows Server 2012\PolicyDefinitions to the C:\Windows\SYSVOL\domain\Policies\PolicyDefinitions, excluding any language folders that are not required.

Wait a few minutes and the new policies will be available for use.


SCCM 2007 Client Agent Installation Failure

This post documents my experiences with:

  • SCCM 2007 client installation failure
  • SCCM 2007 SMS Host Agent service will not start
  • SCCM 2007 client agents that stop working.

The post assumes the SCCM 2007 infrastructure is in-place and functional and the failures being experienced are not down to SCCM 2007 server configuration issues or network connectivity issues etc., they are just failures relating to individual client machine issues.

The Basics
  • Is the SMS Agent Host service running on the machine? If not start it.
  • You can run ccmsetup /uninstall and then re-install the client using your favoured method.
Install or Repair the Agent from the SCCM 2007 Console
  • Initiate a client push installation from the SCCM 2007 Management console to the target machine, (whether it is a new client or an existing client that is faulty) – ensuring the Repair option is selected in the Client Push Wizard.
  • Access the CCMSetup folder (depending on the OS this could be under the Windows, System32 or SysWOW64 folder) on the target machine and review the ClientMSI and the CCMSetup logs. If the installation was successful happy days, if not are there any clues in the logs why the install failed?
WMI – Rebuild the Repository.

The root of most SCCM client problems. The classic fix:

  • Set the WMI service to Disabled.
  • Stop the WMI service.
  • Take a backup copy of everything under the C:\Windows\System32\WBEM\Repository folder.
  • Delete everything under the C:\Windows\System32\WBEM\Repository folder.
  • Set the WMI service to Automatic and restart the service.
WMI Again – Corrupt Files
  • Set the WMI service to Disabled.
  • Stop the WMI service.
  • Take a copy of all the files under the C:\Windows\System32\WBEM folder.
  • Access a similar machine to the machine with the problem that has a working SCCM 2007 client.
  • Copy all the files (not the folders) from the C:\Windows\System32\WBEM folder and overwrite the equivalent files on the problematic machine.
  • Set the WMI service to Automatic and restart the computer.
WMI Yet Again – System Path Variable
  • Ensure the System Path Variable includes either %SystemRoot%\System32\WBEM or the specific path to the WBEM folder, e.g. C:\Windows\System32\WBEM.
  • If you need to add the entry restart the WMI and SMS Agent Host services.
SMS Certificates
  • Open the Certificates MMC for the Computer account of the affected machine.
  • Navigate to the SMS node in the Certificates console.
  • Check the expiration dates of the two SMS certificates. The year part of the date should about 100 years in the future, based on the date of the client install. If the year part of the date looks really strange (I have seen the year part as 7803, 9265) delete the certificates.
  • Restart (or most likely just start) the SMS Agent Host Service on the client machine.
Duplicate Machine Names in SCCM database

Because of the way we provision new and replacement machines where I work I often end up with duplicate machine names in the SCCM 2007 database/console. To remove the duplicates:

  • Create a query-based Collection to highlight the duplicate machine names (query to follow).
  • Ensure the ResourceID field is visible in the SCCM 2007 console.
  • Sort on the Machine Name field.
  • Delete the instance of the duplicate machine name that has the lowest ResourceID number.
  • Restart the SMS Host Agent service on the remaining instance.

This has only worked once for me and I can’t remember the exact circumstance when I tried it (might have been a duplicate GUID but not 100% sure).

  • Delete the C:\Windows\SMSCFG.ini and restart the SMS Agent Host service.
How do I know if an Existing Client is Faulty?

I use a number of query-based SCCM Collections to highlight either potentially faulty or missing SCCM 2007 client agents.
To follow.

How do I know an SCCM 2007 Agent is Active Again?

It can take a bit of time for current data about a “fixed” machine to appear in the SCCM 2007 console.  My quick check is just to look at the date/time stamp for the files in the CCMLogs folder on the client. If there is lots recent activity in lots of logs (maybe 20 or so logs have a very current time stamp) then it is likely the client is fixed.

Exchange 2013 SP1 Setup Fails – PowerShell Execution Policy Prerequisite Failure

Just done a clean install of Exchange 2013 SP1 and the prerequisite check fails with an error relating to the PowerShell Execution Policy.

The Root Cause

The Exchange setup stops the WMI service and the WMI service is required to query Active Directory. If the PowerShell Execution Policy is defined using a Group Policy object then the Exchange setup will not be able to verify the execution policy so setup fails.

The Fix

Temporarily disable the PowerShell Execution Policy using the Group Policy Management Editor.

  • Open the Group Policy Management console.
  • Navigate to the Default Domain Policy node and select Edit.

This opens the Group Policy Management Editor.

  • Navigate to Computer Configuration # Policies # Administrative Templates # Windows Components # Windows PowerShell.
  • In the details pane ensure the Turn on Script Execution is set to Not Configured.
  • On the Exchange server run GPUpdate /force.
  • Rerun Exchange setup.
  • Once the Exchange install is complete, re-enable the PowerShell Execution Policy Group Policy object to its previous setting. for more information.


VMware vSphere 5.5 Web Client Session Timeout

By default the VMware vSphere 5.5 Web Client session timeout is set to 30 minutes.   To change this setting so the client never times-out complete the following on the server hosting the Web Client service.

  • Open the file in the C:\ProgramData\VMware\vSphere Web Client folder.
  • Change the session timeout entry so it reads session.timeout = 0
  • Save and close the file.
  • Restart the vSphere Web Client service.