是Windows防火墙开启或关闭脚本
问题描述:
我有一个安装SQL Server后的脚本。它检测Windows防火墙是否打开并将端口添加到Windows防火墙服务。是Windows防火墙开启或关闭脚本
但是,如何真正地确定它是否“真正”运行似乎很混乱。
我认为通过检查服务是否正在运行'然后做或不做'就足够了,但即使Windows防火墙关闭服务仍然运行,所以端口添加netsh脚本部分运行不必要。
我也查看了注册表中的设置,即使服务正在运行但防火墙关闭,它们也可以设置为打开。
任何指针可能是一个更好的方法,以避免运行脚本部分而不需要。
通常安装服务器2008大多数,一些2012年&奇2016年。谢谢。
sc query MpsSvc | find "RUNNING" >nul
IF %ERRORLEVEL% EQU 0 (goto firewall) ELSE (goto start)
答
禁用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"
Tur N于使用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
你可能会调查什么的'的netsh命令advfirewall'会产生。另见https://community.spiceworks.com/how_to/71739-check-windows-firewall-status-via-command-line – lit