如何在Windows7中以LocalSystem的身份运行服务

How to run a service as LocalSystem in Windows 7?

本文关键字:身份 运行 服务 LocalSystem 中以 Windows7      更新时间:2023-10-16

我正试图按照Windows SDK中的说明编写我的第一个服务应用程序。我使用以下代码安装了该服务:

SC_HANDLE schs=CreateService(sch,
                             SERVICENAME,"VMFS - Servidor de arquivos",
                             SC_MANAGER_CREATE_SERVICE,
                             SERVICE_WIN32_OWN_PROCESS,
                             SERVICE_AUTO_START,
                             SERVICE_ERROR_NORMAL,
                             pathexe,
                             NULL/*LoadOrderGroup*/,
                             NULL/*TagId*/,
                             NULL/*Dependencies*/,
                             NULL/*Account:Local System*/,
                             NULL/*Password*/);

服务器未启动(错误1053)。

但是,如果我转到services.msc并将服务更改为以我的帐户名(Valdeci)登录,服务就会启动。所以这似乎是一个登录错误。怎么了?我想在Windows XP和Vista中运行我的服务,但没有尝试,因为我的开发机器有Windows 7。

如CreateService文档中所述,尝试使用NULL而不是".\\LocalSystem"。

我解决了我的问题!我遵循了我收到的提示:将代码剥离为"什么都不做"服务,但它仍然不起作用。所以我得出结论,问题不在于代码本身。由于"缺少"DLL,程序甚至没有启动。我发现"path"在作为LocalSystem运行时工作方式不同,所以我将所有运行时DLL复制到服务的文件夹中。这是我通常安装程序的方式,但在开发时我使用该路径。

谢谢你抽出时间!