Windows-Firewall
netsh advfirewall 設置儲存 gpo:%COMPUTERNAME% 不起作用
我負責一組處理高度機密數據的電腦。它們無法連接到 Internet 甚至公司網路,只能連接到網路驅動器。所以我在網路驅動器上寫了一個批處理文件並在每台電腦上執行它以一致地應用安全設置。
批處理文件
netsh exec
使用以下腳本呼叫:advfirewall set store gpo = %COMPUTERNAME% reset set store local reset
問題是環境變數
%COMPUTERNAME%
無法解析為實際的電腦名稱,因此沒有重置 GPO,並且兩個位置的設置存在衝突。此外,netsh advfirewall reset
僅重置local
儲存並且set store
只能從 netsh 腳本執行(netsh advfirewall set store gpo
批處理文件中的直接不起作用)。如何
set store
訪問執行批處理文件的機器的 GPO?或者是否有另一種方法可以從命令行重置 GPO 設置(對於具有高級安全性的 Windows 防火牆)?我了解這些設置未儲存在Registry.pol
.
我懷疑你試圖直接傳遞
%COMPUTERNAME%
給netsh
。它不會擴展環境變數。讓 shell 為您擴展變數,如下所示:@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
最終得到一個已經包含擴展環境變數的腳本。