Dienst neustarten
-
Hallo,
und zwar ist es bei uns in der Firma des öfteren Notwendig das man einen Dienst neustarten muss auf einem Remotesystem. Ich wollte mir jetzt dafür ein kleines Tool schreiben, aber ich kriege es nicht wirklich gebacken:int RestartService(char *Computer) { SC_HANDLE hServiceManager,hService; SERVICE_STATUS result; int err=0; memset(&result,0,sizeof(SERVICE_STATUS)); hServiceManager = OpenSCManager(NULL,NULL,SC_MANAGER_ALL_ACCESS); if(hServiceManager == NULL) { printf("Error0: %i\n",GetLastError()); return 0; } hService = OpenService(hServiceManager,"ERIS",SC_MANAGER_ALL_ACCESS); if(hService == NULL) { printf("Error1: %i\n",GetLastError()); return 0; } err = ControlService(hService,SERVICE_CONTROL_STOP,&result); if(err == 0) { printf("Error2: %i\n",GetLastError()); return 0; } err = StartService(hService,0,NULL); if(err == 0) return 0; else return 1; }
Der Errorcode 1052 wird zurückgeben.
ERROR_INVALID_SERVICE_CONTROL
1052 (0x41C)
The requested control is not valid for this service.
Ich weiß aber nicht viel anzufangen mit der Fehlerbeschreibung.
Programm wird als Admin gestartet.
Kann mir jemand weiterhelfen ?Gruß
-
http://msdn.microsoft.com/en-us/library/windows/desktop/ms684323(v=vs.85).aspx schrieb:
SC_HANDLE WINAPI OpenSCManager(
_In_opt_ LPCTSTR lpMachineName,
_In_opt_ LPCTSTR lpDatabaseName,
_In_ DWORD dwDesiredAccess
);hServiceManager = OpenSCManager(NULL,NULL,SC_MANAGER_ALL_ACCESS);
lpMachineName [in, optional]
The name of the target computer. If the pointer is NULL or points to an empty string, the function connects to the service control manager on the local computer.
-
Dankeschön das du mich nochmal belehrst, aber ich wollte das erstmal alles auf meinem lokalen System testen
.