我负责处理高度机密数据的一组计算机.它们无法连接到Internet甚至是公司网络,只能连接到网络驱动器.所以我在网络驱动器上写了一个批处理文件,并在每台计算机上运行它以始终如一地应用安全设置.
advfirewall set store gpo = %COMPUTERNAME% reset set store local reset
问题是环境变量%COMPUTERNAME%无法解析为实际的计算机名称,因此GPO不会重置,并且两个位置的设置之间存在冲突.此外,netsh advfirewall reset仅重置本地存储,而set store只能从netsh脚本运行(批处理文件中的直接netsh advfirewall set store gpo不起作用).
如何设置存储以访问运行批处理文件的计算机的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最终得到一个已经包含扩展环境变量的脚本.