0

我正在尝试从 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 手动启动时安装正常。

我尝试为进程使用各种 creat 标志,但没有运气。我的想法已经不多了,所以每一个帮助都会受到赞赏。

请注意,对于 SQL Server 2000 安装,相同的代码可以正常工作。而且我知道这是处理安装的一种奇怪方式,但要改变它为时已晚。

操作系统是 Windows Server 2003 SP2。

4

1 回答 1

0

本人回复,仅供参考。问题是调用了错误的 Setup.exe。尽管 szPath 指向正确的文件夹,但调用了 windows 文件夹中的 Setup.exe。

解决方法是使用全名(包括目录)调用 Setup.exe。

于 2010-04-24T21:02:10.677 回答