Run 64-bit PowerShell via SCCM 2007 Advertisement
A colleague came across a problem today. He could run a SCDPM PowerShell script from PowerShell console successfully but could not run it when packaged it in SCCM. We soon found out it’s because SCCM 2007 is a 32-bit app and DPM PowerShell snapin is only available for 64-bit PowerShell because we could not run [...]
Powershell Function: Get-AllDomains (in a forest)
I wrote this Powershell function today as part of a script I’m working on. It is to get a list of Active Directory domains within an Active Directory forest using ADSI: I don’t have any child domains in my test environment, but if you run this on a domain member computer, it will list all [...]
SCCM Health Check PowerShell Script Updated to Version 3.3
I have updated the SCCM Health Check Script again. The latest version is now 3.3. Below is what’s been updated since my last post for version 3.1: Fixed the bug where when using DOTNET sending emails to multiple recipients, it only sends to the first recipient from the list. It now zip the txt attachment [...]
PowerShell Script to locate SCCM objects in SCCM console
There are many object types in SCCM that supports folders in the console. Even though the object can be easily located using the search function, often we need to find out which folder does a particular object (i.e. package, advertisement, etc) reside. At work, we use folders to separate objects for different business units and [...]
PowerShell Functions: Get IPV4 Network Start and End Address
I wrote 2 PowerShell functions today: Get-IPV4NetworkStartIP and Get-IPV4NetworkEndIP. Input: Network IP address in CIDR notation Format Output: The start or end IP (System.Net.IPAddress object). Get-IPV4NetworkStartIP: Get-IPV4NetworkEndIP: Usage: Get-IPV4NetworkStartIP “192.168.1.0/24” Get-IPV4NetworkEndIP “192.168.1.0/24” Examples:
Updated: SCCM Health Check PowerShell Script
I have updated the SCCM Health Check Script that I have originally posted here. Download Version 3.1 Here. Changes: 1. The script can now utilise Powershell Remoting to check inboxes sizes. It requires PS-Remoting to be enabled on all SCCM Site Servers. This dramatically reduced the execution time of the script in a multi-tier environment. [...]
Problem with DNS name resolution when using System.Net.DNS class
I recently ran into a problem when writing a PowerShell script to perform DNS Name resolution using .NET class System.Net.DNS (http://msdn.microsoft.com/en-us/library/system.net.dns.aspx). I noticed when I’m using System.Net.DNS to perform reverse lookup (GetHostByAddress method), even though the PTR record is missing in DNS, it is still able to resolve the name. It looks like this method [...]
PowerShell Script: SCCM Health Check

30/01/2012: This script has been updated to version 3.5. Details can be found HERE. The download link on this article has also been updated to version 3.5. 26/05/2011: Version 3.3 has been posted here. The download link to the script on this post is also updated to the new version 3.3. 21/04/2011: Please be advised [...]
How to locate SCCM Collection Object based on the Collection ID
Often, I found it’s hard to locate the Collection object in the SCCM console if you only know the Collection ID. Couple of weeks ago I ran into a situation where I need to modify the settings of a bunch of collection objects and all I knew was the Collection ID. I wrote a script [...]
Get SCCM site roles using Powershell
You can run the following on the site server to find out the servers holding each SCCM role: $SMSProvider = get-wmiobject sms_providerlocation -namespace root\sms -filter “ProviderForLocalSite = True” $SiteCode = $SMSProvider.SiteCode $ProviderMachine = $SMSProvider.Machine get-wmiobject -Class SMS_SystemResourceList -NameSpace root\sms\site_$SiteCode -Computername $ProviderMachine | format-list RoleName,ServerRemoteName,SiteCode