4

Я использую скрипт для установки правил брандмауэра в Netsh.

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

Я думал, что этот набор был использован для добавления правила, а не его замены. Тем не менее, он записал поверх предыдущих ip в списке и заменил его на самый последний ip в массиве. Как я могу переписать это так, чтобы оно добавлялось к правилам, а не заменяло их? Большое спасибо за ваше время и помощь.

1 ответ1

4

Я не уверен, но я предполагаю, что вы используете PowerShell для циклического перебора массива $IPArray и хотите добавить каждый IP-адрес в этом массиве в качестве удаленного IP -адреса правила брандмауэра Блокировать внешние IP-адреса.

Если это правильно, проблема в том, что netsh не имеет возможности добавить IP, любая set remoteip= перезаписывает предыдущую запись. Поэтому вы перезаписываете удаленный IP-адрес при каждой итерации цикла.

Я думаю , что решение легко: цикл по массиву , как и раньше, но объединить все элементы из $IPArray в строку, , Строка должна выглядеть следующим образом 192.168.1.1,52.3.7.8 .

Наконец, введите одну команду netsh и задайте эту строку в качестве параметра удаленного IP, как этот (если вы называете переменную RemoteIPString

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

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .