76 lines
2.2 KiB
PowerShell
76 lines
2.2 KiB
PowerShell
function Remove-NetshExcludedPortRange {
|
|
<#
|
|
.SYNOPSIS
|
|
This function is used to remove a specific starting and number of ports to the system.
|
|
This is a very thing wrapper around the netsh tool for removing IPv4 ports.
|
|
|
|
.PARAMETER Start
|
|
This is the starting port number.
|
|
|
|
.PARAMETER NumberOfPorts
|
|
This is the count of ports in the given range.
|
|
|
|
.PARAMETER End
|
|
This is the end port number when providing a range.
|
|
|
|
.EXAMPLE
|
|
Remove-NetshExcludedPortRange -Start 50 -End 55
|
|
|
|
.EXAMPLE
|
|
Remove-NetshExcludedPortRange -Start 50 -NumberOfPorts 6
|
|
#>
|
|
[CmdletBinding(DefaultParameterSetName = 'NumberOfPorts')]
|
|
[OutputType([bool])]
|
|
param(
|
|
[Parameter(Mandatory = $true)]
|
|
[ValidateNotNullOrEmpty()]
|
|
[Alias("StartPort")]
|
|
[int]$Start,
|
|
[Parameter(Mandatory = $true, ParameterSetName = 'NumberOfPorts')]
|
|
[ValidateNotNullOrEmpty()]
|
|
[Alias("Range")]
|
|
[int]$NumberOfPorts,
|
|
[Parameter(Mandatory = $true, ParameterSetName = 'EndPorts')]
|
|
[ValidateNotNullOrEmpty()]
|
|
[Alias("EndPort")]
|
|
[int]$End
|
|
)
|
|
|
|
$logLead = (Get-LogLeadName)
|
|
|
|
if ($Start -le 0) {
|
|
throw "$logLead : Start port value must be greater than 0"
|
|
}
|
|
|
|
if ($PSCmdlet.ParameterSetName -eq 'NumberOfPorts') {
|
|
if ($NumberOfPorts -eq $Start) {
|
|
throw "$logLead : NumberOfPorts can not equal the parameter for Start"
|
|
}
|
|
|
|
if ($NumberOfPorts -le 0) {
|
|
throw "$logLead : NumberOfPorts value must be greater than 0"
|
|
}
|
|
}
|
|
|
|
if ($PSCmdlet.ParameterSetName -eq 'EndPorts') {
|
|
if ($End -le $Start) {
|
|
throw "$logLead : End port value must be larger than Start port value"
|
|
}
|
|
|
|
if ($End -le 0) {
|
|
throw "$logLead : End port value must be greater than 0"
|
|
}
|
|
|
|
$NumberOfPorts = $End - $Start + 1
|
|
}
|
|
|
|
Write-Host "$logLead : Deleting ipv4/tcp excludedPortRange for Start port [$Start] for [$NumberOfPorts] ports"
|
|
$output = netsh int ip delete excludedportrange tcp $Start $NumberOfPorts
|
|
|
|
if ($output -match "error") {
|
|
Write-Error "$logLead : Failed to set the requested range.`r`n$output"
|
|
return $false
|
|
}
|
|
|
|
return $true
|
|
} |