Description
installing a new service without supplying the --ServiceUser --ServicePassword installs the service correctly but using the LocalSystem account. If you want to use a local user, which of course has at least the "log on as a service" right, and supply the credentials via the parameters you get an error. To be more specific, in service.c line 211, the CHANGE_SERVICE macro fails with error 87L ERROR_INVALID_PARAMETER. This happens at least when creating and updating a service. Setting other options via this macro work fine, just the username password fail (standalone and in combination with other parameters).
The solution is specifying SERVICE_WIN32_OWN_PROCESS as ServiceType parameter instead of SERVICE_NO_CHANGE in ChangeServiceConfigW line 27 second parameter.