如何使用python禁用Windows防火墙
我正在尝试为我正在工作的一个小项目编写自动化程序。 在此过程中,我需要使用python禁用Windows防火墙(对于每个Windows版本)(我更喜欢activepython,因为它已经安装) 我找了很多答案,但没有找到适合我需要的答案 我发现这个网站: 但问题是,当我从控制面板检查时 正在禁用防火墙如何使用python禁用Windows防火墙,python,windows,firewall,activepython,Python,Windows,Firewall,Activepython,我正在尝试为我正在工作的一个小项目编写自动化程序。 在此过程中,我需要使用python禁用Windows防火墙(对于每个Windows版本)(我更喜欢activepython,因为它已经安装) 我找了很多答案,但没有找到适合我需要的答案 我发现这个网站: 但问题是,当我从控制面板检查时 正在禁用防火墙 有人能帮我解决这个问题吗?最好的方法是使用WMI: import wmi,os c = wmi.WMI("WinMgmts:\root\Microsoft\HomeNet") for obj
有人能帮我解决这个问题吗?最好的方法是使用
WMI
:
import wmi,os
c = wmi.WMI("WinMgmts:\root\Microsoft\HomeNet")
for obj in c.HNet_ConnectionProperties():
print obj
print obj.IsFirewalled
obj.IsFirewalled = False
obj.Put_()
当然,要做到这一点,您需要以管理员身份运行该程序
希望这有帮助
Jason。最好的方法是使用
WMI
:
import wmi,os
c = wmi.WMI("WinMgmts:\root\Microsoft\HomeNet")
for obj in c.HNet_ConnectionProperties():
print obj
print obj.IsFirewalled
obj.IsFirewalled = False
obj.Put_()
当然,要做到这一点,您需要以管理员身份运行该程序
希望这有帮助
Jason.最简单的方法是让另一个程序为您完成工作。在本例中,netsh.exe有一组Windows Vista和更高版本使用的。例如:
import subprocess
subprocess.check_call('netsh.exe advfirewall set publicprofile state off')
默认配置文件为“domainprofile”、“privateprofile”和“publicprofile”,状态为“开”或“关” 最简单的方法是让另一个程序为您完成工作。在本例中,netsh.exe有一组Windows Vista和更高版本使用的。例如:
import subprocess
subprocess.check_call('netsh.exe advfirewall set publicprofile state off')
默认配置文件为“domainprofile”、“privateprofile”和“publicprofile”,状态为“开”或“关” MSDN文章详细介绍了通过UI和编程控制Windows防火墙的方法。它们是:
- 注册表设置位于
(本地设置)和HKLM\SYSTEM\CurrentControlSet\Services\SharedAccess\Parameters\
(组策略设置)HKLM\SOFTWARE\Policys\Microsoft\WindowsFirewall\
- 使用这些设置的设施:
- COM接口
HNetCfg.FwMgr
(netsh防火墙
)netsh高级防火墙
- WMI
winmgmts:root/Microsoft/HomeNet
(除非手动创建,否则不存在)%windir%\Inf\Netfw.Inf
- COM接口
firewall.cpl
反映本地注册表设置(或覆盖组策略设置,如果存在)和当前活动的配置文件(有关预定义配置文件以及如何选择配置文件,请参阅XP/2003和Vista+的“Windows防火墙配置文件确定”部分
Python可以使用上述任何一种工具。尽管其他工具(组策略,
.reg
文件,netsh
命令行)可能更方便,但这取决于您的任务(例如,netsh
自动选择活动配置文件)。MSDN文章详细介绍了控制Windows防火墙的方法,包括用户界面和编程方式。它们是:
- 注册表设置位于
(本地设置)和HKLM\SYSTEM\CurrentControlSet\Services\SharedAccess\Parameters\
(组策略设置)HKLM\SOFTWARE\Policys\Microsoft\WindowsFirewall\
- 使用这些设置的设施:
- COM接口
HNetCfg.FwMgr
(netsh防火墙
)netsh高级防火墙
- WMI
winmgmts:root/Microsoft/HomeNet
(除非手动创建,否则不存在)%windir%\Inf\Netfw.Inf
- COM接口
firewall.cpl
反映本地注册表设置(或覆盖组策略设置,如果存在)和当前活动的配置文件(有关预定义配置文件以及如何选择配置文件,请参阅XP/2003和Vista+的“Windows防火墙配置文件确定”部分
Python可以使用上述任何一种工具。尽管其他工具(组策略,
.reg
文件,netsh
命令行)可能更方便,但这取决于您的任务(例如,netsh
自动选择活动配置文件)。我对这段代码有点问题,您能解释一下您在做什么吗?我需要外部模块吗?我对这个代码有点小问题,你能解释一下你在做什么吗?我是否需要外部模块?请说明“您的需求”,以便我们能够猜测什么可能“适合”他们。1) 您是否需要停止/禁用Windows防火墙服务或将其设置设置为“关闭”,如Firewall.cpl
中所示?如果是后者-适用于所有网络接口还是仅适用于特定网络接口?2) 你想达到什么目标?可能有比Python程序更好的方法(如组策略或常规命令行)。netsh.exe在Windows 10中对我有效,例如子进程。check_调用('netsh.exe advfirewall set publicprofile state off')
。默认配置文件为“domainprofile”、“privateprofile”和“publicprofile”,状态为“开”或“关”。@ivan_pozdeev-我需要将其设置为“关”,如防火墙中所示。请说明“您的需要”,以便我们能够猜测什么可能“适合”他们。1) 您是否需要停止/禁用Windows防火墙服务或将其设置设置为“关闭”,如Firewall.cpl
中所示?如果是后者-适用于所有网络接口还是仅适用于特定网络接口?2) 你想达到什么目标?可能有比Python程序更好的方法(如组策略或常规命令行)。netsh.exe在Windows 10中对我有效,例如子进程。check_调用('netsh.exe advfirewall set publicprofile state off')
。默认配置文件为“domainprofile”、“privateprofile”和“publicprofile”,状态为“开”或“关”。@ivan_pozdeev-我需要将其设置为“关”,如firewall.cplThi中所示