ConfigMgr Report – Software Information by Title by Collection

Files Included in ZIP File (Download HERE:
Documentation (This File)
A Multi Software versions Inventory Report.rdl – MAIN REPORT FILE
SoftwareCountsDetailVersion.rdl – SUPPORT REPORT FILE

Assumptions, you have MS Report Builder installed, you have access to your CM Report Server, and can Save & Modify reports on your CM Report Server, and some knowledge of how Datasets & DataSources work.

This is a Report to Search Specified Collection for Specified Software


Collections List Can Be Modified & Software List Can be modified… More Later. Choose a Collection & Software, then click View Report

 When when you click on a Version or Software Name, you’ll see the computers with software that matches the Software Name or Version Number.




Once you click on the Name or Version, you’ll get forward to another page with those machines

Information includes: PC Name, Software Name, Version, Last Logon Name, Email Address for User, Computer info, and the last time that computer had a CM Hardware Inventory Scan.

To install the reports, once you have saved both of them to your Configuration Manager SSRS, you’ll need to create a new data source in the report and fix the datasets to use the correct data source.

The Main Report uses “SoftwareCountsDetailVersion” (Linked on the “Software Name” & “Versions” Text Box)



 (Linked on both “Software Name” &  “Version_Number” Text Box)


To modify the Available software in the Drop Down List:  Modify the Query in the “SoftwareSelection” Dataset.
These will correspond to the @SoftSelect Parameter which creates the Drop Down list.

To Change the Collections, Modify CollectionDropDown Dataset

Replace the CollectionID numbers with the ones you want (SMS00001 = All Systems)


Please provide any feedback that will help improve this documentation or reports.




Chrysanth WebStory Published by WebStory

Windows 10 Customizations during OSD

This is a collection of “Tweaks” I make to our Windows 10 deployments to improve user experience and do branding.  I’ll admit upfront that most of these ideas are not orginal to me, I’ve borrowed and adapted several things for my own needs.  When possible, I post a link to the blog post that helped me.  I hope you find useful this compilation of Tweaks. (Download of scripts / files used are at bottom)
– Please Note, if you try to copy / paste some scripts from this page, the “quote” marks typically get messed up and would need to be fixed… or just use the scripts in the download

First things, I’ve got a “OSDWindows10Scripts” package, with several subfolders that I keep all of the customizations in, which I can then reference during OSD.
I’m going to go through them folder by folder to explain which each does and how it’s used in the Task Sequence.

DefaultAppAssoc (Change Default Applications for Extensions)
This Customization was developed by Johan
Info taken from:
Currently I used this to set .PDF to Adobe Reader (Instead of Edge) and make Internet Explorer as the Default browser.

In the TS, it looks like this:
Dism.exe /online /Import-DefaultAppAssociations:DefaultAppAssoc\Win10DefaultAppAssoc.xml


Desktop WallPaper (Set the Default WallPaper)
Info taken From:
nothing fancy here, we’re just over writing the default Windows Wallpaper image with our own.

cmd.exe /c DesktopWallpaper\Load_DefaultWallPaper.cmd


LockScreen (Sets the LockScreen Image)
Adapted from:


REM Copy Wallpaper locally
xcopy LockScreen\LockWall.jpg C:\Cabs\LockWallpaper\ /Y /S

REM Import Registry Key to set the background
reg import LockScreen\LockScreenWallpaper.reg
reg import LockScreen\LockScreenWallpaper.reg /reg:64


Registry File:
Windows Registry Editor Version 5.00



As you can see, all that happens is the LockScreen WallPaper is copied local, and a registry setting points to it.


MyComputerDesktopIcon (Adds the “My Computer” Icon to the Desktop)

Windows Registry Editor Version 5.00




MyComputerNameIcon (Changes the Name of “My Computer” to the actual name of the PC)
You can see an Example lower down in the “Windows10ExplorerTweaks” Section

This has been handy, so users have an easier time finding their computer names when contacting support, We just tell them to look on their desktop, and the Icon for “My Computer” actually says “Computer Name = %COMPUTERNAME%”
Script File (Load_ComputerName.cmd)
MyComputerNameIcon\setacl.exe -on “HKCR\CLSID\{20D04FE0-3AEA-1069-A2D8-08002B30309D}” -ot reg -actn setowner -ownr “n:Administrators”
MyComputerNameIcon\SetACL.exe -on “HKCR\CLSID\{20D04FE0-3AEA-1069-A2D8-08002B30309D}” -ot reg -actn ace -ace “n:Administrators;p:full”
MyComputerNameIcon\SetACL.exe -on “HKCR\CLSID\{20D04FE0-3AEA-1069-A2D8-08002B30309D}” -ot reg -actn ace -ace “n:SYSTEM;p:full”
reg import MyComputerNameIcon\ComputerName.reg /reg:64

Windows Registry Editor Version 5.00




OneDriveRemoveShellFolder (Removes the OneDrive Folder on the Left Pane in Explorer)

Idea adapted from:

I don’t actually use these files, but keep them for documenation.



RemoveDefaultApps (Remove MOST of the Win 10 Default Apps, but leaves what we wanted, Calc, Alarms, Weather, Maps)
Adapted from:

Script: —–



Purpose: Remove built in apps specified in list

Pre-Reqs: Windows 10




# Main Routine


# Get log path. Will log to Task Sequence log folder if the script is running in a Task Sequence

# Otherwise log to \windows\temp



$tsenv = New-Object -COMObject Microsoft.SMS.TSEnvironment

$logPath = $tsenv.Value(“LogPath”)




Write-Host “This script is not running in a task sequence”

$logPath = $env:windir + “\temp”


$logFile = $logPath\$($myInvocation.MyCommand).log”

# Start logging

Start-Transcript $logFile

Write-Host “Logging to $logFile

# List of Applications that will be removed

$AppsList = “Microsoft.XboxGameCallableUI”,“Microsoft.XboxIdentityProvider”,“Windows.ContactSupport”,“microsoft.windowscommunicationsapps”,“Microsoft.BingNews”,“Microsoft.Getstarted”,“Microsoft.BingFinance”,“Microsoft.XboxApp”,“Microsoft.SkypeApp”,“Microsoft.ZuneVideo”,“Microsoft.ZuneMusic”,“Microsoft.WindowsPhone”,“Microsoft.People”,“Microsoft.Office.OneNote”,“Microsoft.MicrosoftSolitaireCollection”,“Microsoft.MicrosoftOfficeHub”,“Microsoft.BingSports”,“Microsoft.3DBuilder”,“Microsoft.WindowsFeedback”

ForEach ($App in $AppsList){

$Packages = Get-AppxPackage | Where-Object {$_.Name -eq $App}

if ($Packages -ne $null)


Write-Host “Removing Appx Package: $App

foreach ($Package in $Packages)


Remove-AppxPackage -package $Package.PackageFullName





Write-Host “Unable to find package: $App


$ProvisionedPackage = Get-AppxProvisionedPackage -online | Where-Object {$_.displayName -eq $App}

if ($ProvisionedPackage -ne $null)


Write-Host “Removing Appx Provisioned Package: $App

remove-AppxProvisionedPackage -online -packagename $ProvisionedPackage.PackageName




Write-Host “Unable to find provisioned package: $App



# Stop logging





This folder contains Pinned Site Shortcuts to frequently used Websites, or ones I want them to know about.
The Application Catalog, Google (Named Internet Explorer)
I named it Internet Explorer, to use it as an Icon in the Start Menu for IE (As IE is not able to be Pinned in Windows 10)
more info in the next Section.

In the Sample Files, I’ve changed the Application Catalog to point to MS.  Just Replace it with a Pinned Site Shortcut to your Application Catalog.

I just copy these .website files into the Start Menu.
xcopy StartMenuShortcuts\* “%SystemDrive%\ProgramData\Microsoft\Windows\Start Menu\Programs” /Q /Y /I



StartScreenTiles (Create Custom Start Menu)

Info taken from:

On your reference Machine, configure the Start Menu how you would like it to be (Note, Internet Explorer 11 will not Stay Pinned to your Start Menu, I’ve created a Workaround by using an IE pinned Shortcut file called Internet that I copy into the Program Menu during OSD) (Last Section)

Once you’ve created your Start Menu how you like:

Elevated Powershell
Export-StartLayout -Path “c:\CMSource\StartMenuLayout.bin” (Then Copy that .bin file to your Package)

In my folder stucture, I have a couple of different versions, my main one is v2, but if I have to make changes for new applications, I’ll add v3.  It’s nice to have version controls. (v1 had office 2013 instead of office 2016, so If I deploy a machine with Office 2013, I can use a variable to use v1 startmenu with Office 2013 shortcuts instead)

During OSD, just use a Powershell command to import the Start Menu: powershell.exe Import-StartLayout -LayoutPath StartScreenTiles\v2\StartMenuLayout.bin -MountPath C:\



UserPictures (This will replace the default user.png file with whatever corporate one you want)

This I did because of Branding, our Communication Department provided me with the .png logo files, which I then had to modify to look good in Windows 10 “Profile CIRCLE” they use.  Because it’s a CIRCLE, it would cut off the edges, so I used Paint.NET to increase the Canvas Size so when Windows trims the edges to fit the CIRCLE window, it doesn’t cut off any of the logo.

Once it englarges the Canvas, you’ll have to Delete the “White Space”


Once you have your Company Logos Created, you can then use a simple copy command.
xcopy UserPictures\* “%SystemDrive%\ProgramData\Microsoft\User Account Pictures” /Q /Y /I


Windows 10 Explorer Tweaks (Cleans up Explorer, sets the “Launch To”)
Idea adapted from here:

This will clean up Explorer, goes straight to this, instead of using the Quick Access view.

I then use a separate Step in the TS to import Each Key:


RegFiles: (You can download them from the Site too:
Windows Registry Editor Version 5.00


Windows Registry Editor Version 5.00

; Created by: Shawn Brink
; Tutorial:


Windows Registry Editor Version 5.00

; Created by: Shawn Brink
; Tutorial:


Windows Registry Editor Version 5.00

; Created by: Shawn Brink
; Tutorial:




I hope you find this useful, if you have any comments, improvements, give me a shout out on Twitter @gwblok
Download the OSDWindows10Scripts Folder here:


Chrysanth WebStory Published by WebStory

New blog thanks to peer pressure

Just finished up a great MMS #mmsmoa conference today.  I was challenged to blog several solutions for Windows deployments, among other useful things I’ve come up with over the past few years.  So at their request, I’ve resurrected my old domain name and will now use it to blog about technology.

I’ve created this instance of WordPress and blog post from my phone, so I’m going to keep this short.

Look for several posts to come soon about Windows 10 deployments, among other OSD centered content.

Thanks to all the MVPs that made it to MN for MMS.