0 votes

CreateProcess à partir d'un service NT se bloque

J'essaie de démarrer SQLServer2008SP1 express installer à partir du processus de service NT. Le processus est démarré avec succès, je peux le voir dans le gestionnaire de tâches, mais il ne fait rien, il reste inactif jusqu'à ce que je le tue.

Je lance le processus avec la commande suivante :

 szCmdLine = "Setup.exe /Q /HIDECONSOLE /ACTION=install /CONFIGURATIONFILE=ConfigurationFile.ini /SAPWD=pwd_to_set");

 STARTUPINFO si;
 si.wShowWindow = SW_HIDE;
 ...
 CreateProcess(NULL, szCmdLine, NULL, NULL, TRUE, 
               CREATE_NO_WINDOW, NULL, szPath, &si, &pi);

L'installation se déroule correctement lorsqu'elle est lancée manuellement à partir de la ligne de commande.

J'ai essayé de jouer avec différents drapeaux de création pour le processus, mais sans succès. Je suis à court d'idées, donc toute aide est la bienvenue.

Notez que le même code a fonctionné correctement pour l'installation de SQL Server 2000. Je sais que c'est une façon étrange de gérer l'installation, mais il est trop tard pour changer cela.

Le système d'exploitation est Windows Server 2003 SP2.

0voto

Marko Points 13736

Pour me répondre à moi-même, juste pour la référence. Le problème est que le mauvais Setup.exe a été appelé. Bien que szPath ait pointé vers le bon dossier, Setup.exe a été appelé à partir du dossier Windows.

La solution consistait à appeler Setup.exe avec son nom complet, y compris le répertoire.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X