我负责处理高度机密数据的一组计算机。 他们不能连接到互联网,甚至连公司networking,只有一个networking驱动器。 所以我在networking驱动器上写了一个batch file,然后在每台计算机上运行它以始终如一地应用安全设置
batch file使用以下脚本调用netsh exec :
advfirewall set store gpo = %COMPUTERNAME% reset set store local reset
问题是环境variables%COMPUTERNAME%无法parsing为实际的计算机名称,因此GPO未被重置,并且两个位置中的设置之间存在冲突。 此外, netsh advfirewall reset只重置local存储和set store只能从netsh脚本运行(batch file中的直接netsh advfirewall set store gpo不起作用)。
如何获取set store以访问运行batch file的计算机的GPO? 还是有另一种方法来从命令行重置GPO设置(用于具有高级安全性的Windows防火墙)? 我明白这些设置不存储在Registry.pol 。
我怀疑你试图直接将%COMPUTERNAME%传递给netsh 。 它不扩展环境variables。 让shell为你扩展variables,如下所示:
@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最终得到一个扩展的环境variables脚本已经在它。