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?
powershell
windows-firewall
c++
netsh
com
Serge Rogatch
la source
la source
Réponses:
Pour Windows 7, la manière de le faire est différente
d' ici
Si vous souhaitez utiliser PowerShell mais que vous devez cibler les deux versions du système d'exploitation, je dirais que l'écriture de 2 fonctions serait la plus simple, car vous semblez déjà savoir comment procéder pour Windows 8.
la source