Windows 对通用\u执行的OpenSCManager调用失败
我的设置Windows 对通用\u执行的OpenSCManager调用失败,windows,security,permissions,admin,Windows,Security,Permissions,Admin,我的设置 视窗10 Visual Studio 2017 Windows SDK 10.0.17763.0 我检查了一些与我类似的答案,例如: 但这些情况都不如我的糟糕。其他人的代码都要求管理员权限,例如SC\u MANAGER\u all\u ACCESS,但我的代码只要求GENERIC\u EXECUTE,这对于普通用户帐户来说似乎非常正常: SC_HANDLE hSC=::OpenSCManager(NULL, 空,泛型(执行); 如果(hSC==NULL){ 错误(“打开SC
- 视窗10
- Visual Studio 2017
- Windows SDK 10.0.17763.0
SC\u MANAGER\u all\u ACCESS
,但我的代码只要求GENERIC\u EXECUTE
,这对于普通用户帐户来说似乎非常正常:
SC_HANDLE hSC=::OpenSCManager(NULL,
空,泛型(执行);
如果(hSC==NULL){
错误(“打开SCManager{}.Aborted.时出错。”,GetLastError());
返回Mam_ErrorWindowsAppleDeviceServiceInit;
}
现在,这个调用总是失败,并且GetLassError()
给出:错误\u访问被拒绝
(0x5)
我尝试以管理员身份打开VisualStudio,然后上述调用通过
上面的代码在一周前就运行了。在我背后可能有一个我不知道的Windows10更新,但这仅仅是Windows安全策略的一个变化吗?多亏了@SoumenMukherjee和@RbMm的提示。我发现我要打开的服务需要
LocalSystem
特权
SC\u管理器锁
服务启动
服务站
SC\u管理器\u锁
,因此将GENERIC\u执行
替换为STANDARD\u RIGHTS\u执行| SC\u管理器\u CONNECT
解决了这个问题
这些资源起了作用
GENERIC\u EXECUTE
?@RbMm感谢您的提示。很好的问题。我需要验证,但我的应用程序似乎不需要在打开它之前“启动”服务,这将在OpenSCManager
之后发生。所以我可以尝试调整特权。@SoumenMukherjee By它是否与SC_MANAGER_ALL_ACCESS
配合使用,您是指管理员还是普通用户?