Jump to content


This is a ready-only archive of the InstallSite Forum. You cannot post any new content here. / Dies ist ein Archiv des InstallSite Forums. Hier können keine neuen Beiträge veröffentlicht werden.
Photo

Dienst stoppen und auf manuell stellen


Best Answer Spitfyr , 15 January 2016 - 15:27

Hallo,

ich hatte vor einigen Tagen auch mit der Dienstesteuerung zu kämpfen.

 

Man kann Dienste mit der sc.exe (ServiceControl) konfigurieren:

 

Umstellen der Startart auf Manuell (das Leerzeichen nach dem = ist zwingend notwendig):

sc.exe config NameDesDienst start= demand

Dienst stoppen:

sc.exe stop NameDesDienst

 

Weiter Info z.B. hier: https://support.micr...de-de/kb/251192

 

Zum Ausführen dieser Befehle benötigt man "Admin Rechte". Das Ausführen in einer DOS Dox ohne entsprechende rechte führt zu einem Fehler.

 

Grüße

  Spitfyr

Go to the full post


2 replies to this topic

Bandit2001

Bandit2001
  • Full Members
  • 16 posts

Posted 15 January 2016 - 13:58

Hallo,

 

ich stehe vor dem Problem dass ich einen Dienst, den ich mit SetupV1 installiert habe, mit einem SetupV2 stoppen und den StartTyp auf manuell setzen möchte/muss.

 

Ich habe versucht das mit diesem Script zu lösen, aber es tut nicht:

function StopAndDisableServices(hMSI)
begin
	StopAndDisableService("Dienst 123");
	StopAndDisableService("Dienst XYZ");
end;


function StopAndDisableService(szServcieName)
	string szKey;
	number nResult;
begin
	if (ServiceExistsService(szServcieName) = TRUE) then
		// Service versuchen zu beenden
		if (ServiceStopService(szServcieName) < ISERR_SUCCESS )then
			Sleep(100);
			ServiceStopService(szServcieName);
		endif;
		
		// Service auf "manuell" umstellen
		szKey = "\\SYSTEM\\CurrentControlSet\\services\\" ^ szServcieName;
		nResult = RegDBSetDefaultRoot(HKEY_LOCAL_MACHINE);
		if (RegDBKeyExist(szKey) < 0) then
			MessageBox ("RegistyKey not found!", INFORMATION);
		endif;
		//nResult = RegDBSetKeyValueEx (szKey, "Start", REGDB_NUMBER, "3", -1 );   
		if (RegDBSetKeyValueEx (szKey, "Start", REGDB_NUMBER, "3", -1 ) < 0) then
			MessageBox ("RegistyKey not set!", INFORMATION);	
		endif;	
	endif;
end;

Das Script wird währen der Installation in der "Install Exec Sequence" aufgerufen.

 

Was mache ich falsch, prinzipiell müsste es doch funktionieren.

 

 

Oder gibt es eine elegantere Methode zur Lösung meines Problems?

 

 

mfg

Ralph



Spitfyr

Spitfyr
  • Full Members
  • 162 posts

Posted 15 January 2016 - 15:27   Best Answer

Hallo,

ich hatte vor einigen Tagen auch mit der Dienstesteuerung zu kämpfen.

 

Man kann Dienste mit der sc.exe (ServiceControl) konfigurieren:

 

Umstellen der Startart auf Manuell (das Leerzeichen nach dem = ist zwingend notwendig):

sc.exe config NameDesDienst start= demand

Dienst stoppen:

sc.exe stop NameDesDienst

 

Weiter Info z.B. hier: https://support.micr...de-de/kb/251192

 

Zum Ausführen dieser Befehle benötigt man "Admin Rechte". Das Ausführen in einer DOS Dox ohne entsprechende rechte führt zu einem Fehler.

 

Grüße

  Spitfyr


Edited by Spitfyr, 15 January 2016 - 15:28.


Bandit2001

Bandit2001
  • Full Members
  • 16 posts

Posted 18 January 2016 - 10:31

Super, damit funktioniert es.

Vielen Dank!