New Windows Service installed, fails to start: “System error 2 … system cannot find the file specified”

╄→尐↘猪︶ㄣ 提交于 2019-12-03 01:03:01

I experimented with some test services and found it was not the length of any property that caused my problem (“System error 2 ... system cannot find the file specified”) to begin with. My built in service installer uses three properties: ServiceName, ServiceTitle, ServiceDescription. On installing, I found that it writes full service path to the registry, but it doesn’t just take the actual exe (assembly) name, it uses the ServiceName property to build the path! My issue was that the ServiceName and assembly name didn’t match, hence file not found. I used a powershell registry query to expose the path and finally noticed the mismatch from there. When I first noticed the problem I had not noticed that when I shortened the service name from whatever it was – that I just used the assembly name without the .exe and that is what actually fixed it, not simply shortening it.

I had a similar issue with a service, where I was getting the same error.

I went to:

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\YourServiceName\ImagePath

My 'ImagePath' was set to a virtual drive called "W:\" that exists on "C:\".
I replaced this path with the actual file location on the C:\ drive and then the service started successfully

My Problem was, creating the Service with Powershell command added brakets like: <C:\Path\To\Service\Service.exe> to the registry.

Replacing < and > with " fixed it for me.

In my case, I opened the Command Promt and navigated to the exe and installed it from there. So I did not enter the full path. Once I used the full path, it worked.

  1. So, you need to either install the service with the full path or add the exe file's path to the PATH in system environment variables.

    SC CREATE "Service-Name" binpath="D:\full-path-to-service\service.exe"
    

    or add D:\full-path-to-service\ to PATH variable and use

    SC CREATE "Service-Name" binpath="service.exe"
    


  1. Also, verify that the path is correct. Because, I once installed with the wrong path and it got successfully installed, but when I tried to start it, I got the same error.

I had same issue, nothing did solve this error, then I resolved by not using the c:\Windows\System32 path to store the service executable!

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!