5 votes

Comment ajouter des règles de pare-feu netsh, et pas seulement les remplacer ?

J'utilise un script pour définir des règles de pare-feu dans netsh.

netsh.exe advfirewall firewall set rule name="Block External IP's" new remoteip="$($ipArray[0])"

Je pensais que cet ensemble était utilisé pour ajouter la règle plutôt que de la remplacer. Cependant, il a écrasé les adresses IP précédentes de la liste et les a remplacées par la toute dernière adresse IP du tableau. Comment puis-je réécrire ceci afin qu'il ajoute aux règles plutôt que de les remplacer ? Merci beaucoup pour votre temps et votre aide.

6voto

Tex Hex Points 2342

Je ne suis pas sûr mais je suppose que vous utilisez PowerShell pour boucler le tableau. $IPArray et je veux ajouter chaque IP dans ce tableau pour être le IP à distance de la règle de pare-feu Bloquer les IP externes .

Si c'est correct, le problème est que netsh ne dispose pas de l'option permettant d'ajouter une IP, toute set remoteip= écrase l'entrée précédente. Par conséquent, vous écrasez l'IP distante à chaque itération de votre boucle.

Je pense que la solution est simple : faites une boucle sur le tableau comme précédemment, mais combinez toutes les entrées provenant de $IPArray à une chaîne de caractères, séparée par , . La chaîne de caractères devrait alors ressembler à ceci 192.168.1.1,52.3.7.8 .

Enfin, la question un netsh et spécifier cette chaîne comme paramètre de l'IP distante comme ceci (étant donné que vous nommez la variable RemoteIPString

netsh.exe advfirewall firewall set rule name="Block External IP's" new remoteip="$RemoteIPString"

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X