J'ai besoin d'implémenter un outil qui ajoute et supprime les règles dans le pare-feu Windows. Les règles peuvent être entrantes ou sortantes, interdisant la communication sur des protocoles, des adresses IP et des ports spécifiés. Je ne parviens pas à décider de la conception des options suivantes, à ma connaissance, à utiliser:
- PowerShell, comme décrit par exemple dans https://technet.microsoft.com/en-us/library/jj554906(v=wps.630).aspx . Le problème avec cette option est que (corrigez-moi si je me trompe), il semble que cela ne soit pas pris en charge par Windows 7, alors que mon outil doit fonctionner sous Windows 7, Windows 8 (.1) et, de manière souhaitable, des versions ultérieures de Windows. De plus, je ne suis pas autorisé à utiliser C #, tandis que PowerShell n'intègre pas le C ++, sauf (éventuellement, je ne suis pas sûr) via l'appel du processus PowerShell, en lui donnant des options en ligne de commande et en lecture / écriture à partir de / vers sa sortie / entrée. ruisseaux.
- pare-feu "netsh advfirewall firewall". Le problème avec cette option est que Windows 8.1 indique que le contexte "netsh advfirewall" est obsolète et peut être supprimé des versions ultérieures de Windows. Je crains donc que, de cette façon, mon outil ne fonctionne plus sous Windows 9 ou 10.
- Interfaces COM du pare-feu Windows, comme dans ces exemples https://msdn.microsoft.com/en-us/library/windows/desktop/dd339604(v=vs.85).aspx . Le codage C ++ requis n’est pas un problème, même s’il peut prendre plus de temps que l’utilisation de PowerShell ou de la ligne de commande (pare-feu netsh advfirewall).
Quelle option serait la meilleure décision de conception pour ajouter / supprimer des règles de pare-feu Windows? Existe-t-il d'autres options ou avantages / inconvénients des options que j'ai énumérées?