Report on Overlapping Boundaries in MEMCM

Having boundaries that overlap with other boundaries can be a royal pain in MEMCM if those boundaries are in different locations - unless identified and sorted out you can potentially have clients getting content from undesired sources - across the continent or even across the world in some cases! I prepared the following script that … Continue reading Report on Overlapping Boundaries in MEMCM

Using a LiteDB portable database with your PowerShell project

I was working on a PowerShell project recently where I needed to reference a large number of items - more than I wanted to add as an array or hash table in script, or even an external file like an XML document. So I searched for a portable, standalone database that I could distribute with … Continue reading Using a LiteDB portable database with your PowerShell project

Real world notes: In-place OS upgrade on Server 2012 R2 ConfigMgr distribution points

In my MEMCM primary site I had several distribution points that were still running Windows Server 2012 R2, so I decided to run an in-place OS upgrade on them to bring them up to Server 2019. After reading the MS Docs, I concluded this is a supported scenario and things would go smoothly. I was … Continue reading Real world notes: In-place OS upgrade on Server 2012 R2 ConfigMgr distribution points

HTML Report for SCCM Site Component Warnings and Errors

Just a quick one ­čÖé If you're like me you are too lazy busy to regularly check the component status of an SCCM Site Server for any issues, so why not get PowerShell to do it for you? The code below will email an html-formatted report of any site components that are currently in an … Continue reading HTML Report for SCCM Site Component Warnings and Errors

Create Collections for SCCM Client Installation Failures by Error Code

Ok, so in a perfect SCCM world you would never have any SCCM client installation failures and this post would be totally unnecessary. But in the real world, you are very likely to have a number of systems that fail to install the SCCM client and the reasons can be many. To identify such systems, … Continue reading Create Collections for SCCM Client Installation Failures by Error Code

Query for 32-bit or 64-bit Versions of Microsoft Office with ConfigMgr

Quick post - I needed to query for 64-bit versions of Microsoft Office installed on our clients. Usually, the 32-bit version gets installed as this is Microsoft's recommendation due to add-in compatibility etc. But in some cases, the 64-bit version is required to take advantage of additional RAM. I couldn't find anything useful online to … Continue reading Query for 32-bit or 64-bit Versions of Microsoft Office with ConfigMgr

Inventory Local Administrator Privileges with PowerShell and ConfigMgr

Any security-conscious enterprise will want to have visibility of which users have local administrator privilege on any given system, and if you are an SCCM administrator then the job of gathering this information will likely be handed to you! However, this task may not be as simple as it seems. Gathering the membership of the … Continue reading Inventory Local Administrator Privileges with PowerShell and ConfigMgr

PowerShell Custom Class for Querying a SQL Server

Here is a handy custom class I created for PowerShell 5+ that can query an SQL database. The class creates a SQL connection using the┬áSystem.Data.SqlClient.SqlConnection class in .Net, and gives you full access to this object for information or to manipulate parameters. The class can also query the list of tables and views available in … Continue reading PowerShell Custom Class for Querying a SQL Server

Export / Backup Compliance Setting Scripts with PowerShell

In my SCCM environment I have a number of Compliance Settings that use custom scripts for discovery and remediation, and recently it dawned on me that a lot of time has been spent on these and it would be good to create a backup of those scripts. It would also be useful to be able … Continue reading Export / Backup Compliance Setting Scripts with PowerShell