On a normal Management point it is pretty straight forward to test if the management point is working by browsing to these addresses:
But if you try to do that on a HTTPS-enabled management point as a normal user you will get an error with access denied. This is because the CM client uses a computer certificate to communicate with the management point but when you are browsing using your favorite browser as a normal user you don’t have access to this certificate.
But using PowerShell as an admin and running the command Invoke-WebRequest we can specify a certificate to use.
Running the following PowerShell cmd will list all certificates in the computer “personal store”:
Get-ChildItem -Path "cert:\LocalMachine\My
The certificate you need to find should be a certificate used for Client Auth and from the template you specified setting up you CM in HTTPS mode. Once you have the correct cert you can run the following command:
$cert = Get-ChildItem -Path "cert:\LocalMachine\My\<ThumbprintOfCert>"
Invoke-WebRequest -Uri "https://<mp_server_name>/sms_mp/.sms_aut?mplist" -Certificate $cert
One thing I noticed if that you try and run these command from a client that allows TLS 1.0 or TLS 1.1 against an MP that is running on Windows Server 2019 it will fail. This is because WS 2019 only accepts TLS1.2 traffic. To force PowerShell and Invoke-WebRequest to use TLS1.2 the following line must be specified before you run the above commands:
[Net.ServicePointManager]::SecurityProtocol = [Net.SecurityProtocolType]::Tls12
This is only valid for the current PowerShell session and must be specified every time you start a new session.
I have also created a script that can be found here:
The script only outputs True or False in the default setting. If you want more detailed information specify the –Detail switch and it will output something like this:
It is based on a script created by Jeff Hicks (https://www.petri.com/testing-uris-urls-powershell) so shout out to him.
If you have any feedback let me know on https://twitter.com/matbg