Como anexar netsh regras de firewall, não apenas substituir

4

Estou usando um script para definir regras de firewall no netsh.

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

Eu achei que esse conjunto foi usado para anexar a regra em vez de substituí-la. No entanto, ele escreveu sobre o ip anterior na lista e o substituiu pelo último ip da matriz. Como posso reescrever isso para que ele seja adicionado às regras em vez de substituí-las? Muito obrigado pelo seu tempo e ajuda.

    
por Zombian 03.08.2012 / 21:02

1 resposta

4

Não tenho certeza, mas acho que você usa o PowerShell para fazer um loop sobre a matriz $IPArray e deseja adicionar todos os IP dessa matriz a IP remoto da regra de firewall Bloqueie IPs externos .

Se isso estiver correto, o problema é que netsh não tem a opção de adicionar um IP, qualquer comando set remoteip= sobrescreve a entrada anterior. Portanto, você sobrescreve o IP remoto a cada iteração do seu loop.

Acho que a solução é fácil: faça um loop sobre o array como antes, mas combine todas as entradas de $IPArray em uma string, separadas por , . A string, então, deve se parecer com isso 192.168.1.1,52.3.7.8 .

Por fim, emita um netsh comando e especifique essa sequência como o parâmetro IP remoto assim (dado o nome da variável RemoteIPString

netsh.exe advfirewall firewall set rule name="Block External IP's" new remoteip="$RemoteIPString"
    
por 03.08.2012 / 21:53