c#windows服务杀死进程 50C

在windows服务中想杀死一个指定名称的进程,服务运行起来后,每当执行到process.kill()时,都会报拒绝访问异常

6个回答

这种的估计是禁止你杀掉

应该不是,我把同样的程序写到控制台里面是可以正常杀掉的,只是在服务里运行会拒绝访问

首先对应的进程要能被杀死,其次你有对应的权限进行kill

starlight206512
starlight206512 肯定是能被杀死的,我用控制台测试过,我大概也试了一下,除了Kill会报拒绝访问异常,其他的closemainwindow这些也是可以用的,就是不起作用罢了
4 年多之前 回复

windows服务运行的账户不是 administrator,和你桌面账户不是一个。所以你桌面上操作有权限,不等于你的服务有权限。
你可以用AdjustTokenPrivileges提权后再操作
http://blog.csdn.net/yiyefangzhou24/article/details/6112233

starlight206512
starlight206512 有没有办法让Windows服务运行的帐户是administrator,AdjustTokenPrivileges这个不会用
4 年多之前 回复

应该是权限问题, 如果你用控制台能成功,控制台应用程序用的是你当前的账户权限 administrator,而windows服务不一定,你配置的时候有可能是localserice 、networkservice、localsystem、或者指定的user 中的一种。

1 看被控制的进程的访问权限(文件属性里面的安全) , 2 当前操作服务的运行的权限

图片说明

Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
立即提问