Untitled
unknown
plain_text
a year ago
1.8 kB
3
Indexable
Never
param ( [string]$rutaBase, [switch]$EliminarReglas ) # Función para crear reglas de Firewall para bloquear conexiones function CrearReglasDeFirewall { param ( [string]$rutaBase ) # Obtiene todos los archivos .exe de forma recursiva en la ruta base $exeFiles = Get-ChildItem -Path $rutaBase -Filter *.exe -File -Recurse # Itera a través de cada archivo .exe y crea reglas en el Firewall de Windows foreach ($file in $exeFiles) { $ruleName = "Block $($file.Name)" # Crea una regla para bloquear salidas New-NetFirewallRule -DisplayName $ruleName -Direction Outbound -Action Block -Program $file.FullName # Crea una regla para bloquear entradas New-NetFirewallRule -DisplayName $ruleName -Direction Inbound -Action Block -Program $file.FullName } Write-Host "Se han creado las reglas de Firewall para bloquear todos los archivos .exe en $rutaBase." } # Función para eliminar las reglas de Firewall creadas por el script function DeshacerCambiosDeFirewall { param ( [string]$rutaBase ) # Obtiene todas las reglas de Firewall creadas por el script $ruleNames = Get-NetFirewallRule | Where-Object { $_.DisplayName -like "Block *.exe" } # Elimina las reglas una por una foreach ($ruleName in $ruleNames) { Remove-NetFirewallRule -Name $ruleName.Name } Write-Host "Se han eliminado las reglas de Firewall creadas por el script en $rutaBase." } # Si se pasa la flag -EliminarReglas, llama a la función para eliminar las reglas if ($EliminarReglas) { DeshacerCambiosDeFirewall -rutaBase $rutaBase } # Si no, llama a la función para crear las reglas de Firewall else { CrearReglasDeFirewall -rutaBase $rutaBase }