如何将一个服务加入到windowsXp sp2防火墙的例外中?

zhmvb 2009-02-20 12:07:53
有俩个问题:
1、用代码如何检测操作系统自带的防火墙是否打开
2、用代码如何实现把制定程序或服务添加到操作系统自带防火墙的例外中?
...全文
125 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
leighjian 2011-08-15
  • 打赏
  • 举报
回复
mark
liujiayu10 2009-02-20
  • 打赏
  • 举报
回复
4楼的方法似乎可行
lxf2000104 2009-02-20
  • 打赏
  • 举报
回复
顶下,有用到的时候也好找!
wesleyluo 2009-02-20
  • 打赏
  • 举报
回复
学习帮顶下。
cppfaq 2009-02-20
  • 打赏
  • 举报
回复

class Program {
static void Main(string[] args) {
Console.WriteLine(IsEnabled());
AddToException(@"c:\myprogram.exe", "My Program");
Console.ReadLine();
}

public static bool IsEnabled() {
RegistryKey key = Registry.LocalMachine.OpenSubKey(KEY_BASE);
object value = key.GetValue("EnableFirewall");
if(value == null) {
return false;
}
return true;
}

public static void AddToException(string path, string dispName) {
RegistryKey key = Registry.LocalMachine.OpenSubKey(KEY_BASE);
key = key.OpenSubKey(@"AuthorizedApplications\List",true);
key.SetValue(path,string.Format("{0}:*:Enabled:{1}",path,dispName));
}

private static readonly string KEY_BASE =
@"SYSTEM\ControlSet001\Services\SharedAccess\Parameters\FirewallPolicy\StandardProfile";
}
宝_爸 2009-02-20
  • 打赏
  • 举报
回复
编程控制windows防火墙的exception list.
http://blog.csdn.net/findcaiyzh/archive/2009/01/31/3855370.aspx
cppfaq 2009-02-20
  • 打赏
  • 举报
回复
使用RegistryKey修改注册表即可

防火墙设置在注册表中的保存方式
(1)防火墙的设置保存在

[HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001

\Services\SharedAccess\Parameters\FirewallPolicy]中,其他的设置都相对

它,下面我就不写这一上串字符,而用相对位置来表示了。
(2)启用(关闭)防火墙:键[StandardProfile] 数值名称 EnableFirewall

数值类型 REG_DWORD 数值数据 1-启用防火墙 0-关闭防火墙
(2)不允许例外:键[StandardProfile] 数值名称 DoNotAllowExceptions 数

值类型 REG_DWORD 数值数据 1-不允许例外 0-允许例外
(3)防火墙阻止程序时是否显示通知:键[StandardProfile] 数值名称

DisableNotifications 数值类型 REG_DWORD 数值数据 1-显示通知 0-不显示通


(4)例外中的程序列表:
键 [DomainProfile\AuthorizedApplications\List]和

[StandardProfile\AuthorizedApplications\List]
数值类型 REG_SZ
数值名称 程序的完整路径文件名
数值数据 程序完整路径文件名:网络范围:是否允许访问网络:显示名称
(a)程序完整路径文件名:例如,d:\windows\avserve2.exe
(b)网络范围:
(b.1)任何计算机(无限制):*
(b.2)仅我的网络(子网):LocalSubNet
(b.3)自定义列表:以逗号分隔的IP地址,子网或同时包括IP地址、子网的列

表(例如:192.168.114.201,192.168.114.201/255.255.255.0)
(c)是否允许访问网络:Enabled 允许 Disabled 禁止
(d)显示名称:显示在例外列表中的名称,一般为程序版本信息中的产品名称

或者不包括扩展名的文件名
EveryCase 2009-02-20
  • 打赏
  • 举报
回复
顶~~~~~~~~~
myiiid 2009-02-20
  • 打赏
  • 举报
回复
感觉三楼的方法简单好用.学习!
登录失败:未授予用户在此计算机上的请求登录类型。无法访问。您可能没有权限使用网络资源。请与这台服务器的管理员联系以查明您是否有访问权限。 如果出现“xxx计算机无法访问,您可能没有权限使用网络资源。请与这台服务器的管理员联系以查明您是否有访问权限”的报错,这可能是计算机的安全设置被改动过了,导致目标计算机无法被访问。可以采取以下步骤解决: 1. 取消简单文件共享。 打开“我的电脑”,在菜单上选择“工具”->“文件夹选项”->“查看”,清除“使用简单文件共享(推荐)”的选择。 2. 启用guest账户。 右键点击“我的电脑”,选择“管理”,选择“本地用户和组”->“用户”,右键点击Guest用户,选“属性”,清除“帐户已停用”的选择。 3. 在组策略设置,安全策略。 开始--运行--gpedit.msc--计算机配置--windows设置--安全设置--本地策略--“用户权力指派”,双击右边的“从网络访问此计算机”,保证其有Everyone,双击左边的“拒绝从网络访问此计算机”,保证其是空的。 4. 选择左边的“本地策略”->“安全选项”, a.确认右边的“网络访问:本地帐户的共享与安全模式”为“经典”; b.确认右边的“Microsoft网络客户:为通讯启用数字签名(总是)”为“已停用”; c.确认右边的“Microsoft网络客户:为通讯启用数字签名(如果服务器允许)”为“已启用”; d.确认右边的“Microsoft网络服务器:为通讯启用数字签名(总是)”为“已停用”; e.确认右边的“Microsoft网络服务器:为通讯启用数字签名(如果服务器允许)”为“已启用”。 5.正确配置网络防火墙 1>很多机器安装了网络防火墙,它的设置不当,同样导致用户无法访问本机的共享资源,这时就要开放本机共享资源所需的NetBIOS端口。笔者以天网防火墙为例,在“自定义IP规则”窗口“允许局域网的机器使用我的共享资源”规则,最后点击“保存”按钮,这样就开放了NetBIOS端口 。 2>关闭windows自带防火墙。 6.合理设置用户访问权限 网络很多机器使用 NTFS文件系统,它的ACL功能(访问控制列表)可以对用户的访问权限进行控制,用户要访问这些机器的共享资源,必须赋予相应的权限才行。如使用Guest账号访问该机器的CPCW共享文件夹,右键点击该共享目录,选择“属性”,切换到“安全”标签页,然后将Guest账号添加到用户列表,接着指定Guest的访问权限,至少要赋予“读取”和“列出文件夹目录”权限。如果想让多个用户账号能访问该共享目录,只需要添加Eeryone账号,然后赋予“读取”和“列出文件夹?.. 7、网络协议配置问题, A、网络协议的安装和设置 1.在WinXP安装NetBEUI协议 对的,你没有看错,就是要在WinXP安装NetBEUI协议。微软在WinXP只支持TCP/IP协议和NWLink IPX/SPX/NetBIOS兼容协议,正式宣布不再支持NetBEUI协议。但是在建立小型局域网的实际使用,使用微软支持的两种协议并不尽如人意。比如,在解决网上邻居慢问题的过程,笔者采用了诸多方法后网上邻居的速度虽然好一点,但还是慢如蜗牛;另外,在设置多块网卡的协议、客户和服务绑定时,这两种协议还存在BUG,多块网卡必须同时绑定所有的协议(除NWLink NetBIOS)、客户和服务,即使你取消某些绑定重启后系统又会自动加上,这显然不能很好地满足网络建设的实际需要。而当笔者在WinXP安装好NetBEUI协议后,以上两个问题都得到圆满的解决。 在WinXP安装光盘的“\\valueADD\\MSFT\\NET\\NETBEUI”目录下有3个文件,其“NETBEUI.TXT”是安装说明,另外两个是安装NetBEUI协议所需的文件。安装的具体步骤如下: 复制“NBF.SYS”到“%SYSTEMROOT%\\SYSTEM32\\DRIVERS\\”目录; 复制“NETNBF.INF”到“%SYSTEMROOT%\\INF\\”目录; 在网络连接属性单击“安装”按钮来安装NetBEUI协议。 注:%SYSTEMROOT%是WinXP的安装目录,比如笔者的WinXP安装在F:\\Windows目录下,就应该用F:\\Windows来替换%SYSTEMROOT%。 2.在WinXP设置好其它网络协议 建议,如果你的局域网不用上Internet便只需要安装NetBEUI协议就行了。在小型局域网(拥有200台左右电脑的网络)NetBEUI是占用内存最少、速度最快的一种协议,NWLink IPX/SPX/NetBIOS兼容协议则应当删除掉。 如果你的局域网要上Internet则必须安装T
功能强大的网管软件。安装注意一以下几点说明: 1、在安装SIP上网计费软件系统之前,必须先把整个网络环境调试完好,才能进行SIP上 网计费系统的安装。安装时,务必先把网卡网线连接正常,保证网卡处于活动状态。 如果您对计费网络环境的要求不熟悉,请浏览软件包“使用网络环境”子目录的 index.html文件。 如果使用网桥模式计费,不要在网络连接进行双网卡的桥接操作。SIP系统自带桥接 功能,不需要windwos系统本身的桥接功能。 对于升级安装的用户,请务必先阅读“升级须知.txt”文件,了解升级注意事项。 2、在安装SIP上网计费软件系统之前,保证没有其它程序和服务占用TCP的80端口,例如 操作系统自带的IIS服务。如果有,请停止这些程序的运行,或者把服务设置为 “手动启动”状态。 3、在安装SIP上网计费软件系统之前,保证没有安装过Apache、PHP、MySQL程序。如果 已经安装,请先卸载,以避免混乱和冲突。 4、以上系统环境准备好以后,运行setup.exe程序开始安装SIP上网计费系统。 5、使用WindowsXP的用户请注意,检查“控制面板”,有没有“安全心”。如果有, 说明XPSP2的版本。如果是SP2的版本,需要进入安全心,进入防火墙窗口,设置 为“禁止(不推荐)”,停止防火墙的运行。否则客户机无法显示登录页面。运行SIP 监视计费器后,启用SIP监视计费器自带的内外网防火墙功能。 Windows2003操作系统,也同理,需要停止其控制面板防火墙。 对于高级用户,也可以不停止windows操作系统的防火墙,但必须手工设置例外规则, 允许tcp 80、udp 80端口可以被访问。如果需要在服务器上启用DHCP服务,还必须允许 udp的67、68端口被访问。 6、请注意,试用电脑上安装有瑞星等杀毒软件的用户,必须先卸载杀毒软件,才能安装 SIP计费软件,否则可能造成机器自动重启、蓝屏等故障。安装好SIP计费软件后,可以 再安装瑞星等杀毒软件,但必须在安装好SIP计费软件后再安装。 7、安装完成后,请务必停止操作系统的自动更新,避免windows补丁带来的不兼容性问题。

110,536

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧