Règles de pare-feu Windows dupliquées (pare-feu Netsh AdvFirewall)

J’ai remarqué que lorsque nous créons une règle de parefeu via le pare-feu netsh advfirewall firewall , elle peut être exécutée plusieurs fois, créant plusieurs règles de pare-feu identiques.

Existe-t-il un moyen de vérifier si la règle de pare-feu existe avant de tenter d’en créer une nouvelle?

Vérifiez si la règle “myrule” n’existe pas

 netsh advfirewall firewall show rule name="myrule" | findstr "no rules" 

J’ai réussi à faire en sorte que cela passe par les applets de commande de sécurité réseau de PowerShell, le code suivant vérifie une règle de pare-feu nommée avec un port local spécifié, s’il trouve une entrée, elle ne crée pas la règle. S’il ne trouve pas une entrée, il créera la règle

 $firewallPort = "" $firewallRuleName = "" write-host "Checking for '$firewallRuleName' firewall rule on port '$firewallPort' now...." if ($(Get-NetFirewallRule –DisplayName $firewallRuleName | Get-NetFirewallPortFilter | Where { $_.LocalPort -eq $firewallPort })) { write-host "Firewall rule for '$firewallRuleName' on port '$firewallPort' already exists, not creating new rule" } else { write-host "Firewall rule for '$firewallRuleName' on port '$firewallPort' does not already exist, creating new rule now..." New-NetFirewallRule -DisplayName $firewallRuleName -Direction Inbound -Profile Domain,Private,Public -Action Allow -Protocol TCP -LocalPort $firewallPort -RemoteAddress Any write-host "Firewall rule for '$firewallRuleName' on port '$firewallPort' created successfully" }