public/Test-CmSiteSystemPorts.ps1
<#
.SYNOPSIS Test if Required Ports are open .DESCRIPTION Test if required ports per site system role are open from the local host .PARAMETER SiteCode 3-character ConfigMgr Site Code .PARAMETER PrimaryServer ConfigMgr Primary site server or SMS Provider FQDN .EXAMPLE Test-CmSiteSystemPorts -SiteCode "P01" -PrimaryServer "cm01.contoso.local" .NOTES .OUTPUTS #> function Test-CmSiteSystemPorts { [CmdletBinding()] param ( [parameter(Mandatory=$True)][string][ValidateLength(3,3)]$SiteCode, [parameter(Mandatory=$True)][string][ValidateNotNullOrEmpty()]$PrimaryServer ) $sitelist = Get-CmSiteSystemPorts -SiteCode $SiteCode -PrimaryServer $PrimaryServer Write-Host "this needs more work to control the port queries per direction (inbound/outbound)" foreach ($item in $sitelist) { $server = $item.ComputerName $portdata = $item.Port -split ':' $porttype = $portdata[0] $portnum = $portdata[1] try { if ($porttype -eq 'TCP') { Test-NetConnection -ComputerName $server -Port $portnum } else { Write-Host "test UDP connection to port $portnum" #Test-NetConnectionUDP } } catch { Write-Error $_.Exception.Message } } } |