Búsqueda de sitios web

Test-FirewallAllServer: Consulta el estado del Firewall en todos los servidores Windows


He experimentado que muchas personas desactivan deliberadamente el firewall de Windows. No quieren molestarse si algo no funciona como se esperaba. Pero no hay nada de qué preocuparse, porque funciona como debería. Más bien sospecho que algunos administradores carecen de conocimientos. De cualquier manera, obtengamos una lista de todas las computadoras de dominio que ejecutan Windows Server y averigüemos si tienen su firewall habilitado. Es una pequeña función que muestra los buenos en verde. Los rojos son los malos ?

En mi artículo anterior Configuración del Firewall de Windows con PowerShell, describí algunas tareas pendientes básicas del firewall. Ahora vamos un paso más allá con una función que prueba todas las configuraciones de Firewall de todos los servidores Windows unidos a un dominio...

La meta

Un comando simple. Sin parámetros. Una comprobación rápida de todos los servidores Windows unidos a dominios. Ese es el objetivo de esta publicación de blog. Aquí vamos:

En el trabajo había gente especialmente valiente. No se puede comprar coraje. ?

Prueba de función-FirewallAllServer

Si te gusta lo anterior, sigue leyendo. A continuación encontrará el código.

Notas:

  • Esto fue probado en Windows Server 2012 y superior
  • Asegúrese de ejecutar el comando en un controlador de dominio o una computadora con RSAT (ADDS) instalado
  • Asegúrese de tener un entorno de Active Directory limpio (sin cuentas de computadora con Windows Server huérfanas). El script contiene el parámetro erroraction que ignora los servidores apagados.
  • Asegúrese de que la administración remota esté habilitada en todos los servidores (desde Windows Server 2012 está habilitada de forma predeterminada)

Abra PowerShell ISE. Copie el código en su sesión.

function Test-FirewallAllServer {
$servers=(Get-ADComputer -Filter * -Properties Operatingsystem | Where-Object {$_.operatingsystem -like "*server*"}).Name
$check=Invoke-Command -ComputerName $servers {Get-NetFirewallProfile -Profile Domain | Select-Object -ExpandProperty Enabled} -ErrorAction SilentlyContinue
$line="__________________________________________________________"
$line2="=========================================================="
$en=$check | ? value -EQ "true"
$di=$check | ? value -EQ "false"
If ($en -ne $null) {
Write-Host ""; Write-Host "The following Windows Server have their firewall enabled:" -ForegroundColor Green; $line; Write-Output ""$en.PSComputerName"";Write-Host ""
}
If ($di -ne $null) {
Write-Host ""; Write-Host "The following Windows Server have their firewall disabled:" -ForegroundColor Red ; $line; Write-Output ""$di.PSComputerName""; Write-Host ""
}
If ($di -eq $null) {
Write-Host $line2; Write-Host "All Windows Servers have it's firewall enabled" -ForegroundColor Green; Write-Host ""
}
If ($en -eq $null) {
Write-Host $line2; Write-Host "All Windows Servers have it's firewall disabled" -ForegroundColor Red; Write-Host ""
}
}

Hazlo permanente

Cree una carpeta en C:\Program Files\Windows PowerShell\Modules. Asigne a la carpeta el nombre Test-FirewallAllServer. Guarde el script allí como archivo psm1. Asegúrese de que el nombre del directorio y el nombre del archivo sean iguales.

Cierre Windows PowerShell. Abra PowerShell nuevamente. El comando ahora está disponible para todos los usuarios.

Es todo por hoy. Disfrute descubriendo la configuración del Firewall de Windows...

Artículos relacionados