当我们在Windows 2008 SP2上安装我们的产品时,几个服务无法启动。在尝试不同的事情后,我们发现当“登录为”设置为“本地系统帐户”时,这些服务能够启动。
此服务确实需要以特定用户身份运行,因为它需要访问安全资源。该服务在Windows 2003下的这个特殊用户帐户下运行得很好。我认为该问题与UAC(用户访问控制)有关。
在交互模式下,可以通过回答安全对话框来提升权限。如何为服务做同样的事情?如何配置服务以使其以必要的权限运行?
谢谢!
答案 0 :(得分:0)
尝试在服务应用程序的程序集清单中添加一个条目。包含 requireAdministrator 的 requestedExecutionLevel :
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0">
<assemblyIdentity version="1.0.0.0" processorArchitecture="X86" name="client" type="win32"/>
<description>Westwell Contoso</description>
<!-- Disable file and registry virtualization -->
<trustInfo xmlns="urn:schemas-microsoft-com:asm.v2">
<security>
<requestedPrivileges>
<requestedExecutionLevel level="requireAdministrator" uiAccess="false"/>
</requestedPrivileges>
</security>
</trustInfo>
</assembly>
大多数人以有限的 LocalService 或 NetworkService 帐户运行其服务。