2016-05-13 293 views
0

我已经创建了一个bat来执行脚本文件(.vbs)以从Windows注册表获取已安装的软件列表。 我遵循2种方式执行bat文件。如何使用C++代码创建具有管理员权限的服务

1)从命令提示符(cmd)执行bat文件。 2)创建一个执行bat文件的服务(我创建了一个进程)。

两个输出是不同的。

我认为注册表访问限于服务。所以如何创建一个服务或以管理员身份启动一个像cmd这样的管理员服务。

+0

服务通常在LOCAL SYSTEM帐户下运行,可能会从管理员帐户安装另一组应用程序。此外,查询注册表是向系统请求安装的应用程序的错误方法。 – IInspectable

+0

您的问题诊断错误。步骤1,正确诊断问题。第2步,考虑可能的解决方案。在继续之前,您需要先完成第1步。 –

回答

-1

您需要使用CreateService函数。如果您使用nullptr作为lpServiceStartName的参数,那么它将以管理员身份运行。

+1

从[CreateService](https://msdn.microsoft.com/en-gb/library/windows/desktop/ms682450.aspx):*“lpServiceStartName:如果此参数为NULL,则CreateService使用[LocalSystem帐户](https ://msdn.microsoft.com/en-gb/library/windows/desktop/ms684190.aspx)。“*这是**不是**管理员帐户。我不知道为什么有人会提出一个事实上不正确的答案。 – IInspectable

+0

@IInspectable我没有说管理员帐户。它具有管理员权限。 – Simple

+1

*“它将以管理员身份运行”* - 并且这是不正确的。如文件所述,它将作为LOCAL SYSTEM运行。这是与管理员环境不同的环境。 – IInspectable

相关问题