您好,JC。您知道,如果在 Microsoft 工作有缺点的话(如果我们的经理正在看这段话,我们要赶紧加一句:在 Microsoft 工作没有缺点),那就是:无论您做什么,有些人会很高兴您这样做了,而有些人则不会这么高兴您这样做。随 Service Pack 2 发行的 Windows 防火墙就是一个很好的例子。在安装 Service Pack 2 时,默认情况下会打开 Windows 防火墙。这使很多人很高兴;毕竟,不需要做什么,他们现在就能够抵御黑客、解密高手和不入流的小角色了。
当然,其他人(尤其是那些已经运行了某种防火墙程序的人)在发现防火墙被默认启用时就不是非常兴奋了,这也是实情。不像热奶油圣代冰淇淋或百万美元钞票,两个防火墙并不一定比一个好。因此,如果您原来已经安装并配置了防火墙,最好删除 Windows 防火墙。
那么,可以使用脚本关闭 Windows 防火墙吗?是的,可以,但是有一个需要注意的重要事项,我们一会儿讨论。现在,下面的脚本可以禁用 Windows 防火墙:
Set objFirewall = CreateObject("HNetCfg.FwMgr")
Set objPolicy = objFirewall.LocalPolicy.CurrentProfile
objPolicy.FirewallEnabled = FALSE
正如您所看到的,该脚本内容并不多,只有三小行代码。我们首先创建一个 HNetCfg.FwMgr 对象的实例(很容易记住的名字吧?),然后创建对防火墙的 CurrentProfile 的对象引用。完成这些操作,我们只需将 FirewallEnabled 属性设置为 False,防火墙就被关闭了。如果以后您决定将防火墙再打开,则只需要将 FirewallEnabled 的值设置为 True 就可以了。
如果您正在想:“哇,那也太简单了,一定有问题”。嗯,遗憾的是,您说对了:确实有问题。无论是好是坏(我们已经听到了好坏两方面相冲突的观点),无法远程管理 Windows 防火墙;这意味着此脚本只能在您需要禁用防火墙的本地计算机上运行。如果您仅需要在几台计算机上禁用防火墙,则可以从一台计算机到另一台计算机依次运行该脚本;或者,您可以将其作为计算机启动脚本运行。这肯定不是最方便的方法,但您没有太多的选择:甚至没有任何命令行或 GUI 工具来远程管理防火墙。除了登录或计算机启动脚本,远程管理的唯一其他选择就是使用“组策略”。
如果您想要了解有关 Windows 防火墙以及如何使用脚本管理它的详细信息,可以查看我们的“脚本故事”专栏的 I married Bigfoot.Oh:and Service Pack 2 Made My Computers Disappear 。
哦,是的,我们确实拿着薪水终日无所事事,苦想此类标题。您为什么问这个?