Cygrunsrv and special Windows virtual accounts "NT SERVICE"

Lavrentiev, Anton (NIH/NLM/NCBI) [C] lavr@ncbi.nlm.nih.gov
Fri Dec 7 16:49:00 GMT 2012


> per the bad user/pass combo, presumably).

Per MSDN, http://msdn.microsoft.com/en-us/library/windows/desktop/ms682450%28v=vs.85%29.aspx :

If the account name specified by the lpServiceStartName parameter is the name of a managed service account or virtual account name, the lpPassword parameter must be NULL.

But cygrunsrv passes either "" or the actual string (when any username is provided).

It should pass NULL for the username that look like "NT SERVICE\svcname":

  if (!(sh = CreateService (sm, san.name (), disp, SERVICE_ALL_ACCESS,
			    SERVICE_WIN32_OWN_PROCESS |
			    (interactive ? SERVICE_INTERACTIVE_PROCESS : 0),
			    type == Auto ? SERVICE_AUTO_START
			    		 : SERVICE_DEMAND_START,
			    SERVICE_ERROR_NORMAL, mypath, NULL, NULL,
			    dependencies,
			    username, username ? pass ?: "" : NULL)))

Anton Lavrentiev
Contractor NIH/NLM/NCBI




More information about the Cygwin mailing list