Skip to content

Instantly share code, notes, and snippets.

@LuisPalacios
Created August 27, 2024 06:11
Show Gist options
  • Save LuisPalacios/f1013d3a0cc0d540b94df2d7d42c2f40 to your computer and use it in GitHub Desktop.
Save LuisPalacios/f1013d3a0cc0d540b94df2d7d42c2f40 to your computer and use it in GitHub Desktop.
Comprueba si un puerto está abierto en el Firewall de localhost
# Script: VerificarPuertoFirewall.ps1
# Descripción: Este script comprueba si un puerto específico está permitido (abierto) en el firewall de localhost.
# Autor: LuisPa
#
# Uso:
# .\VerificarPuertoFirewall.ps1 -Puerto <NúmeroDePuerto>
#
# Ejemplo de uso:
# .\VerificarPuertoFirewall.ps1 -Puerto 22
#
# El script devolverá un mensaje indicando si el puerto está permitido o bloqueado en el firewall local.
#
# Requisitos: PowerShell 3.0 o superior
param (
[Parameter(Mandatory=$true, HelpMessage="Introduce el número de puerto que deseas comprobar.")]
[int]$Puerto
)
function Verificar-Puerto-Firewall {
param (
[int]$Puerto
)
# Obtener todas las reglas de firewall para el puerto especificado
$Reglas = Get-NetFirewallRule | Where-Object {
($_ | Get-NetFirewallPortFilter).LocalPort -eq $Puerto
}
# Comprobar si existen reglas que permitan el puerto
$PuertoPermitido = $false
foreach ($Regla in $Reglas) {
if ($Regla.Enabled -eq "True" -and $Regla.Action -eq "Allow") {
$PuertoPermitido = $true
break
}
}
# Mostrar el resultado
if ($PuertoPermitido) {
Write-Output "El puerto $Puerto está permitido (abierto) en el firewall de localhost."
} else {
Write-Output "El puerto $Puerto no está permitido (bloqueado) en el firewall de localhost."
}
}
# Llamada a la función Verificar-Puerto-Firewall pasando el parámetro del puerto.
Verificar-Puerto-Firewall -Puerto $Puerto
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment