openservice ERROR_ACCESS_DENIED 规格严格

今天同事写程序,用Sigar获取Window服务,发现有几个服务怎么也不取不出来。

我看了一下代码,就是用OpenService获取的,于是就用VC写了个Demo,一样获取不到。

不过错误码是这5,查了一下msdn是访问权限问题。

看了一下Sigar获取的权限位,对比了一下MSDN,Sigar用的是ALL_ACCESS,但是在WindowsCardSpace上,怎么都报错。

http://www.cpp-home.com/forum/viewtopic.php?f=1&t=16325

http://social.msdn.microsoft.com/forums/en-US/vclanguage/thread/8c28faac-9056-4e72-9839-1f475079adc4

http://msdn.microsoft.com/en-us/library/windows/desktop/bb540474(v=vs.85).aspx

http://bbs.pediy.com/showthread.php?t=115649

搜了几篇文章,也没有彻底解决疑问,不过好在我们只是要获取状态,而不是起停服务,于是更改一下源代码,添加一个读权限位(参考MSDN),这样

就算是旁路解决问题了。 

原文地址:https://www.cnblogs.com/diyunpeng/p/2558680.html