【问题标题】:is windows firewall on or off scriptwindows防火墙是打开还是关闭脚本
【发布时间】:2017-10-05 11:07:19
【问题描述】:

我有一个脚本可以在安装后设置 SQL Server。它检测 Windows 防火墙是否打开并将端口添加到 Windows 防火墙服务。

但是,如何真正确定它是否“真正”运行似乎非常令人困惑。

我认为通过检查服务是否正在运行'然后做事'就足够了,但似乎即使 Windows 防火墙关闭,服务仍然运行,因此添加 netsh 脚本部分的端口不必要地运行。

我还查看了注册表中的设置,即使服务正在运行但防火墙已关闭,它们也可以设置为开启。

任何指向可能是更好的方法的指针,以避免在没有真正需要的情况下运行部分脚本。

通常主要安装服务器 2008,一些 2012 和奇怪的 2016。谢谢。

sc query MpsSvc | find "RUNNING" >nul
IF %ERRORLEVEL% EQU 0 (goto firewall) ELSE (goto start)

【问题讨论】:

标签: windows batch-file cmd netsh


【解决方案1】:

禁用 Windows Defender 防火墙的正确方法是禁用 Windows Defender 防火墙配置文件并让服务继续运行。

那么……

使用批处理文件关闭:

@NetSh AdvFirewall Set AllProfiles State Off

使用批处理文件开启:

@NetSh AdvFirewall Set AllProfiles State On

使用批处理文件中的 Powershell 关闭:

@Powershell -C "Set-NetFirewallProfile -Profile Domain,Public,Private -Enabled False"

使用批处理文件中的 Powershell 开启:

@Powershell -C "Set-NetFirewallProfile -Profile Domain,Public,Private -Enabled True"

要判断状态,可以解析Show的结果:

 @NetSh AdvFirewall Show AllProfiles State|Find /I " ON">Nul&&(@Echo Is On)||@Echo Is Off

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-09-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多