【问题标题】:My service does not start on Windows 2008 (it works on Windows 2003)我的服务无法在 Windows 2008 上启动(它适用于 Windows 2003)
【发布时间】:2011-01-23 11:40:09
【问题描述】:
当我们在 Windows 2008 SP2 上安装我们的产品时,一些服务无法启动。在尝试了不同的事情后,我们发现当“登录身份”设置为“本地系统帐户”时,这些服务能够启动。
此服务确实需要以特定用户身份运行,因为它需要访问安全资源。该服务在 Windows 2003 下的这个特殊用户帐户下运行得很好。我认为这个问题与 UAC(用户访问控制)有关。
在交互模式下,可以通过回答安全对话框来提升权限。如何为服务做同样的事情?如何配置服务使其以必要的权限运行?
谢谢!
【问题讨论】:
标签:
service
windows-server-2008
uac
【解决方案1】:
尝试向服务应用程序的程序集清单添加一个条目。包含 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 帐户运行他们的服务。