如何在不需要管理员权限的情况下禁用.NET的网络连接?

时间:2010-04-02 23:45:02

标签: vb.net networking netsh

我可能对此有所了解,但我想我会把它扔掉以寻找可能的解决方案。

我正在编写一个计算机访问控制服务来帮助我控制孩子的电脑使用。当我开始工作时,计划开源。它是用VB.Net编写的,需要在XP到7上工作。

我遇到了Windows 7上的各种安全和桌面访问问题。该服务需要以管理员身份运行才能执行NetSh命令来禁用网络。但是我不能从服务中与桌面交互所以我用IPC来处理其他东西,但是如果桌面被锁定,我仍然无法从服务中检测到。 Argghh!

如果我能够舔掉需要管理员权限的一个部分,我可以从一个隐藏的Windows窗体应用程序中完成所有工作:禁用网络。

如果一个孩子登录并拒绝弹出窗口询问该程序是否应该以管理员身份运行并且他拒绝,那么这没有用。此外,Windows 7将无法启动程序集以管理员身份运行使用
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Run

任何人都知道如何让这个工作?或者有一个开箱即用的解决方案?

1 个答案:

答案 0 :(得分:2)

我希望我可以提供一些参考资料,但我现在在google-fu失败了...但我很确定UAC不适用于服务。如果您将程序实现为Windows服务应用程序而不是(隐藏的)Windows窗体应用程序,并将其设置为针对您孩子的用户帐户而不是您自己的帐户运行,则应该可以正常运行。

更新

谷歌上的

Found this,根本没玩过它。看起来很健康......基本上,CreateProcessAsUser可以从以管理员身份运行的服务应用程序运行表单应用程序。