ConfigMgr Client TCP Port Tester

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.

13 thoughts on “ConfigMgr Client TCP Port Tester

  1. Hi, , The script ( under Windows 10 1909) does not work for me, since it lacks modules, which must be included ? thanks

  2. 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)

      1. It’s weird. It’s no longer working for me. Do you know why the script would throw this error?

  3. 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

  4. It worked for me today. You will need select each of the files in the various folder and unlock before running. As its files/script are internet downloads and it’s not signed.

    1. That was the problem! Thank you! I unblocked the zip file before I extracted it and it worked.

Leave a comment

This site uses Akismet to reduce spam. Learn how your comment data is processed.