Windows防火墙是打开还是关闭脚本



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

但是,如何真正确定它是否真正运行似乎很困惑。

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

我还研究了注册表中的设置,即使服务正在运行,但防火墙已关闭,也可以设置为ON。

任何指针也许是一种更好的方法,可以避免在不真正需要的情况下运行脚本的部分。

通常安装服务器2008,主要是2012年&奇数2016年。谢谢。

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

禁用Windows Defender防火墙的适当方法是禁用Windows Defender Firewall配置文件并使服务运行。

所以…

使用批处理文件关闭:

@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

相关内容

  • 没有找到相关文章

最新更新