为在非pipe理员用户帐户中运行的进程创build防火墙规则

我有一个基本的要求 – 通过在出现提示时创build防火墙规则,在Windows上平稳地运行我的应用程序,它已经打开了Windows防火墙。

当我第一次运行我的应用程序时,以具有Admin权限的用户身份login到我的系统时,防火墙出现提示,我通知它允许我的应用程序创build一个规则,很好。

但是,当我打开我的电脑,以非pipe理员用户身份login,并运行我的应用程序,防火墙显示与预期的提示; 但是当我点击与Admin用户相同的选项时,即使每次出现提示时单击Allow / ok,防火墙提示仍会不断popup。 当我点击“取消/阻止”应用程序运行时,提示只会消失,这显然不是我想要做的。

因此,百万美元的问题来了,我第一次点击防火墙提示符以允许我的应用程序成功地创build防火墙规则,我应该怎样改变我的应用程序代码才能顺利运行; 当我以具有pipe理员权限的用户身份运行我的应用程序时,它的工作方式与此方式完全相同

我已经做了一些在网上search,并已经了解非pipe理员用户不能修改防火墙规则(甚至不能创build它们?)。 顺便说一下,我已经在Windows XP,Vista 7(包括x86和x64)上testing了这种情况,结果相同。

如果有人遇到和/或解决了类似的问题,请分享你的知识。 如果我错过了一些东西,请让我明白我错过了什么。

谢谢

我不认为你在non-admin帐户中可以尝试。 你可以尝试的是通过创建一个新的进程,通过使用Windows的runas功能获得admin权限,以便用户被提示输入管理员帐户的usernamepassword ,这将使你的程序获得创建防火墙规则的权限你的程序。

您也可以看看CreateProcessAsUser或LogOnUSer 。 基本上,为了取得成功,您需要一个表示管理员帐户或具有管理员权限的帐户的令牌。