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

时间:2011-04-16 11:53:05

标签: c++ windows security firewall non-admin

我有一个基本要求 - 通过在提示时创建防火墙规则,在Windows上顺利运行我的应用程序,并启用了Windows防火墙。

当我第一次运行应用程序时以具有管理员权限的用户身份登录我的系统时,防火墙会出现提示,我通知它允许我的应用程序创建规则,很好。

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

因此,在我第一次单击防火墙提示以允许我的应用程序时,通过成功创建防火墙规则,我应该如何更改我的应用程序代码以便顺利运行?与我以具有管理员权限的用户运行我的应用程序时的工作方式完全相同。

我已经完成了一些在线搜索并且已经了解非管理员用户无法修改防火墙规则(甚至无法创建它们)。顺便说一句,我已经在Windows XP,Vista 7 x86和x64上测试了这种情况,结果相同。

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

由于

1 个答案:

答案 0 :(得分:1)

我不认为您在non-admin帐户中可以尝试的内容。您可以尝试通过创建新进程使用Windows admin功能获得runas权限,以便提示用户输入usernamepassword管理员帐户,它将为您的程序提供为您的程序创建防火墙规则所需的访问权限。

您还可以查看CreateProcessAsUserLogOnUSer。基本上,为了成功完成您要执行的操作,您需要一个代表管理员帐户的令牌或具有管理员权限的帐户。