如何禁用Windows防火墙? [英] How can I disable Windows Firewall?

查看:91
本文介绍了如何禁用Windows防火墙?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

Windows 7、8.1

Windows 7, 8.1

尝试禁用 Windows防火墙时出现异常.我尝试使用管理员权限来执行此操作.但是对于Windows防火墙启用,我没有同样的问题.

I get an exception when I try to disable Windows Firewall. I try to do it with admin rights. But I haven't the same problem for Windows Firewall enabling.

Type NetFwMgrType = Type.GetTypeFromProgID("HNetCfg.FwMgr", false);
INetFwMgr mgr = (INetFwMgr)Activator.CreateInstance(NetFwMgrType);

// Get the Windows Firewall status
bool firewallEnabled = mgr.LocalPolicy.CurrentProfile.FirewallEnabled;

// it works fine...
String frw_status = "Windows Firewall is " + (firewallEnabled ?
    "enabled" : "disabled");

// Enable or disable firewall.

// I get the exception here when I try to disable Windows Firewall.
// I have not problem when I try to enable Windows Firewall (it works fine).
//
// Exception message:
//   An unhandled exception of type 'System.NotImplementedException' 
//   occurred in net_sandbox.exe
//   Additional information: Method or operation is not emplemented yet..
mgr.LocalPolicy.CurrentProfile.FirewallEnabled = false;

如何禁用Windows防火墙?

How can I disable Windows Firewall?

推荐答案

似乎您正在使用Windows XP SP2 COM API,该API在Windows Vista/7和更高版本上存在问题.

It seems you're using Windows XP SP2 COM API, which is known to have issues on Windows Vista/7 and newer versions.

建议您使用较新的API:

It's recommended that you use the newer API:

( 我还没有测试过 )

(I have not tested this)

Type netFwPolicy2Type = Type.GetTypeFromProgID("HNetCfg.FwPolicy2");
INetFwPolicy2 mgr = (INetFwPolicy2)Activator.CreateInstance(netFwPolicy2Type);

// Gets the current firewall profile (domain, public, private, etc.)
NET_FW_PROFILE_TYPE2_ fwCurrentProfileTypes = (NET_FW_PROFILE_TYPE2_)mgr.CurrentProfileTypes;

// Get current status
bool firewallEnabled = mgr.get_FirewallEnabled(fwCurrentProfileTypes);
string frw_status = "Windows Firewall is " + (firewallEnabled ?
"enabled" : "disabled");

// Disables Firewall
mgr.set_FirewallEnabled(fwCurrentProfileTypes, false);

这篇关于如何禁用Windows防火墙?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆