PRB: After CreateService() with UNC Name, Service Start Fails
Article ID: 127862
Article Last Modified on 11/21/2006
APPLIES TO
- Microsoft Win32 Application Programming Interface, when used with:
- Microsoft Windows NT 3.51 Service Pack 5
- Microsoft Windows 2000 Standard Edition
- Microsoft Windows XP Professional
This article was previously published under Q127862
SYMPTOMS
When giving a Universal Naming Convention (UNC) name to CreateService(),
the call succeeds, but the service start fails with ERROR_ACCESSS_DENIED
(5). This error will only occur if the service is specified to run in the
LocalSystem account.
CAUSE
The Service Control Manager calls CreateProcess() to start the service. If
the service is specified to run in a user account, the Service Control
Manager impersonates the user before calling CreateProcess(). If the
service is specified to run in the LocalSystem account, the Service Control
Manager runs in the LocalSystem security context. When you call
CreateProcess() with a UNC name from a process running in the LocalSystem
context, you get ERROR_ACCESS_DENIED. This is because LocalSystem has
restricted (less than guest) access to remote machines. A null session is
set up for LocalSystem remote access, which has reduced rights.
RESOLUTION
There are three possible solutions:
Additional query words: 3.50
Keywords: kbservice kbkernbase kbprb KB127862