开发windows服务时遇到的一个问题

ccb8888 2014-04-26 04:07:19
开发一个小软件:
需求:客户端打开了未在系统定义可运行的程序范围外的未知程序时,会自动关闭该未知程序,当然system,local server 这些内置账号所运行的进程就不需要限制。。


现在遇到的问题是:
如果用system内置账号运行服务的话。他有杀死进程的权限,但是会报错说没有 找到 System.Management ,错误代码是在: InvokeMethod("GetOwner", argList)。

如果用LOCAL service或者NetworkService 内置 账号运行服务的话。他访问WMI没有问题,但是没有杀死进程的权限。。

不知道大家有没有更好的方法实现这个需求。
...全文
111 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
ccb8888 2014-04-30
  • 打赏
  • 举报
回复
引用 3 楼 tcmakebest 的回复:
这个需求太奇葩了,什么是可运行的程序?太多了根本不计其数,强杀进程会导致系统不稳定,早点放弃吧
是这样的。 首先这软件是应用在公司环境,而且每个用户真正要使用的程序就那么几个。而且每台电脑都是入了域。每个用户都有各自的用户名。 其次就是我只是限制该用户账户所运行的程序,其他用户组入system等这些所运行的进程是不限制的! 不知道这样可行性如何!希望大家提点一下!
  • 打赏
  • 举报
回复
如果运行在win7/vista以上系统,那么服务都不能访问用户账号的权限。需要在身份上“跨域”操作,也就找到当前系统的某个用户身份,临时以这个身份启动另外一个进程,才能操作。
tcmakebest 2014-04-26
  • 打赏
  • 举报
回复
这个需求太奇葩了,什么是可运行的程序?太多了根本不计其数,强杀进程会导致系统不稳定,早点放弃吧
ccb8888 2014-04-26
  • 打赏
  • 举报
回复
ccb8888 2014-04-26
  • 打赏
  • 举报
回复

110,533

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧