AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • 主页
  • 系统&网络
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • 主页
  • 系统&网络
    • 最新
    • 热门
    • 标签
  • Ubuntu
    • 最新
    • 热门
    • 标签
  • Unix
    • 最新
    • 标签
  • DBA
    • 最新
    • 标签
  • Computer
    • 最新
    • 标签
  • Coding
    • 最新
    • 标签
主页 / server / 问题 / 545495
Accepted
CIA
CIA
Asked: 2013-10-12 11:45:07 +0800 CST2013-10-12 11:45:07 +0800 CST 2013-10-12 11:45:07 +0800 CST

如何通过脚本或自动化关闭 Windows 7 防火墙?

  • 772

这是关于在将机器加入域之前在机器上工作的问题,虽然我很想依赖 GPO,但目前这不是一个选择。

在我工作的环境中,防火墙策略是使用来自 Total Endpoint Solution 的第 3 方防火墙应用程序,因此我必须禁用默认的 Windows 防火墙以防止冲突。我使用在想象过程结束时运行的脚本或在未重新映像的系统上手动运行的脚本来执行此操作。有一段时间,我能够使用以下方法来管理它:

netsh advfirewall set allprofiles state off

但是,由于某种原因,它停止了工作。所以,我发现我需要清除本地安全策略(手动):

Local Security Policy MSC > Windows Firewall with Advanced Security
Right-Click Windows Firewall with Advanced Security - Local Group Policy Object
Clear Policy

这是我用来避免手动执行的脚本:

secedit /configure /db reset /cfg securityprofile

这两个步骤的组合工作了大约一个月,然后,没有明显的原因,它停止工作。

我开始测试注册表黑客来实现我所需要的,它给了我好坏参半的结果。我有两组需要更改配置文件的密钥;对于本地配置文件:

[HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\WindowsFirewall]
[HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\WindowsFirewall\DomainProfile]
"EnableFirewall"=dword:00000000
[HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\WindowsFirewall\PrivateProfile]
"EnableFirewall"=dword:00000000
[HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\WindowsFirewall\PublicProfile]
"EnableFirewall"=dword:00000000

对于域配置文件:

[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\services\SharedAccess\Parameters\FirewallPolicy]
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\services\SharedAccess\Parameters\FirewallPolicy\DomainProfile]
"EnableFirewall"=dword:00000000
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\services\SharedAccess\Parameters\FirewallPolicy\PublicProfile]
"EnableFirewall"=dword:00000000
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\services\SharedAccess\Parameters\FirewallPolicy\StandardProfile]
"EnableFirewall"=dword:00000000

我遇到的问题是本地配置文件在防火墙打开的情况下不断重新生成原始设置。我试过了:

  • a)应用两个注册表黑客
  • b) 重启
  • 结果在新成像的机器上)没有运气
  • 用于测试的旧机器上的结果)很好

  • a) 应用本地策略注册表黑客

  • b) 重启
  • 结果在新成像的机器上)没有运气
  • 用于测试的旧机器上的结果)很好

  • a) 使用 secedit 清除本地安全策略

  • b)应用两个注册表黑客
  • c) 重启
  • 结果在新成像的机器上)没有运气
  • 用于测试的旧机器上的结果)很好

  • a) 使用 secedit 清除本地安全策略

  • b)应用本地策略注册表黑客
  • c) 重启
  • 结果在新成像的机器上)没有运气
  • 用于测试的旧机器上的结果)很好

我的目标是通过脚本/自动化禁用 Windows 防火墙。有什么想法吗?

注意:这是在将机器加入域之前。如果我从 MSC 手动清除本地安全策略,那么注册表黑客将起作用。 netsh仍然无法工作,我不想手动清除每台成像机器的策略。

windows-7
  • 3 3 个回答
  • 17879 Views

3 个回答

  • Voted
  1. MDMarra
    2013-10-12T13:52:58+08:002013-10-12T13:52:58+08:00

    我想先说一下,我强烈敦促任何禁用 Windows 防火墙的人花时间了解它的工作原理以及如何通过 GPO 操作它,而不是直接将其关闭。没有理由关闭基于主机的防火墙。Microsoft 制作了出色的工具来管理防火墙规则,您应该使用它们。


    这篇 TechNet 文章概述了禁用 Windows 防火墙的正确方法。不要像其他人告诉您的那样关闭服务,这会使您的服务器进入不受支持的配置,并在各种难以排除故障的情况下导致不稳定。

    从 TechNet 文章中,netsh 语法是

    netsh advfirewall 设置 配置文件 状态关闭

    其中配置文件的有效值为:AllProfiles、CurrentProfile、DomainProfile、PrivateProfile 或 PublicProfile。

    您似乎已经尝试过这个确切的命令,但它不起作用。您还推送了此命令操作的注册表项。基于它过去可以工作而现在不能工作的事实,并且这些机器在您执行此操作时未加入域,因此只有一个结论:

    您的图像中有一些东西可以覆盖这一点。故事结局。由于我们没有您的图像可供查看,因此我们实际上无法为您提供特定的修复,除了“您做得对,如果它不起作用,则说明您的图像中的某些内容配置错误”

    老实说,如果您必须secedit /configure /db reset /cfg securityprofile在图像上运行所有其他内容,那么您最好按照您想要的方式制作一个新图像。

    • 7
  2. Simon Catlin
    2013-10-12T11:57:33+08:002013-10-12T11:57:33+08:00

    Errr,整理你的 GPO,并在那里禁用它。或者,至少,在堆栈顶部(最高优先级)创建一个新 GPO 并禁用防火墙。然后回去整理您的其他 GPO。本地安全策略被 GPO 覆盖,您写入的注册表的第一个区域专门用于 GPO 处理。

    简短的回答......组策略。长答案...组策略。(对不起!)

    • 6
  3. Best Answer
    CIA
    2013-10-16T08:31:34+08:002013-10-16T08:31:34+08:00

    发现了问题。在安装我的映像后,MDT 在其任务序列的末尾应用了本地组策略,这禁止访问对本地安全策略的任何更改,即使是管理员(通过命令提示符命令、注册表等)也是如此。这很奇怪,因为它是 MDT 附带的默认策略。无论如何,删除此任务序列允许我使用 netseh 关闭防火墙:

    netsh advfirewall set allprofiles state off
    

    作为说明;我同意每个人的观点,即您不应禁用防火墙服务,也不应关闭防火墙。

    • 2

相关问题

  • Windows 7 总是附加 VHD

  • Windows 7 上的虚拟 PC 和网络共享

  • 在 Windows XP 上安装 Windows 7 引导加载程序

  • 如何在 Windows 中自定义管道?

  • IIS 7.5 (Windows 7) - HTTP 错误 401.3 - 未经授权

Sidebar

Stats

  • 问题 205573
  • 回答 270741
  • 最佳答案 135370
  • 用户 68524
  • 热门
  • 回答
  • Marko Smith

    新安装后 postgres 的默认超级用户用户名/密码是什么?

    • 5 个回答
  • Marko Smith

    SFTP 使用什么端口?

    • 6 个回答
  • Marko Smith

    命令行列出 Windows Active Directory 组中的用户?

    • 9 个回答
  • Marko Smith

    什么是 Pem 文件,它与其他 OpenSSL 生成的密钥文件格式有何不同?

    • 3 个回答
  • Marko Smith

    如何确定bash变量是否为空?

    • 15 个回答
  • Martin Hope
    Tom Feiner 如何按大小对 du -h 输出进行排序 2009-02-26 05:42:42 +0800 CST
  • Martin Hope
    Noah Goodrich 什么是 Pem 文件,它与其他 OpenSSL 生成的密钥文件格式有何不同? 2009-05-19 18:24:42 +0800 CST
  • Martin Hope
    Brent 如何确定bash变量是否为空? 2009-05-13 09:54:48 +0800 CST
  • Martin Hope
    cletus 您如何找到在 Windows 中打开文件的进程? 2009-05-01 16:47:16 +0800 CST

热门标签

linux nginx windows networking ubuntu domain-name-system amazon-web-services active-directory apache-2.4 ssh

Explore

  • 主页
  • 问题
    • 最新
    • 热门
  • 标签
  • 帮助

Footer

AskOverflow.Dev

关于我们

  • 关于我们
  • 联系我们

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve