NT服务的CreateProcess挂起

时间:2010-04-20 14:26:54

标签: sql-server windows-services installation createprocess

我正在尝试从NT服务进程启动SQLServer2008SP1 express安装程序。进程成功启动,我可以在任务管理器中看到它,但它什么都不做,只是在我杀了他之前保持不活动状态。

我正在使用以下命令启动该过程:

 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);

从cmdline手动启动时安装正常。

我尝试使用各种创建标志进行处理,但没有运气。我的想法已经不多了,所以我感激不尽。

请注意,相同的代码适用于SQL Server 2000安装。我知道这是处理安装的一种奇怪方式,但要改变它是迟到的。

操作系统是Windows Server 2003 SP2。

1 个答案:

答案 0 :(得分:0)

回应我自己,仅供参考。 问题是调用了错误的Setup.exe。虽然szPath指向正确的文件夹,但是调用了来自windows文件夹的Setup.exe。

修复方法是使用全名调用Setup.exe,包括directrory。