04/03/2008
Gestire le porte di Windows Firewall
Per gestire l'apertura o la chiusura di una porta in Windows Firewall è sufficiente utilizzare l'oggetto COM HNetCfg.FwMgr, in dotazione dei sistemi Windows XP SP2 e superiori.
Recuperare la lista delle porte aperte per il profilo corrente, ad esempio, è semplice come eseguire questo script:
$firewall = New-Object -ComObject HNetCfg.FwMgr
$firewall.LocalPolicy.CurrentProfile.GloballyOpenPorts |
Format-Table Name, Port, Protocol
Name Port Protocol
---- ---- --------
Windows Media Connect 10280 17
Windows Media Connect 10281 17
Windows Media Connect 10282 17
ActiveSync Service 26675 6
Il valore di Protocol, decodificabile utilizzando MSDN, corrisponde naturalmente alla tipologia di protocollo per il quale ciascuna porta è stata aperta (TCP/UDP).
Aggiungere una porta alla lista di quelle aperte comporta la creazione di un oggetto COM HNetCfg.FWOpenPort, da aggiungere alla collezione analizzata in precedenza.
$port = New-Object -ComObject HNetCfg.FWOpenPort
$port.Name = "Secondary web server"
$port.Port = 8080
$port.Protocol = 6 # (Valore per il protocollo TCP)
$firewall.LocalPolicy.CurrentProfile.GloballyOpenPorts.Add($port)
La rimozione di una porta, invece, ne richiede semplicemente il numero ed il codice del protocollo:
$firewall.LocalPolicy.CurrentProfile.GloballyOpenPorts.Remove(8080, 6)