netsh advfirewall set store gpo:% COMPUTERNAME% não funciona

3

Eu sou responsável por um grupo de computadores que processam dados altamente confidenciais. Eles não podem ser conectados à Internet ou até mesmo à rede da empresa, apenas uma unidade de rede. Então eu escrevi um arquivo de lote na unidade de rede e o executei em cada computador para aplicar consistentemente as configurações de segurança.

O arquivo em lote chama netsh exec com o seguinte script:

advfirewall
set store gpo = %COMPUTERNAME%
reset
set store local
reset

O problema é que a variável de ambiente %COMPUTERNAME% não resolve o nome real do computador, portanto, o GPO não é redefinido e há conflitos entre as configurações nos dois locais. Além disso, netsh advfirewall reset apenas redefine o local store e set store só pode ser executado a partir de um script netsh (o netsh advfirewall set store gpo direto no arquivo em lotes não funciona).

Como obtenho o set store para acessar o GPO da máquina em que o arquivo em lote está sendo executado? Ou há outra maneira de redefinir as configurações do GPO (para o Firewall do Windows com Segurança Avançada) na linha de comando? Eu entendo que essas configurações não estão armazenadas em Registry.pol .

    
por KFC 23.10.2014 / 03:39

1 resposta

4

Suspeito que você esteja tentando transmitir %COMPUTERNAME% para netsh diretamente. Não expande variáveis de ambiente. Deixe o shell expandir a variável para você, assim:

@echo off
SET F="%TEMP%\%RANDOM%.txt"

echo advfirewall>%F%
echo set store gpo = %COMPUTERNAME%>>%F%
echo reset>>%F%
echo set store local>>%F%
echo reset>>%F%

netsh -f %F%
del %F%

netsh acaba recebendo um script com a variável de ambiente expandida já existente.

    
por 23.10.2014 / 04:35