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

Vb.net 如何在不需要管理员权限的情况下从.NET禁用网络连接?,vb.net,networking,netsh,Vb.net,Networking,Netsh,我可能对这件事感到失望,但我想我会放弃它,寻找可能的解决办法 我正在写一个电脑访问控制服务来帮助我控制我孩子的电脑使用。当我让它工作时,计划开源。它是用VB.Net编写的,需要在XP到7之间运行 我在Windows7上遇到了各种各样的安全和桌面访问问题。该服务需要以管理员身份运行,以执行NetSh命令禁用网络。但是我无法通过服务与桌面交互,因此我将IPC连接到UI来处理其他内容,但我仍然无法从服务中检测桌面是否被锁定。啊 如果我只需要点击一个需要管理员权限的部分:禁用网络,我就可以从一个隐藏的w

我可能对这件事感到失望,但我想我会放弃它,寻找可能的解决办法

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

我在Windows7上遇到了各种各样的安全和桌面访问问题。该服务需要以管理员身份运行,以执行NetSh命令禁用网络。但是我无法通过服务与桌面交互,因此我将IPC连接到UI来处理其他内容,但我仍然无法从服务中检测桌面是否被锁定。啊

如果我只需要点击一个需要管理员权限的部分:禁用网络,我就可以从一个隐藏的windows窗体应用程序中实现所有功能

如果一个孩子登录并拒绝弹出询问程序是否应该以管理员身份运行的窗口,他说不,这是没有好处的。另外,windows 7不会使用
HKEY\U LOCAL\U MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Run


有人知道如何让它工作吗?或者有一个现成的解决方案?

我希望我能提供一些参考,但我现在在谷歌fu上失败了。。。但我很确定UAC不适用于服务。如果您将程序实现为windows服务应用程序,而不是(隐藏的)windows窗体应用程序,并将其设置为为为您孩子的用户帐户而不是您自己的用户帐户运行,那么应该可以工作

更新


在谷歌上,我根本没有玩过它。虽然看起来不错。。。基本上,CreateProcessAsUser可以从作为管理员运行的服务应用程序中运行表单应用程序。

好吧,纠正这一点激发了一个想法。如果一点IPC是可以的,那么多一点也不会有什么坏处。所以我试着让服务询问用户界面计算机是否被锁定。成功了。我仍然想要一种避免UAC问题的方法。我当然可以简化一些事情。如果你正在做一些UAC妨碍执行Netsh命令改变网络设置的事情,它确实适用。这仅在以管理员权限运行时有效。我现在正在以管理员权限运行该服务,以便正常工作。如果我可以在没有UAC弹出窗口的情况下运行具有管理员权限的表单应用程序,就像我可以使用服务一样,我的所有问题都会消失。@Brad,是的,我想你已经完成了我最初建议的所有事情了。:p我确实找到了另一个可以解决你问题的链接,用它更新了我的答案。太好了!这就解决了我的直接问题,即如何调用Netsh而不需要以管理员的身份运行。它解决了我放弃的一个问题,那就是如何从服务启动UI。我希望我的服务在UI关闭时重新启动,如果UI关闭时重新启动服务。我只能让后者工作。不要让孩子们通过简单地杀死一个进程来绕过访问控制!我想在使用UAC颠覆技术时添加一个警告。由于您是在系统帐户下运行新应用程序,因此您也继承了此帐户的所有限制。也就是说,没有网络接入。坦斯塔夫。