我有一个基本的要求 – 通过在出现提示时创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
权限,以便用户被提示输入管理员帐户的username
和password
,这将使你的程序获得创建防火墙规则的权限你的程序。
您也可以看看CreateProcessAsUser或LogOnUSer 。 基本上,为了取得成功,您需要一个表示管理员帐户或具有管理员权限的帐户的令牌。