This is a little tool I created for testing the required TCP ports on SCCM client systems. It will check that the required inbound ports are open and that the client can communicate to its management point, distribution point and software update point on the required ports. It also includes a custom port checker for testing any inbound or outbound port.
The default ports are taken from the Microsoft documentation, but these can be edited in the case that non-default ports are being used, or additional ports need to be tested.
The tool does not currently test UDP ports.

Requirements
- Windows 8.1 + / Windows Server 2012 R2 +
- PowerShell 5
- .Net Framework 4.6.2 minimum
Download
Download from the GitHub.
Usage
To use the tool, extract the ZIP file, right-click the ‘ConfigMgr Client TCP Port Tester.ps1′ and run with PowerShell.
Checking Inbound Ports
Select Local Ports in the drop-down box and click GO to test the required inbound ports.
Checking Outbound Ports
Select the destination in the drop-down box (ie management point, distribution point, software update point).

Enter the destination server name if not populated by the defaults and click GO. The tool will test ICMP connectivity first, then port connectivity.

Custom Port Checking
To test a custom port, select Custom Port Test from the drop-down box. Enter the port number, direction (ie Inbound or Outbound) and destination (Outbound only). Click Add to add the test to the grid. You can add several tests. Click GO.

Adding Default Servers
You can pre-populate server names by editing the Defaults.xml file found in the defaults directory. For example, to add a default management point:
<ConfigMgr_Port_Tester>
<ServerDefaults>
<ManagementPoint>
<Value>SCCMMP01</Value>
</ManagementPoint>
Editing / Adding Default Ports
You can also edit, add or remove the default ports in the Defaults.xml file. For example, to add port 5985 in the default local port list:
<PortDefaults>
<LocalPorts>
<Port Name="80" Purpose="HTTP Communication"/>
<Port Name="443" Purpose="HTTPS Communication"/>
<Port Name="445" Purpose="SMB"/>
<Port Name="135" Purpose="Remote Assistance / Remote Desktop"/>
<Port Name="2701" Purpose="Remote Control"/>
<Port Name="3389" Purpose="Remote Assistance / Remote Desktop"/>
<Port Name="5985" Purpose="WinRM"/>
</LocalPorts>
Source Code
Source code can be found in my GitHub repo.
Hi, , The script ( under Windows 10 1909) does not work for me, since it lacks modules, which must be included ? thanks
No additional modules are required.
Just great! As a none-Network Guy, it saved my day migrating a lot of VDI Base Images to a new SCCM Server. Perfect!
This script has been a lifesaver in the past but suddenly I run into errors when I run ConfigMgr Client TCP Port Tester.ps1. The error is:
You cannot call a method on a null-valued expression.”
ConfigMgr Client TCP Port Tester.ps1:61 char:15
$UI.$($_.Name) = $UI.Window.FindName($_.Name)
Hmm still working for me…
It’s weird. It’s no longer working for me. Do you know why the script would throw this error?
Maybe the script was modified accidentally? Have you tried the version on the Microsoft Store? Search for ConfigMgr Client TCP Port Tester.
It’s not working for me:
Add-Type : Could not load file or assembly ‘file:///C:\Users\MyUser\Desktop\New folder\bin\System.Windows.Interactivity.dll’ or one of its dependencies. Operation is not supported. (Exception from HRESULT:
0x80131515)
At C:\Users\MyUser\Desktop\New folder\ConfigMgr Client TCP Port Tester.ps1:49 char:1
+ Add-Type -Path “$Source\bin\System.Windows.Interactivity.dll”
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ CategoryInfo : NotSpecified: (:) [Add-Type], FileLoadException
+ FullyQualifiedErrorId : System.IO.FileLoadException,Microsoft.PowerShell.Commands.AddTypeCommand
Have you tried the version from the Microsoft Store? Search for ConfigMgr Client TCP Port Tester.