我正在尝试创建一个安装带有密码的SQL实例的安装项目。我的要求是我希望在静默模式下完全安装,除了实例名称。有什么方法可以在我的命令行中提供任何命令,允许用户放置自己的实例名称?我尝试了2005年的/ qn,/ qb和2008年的/ qs,但它们显示了所有对话框。
提前致谢。
答案 0 :(得分:0)
要在没有SQL Server安装窗口的情况下安装的参数是/Q
,而不是/QS
。参见Microsoft's documentation here.
要提供实例名称,您需要/INSTANCENAME
参数。下面是一个示例,该示例介绍了如何在没有SQL Server窗口的情况下通过命令提示符安装SQL Server:
SETUP.exe /Q /IACCEPTSQLSERVERLICENSETERMS /ACTION=install /FEATURES=SQL /INSTANCENAME=YourInstanceNameHere /SECURITYMODE=SQL /SAPWD="SQL Admin Password Here" /SQLSYSADMINACCOUNTS=""NT Authority\System"" /ADDCURRENTUSERASSQLADMIN=False
SETUP.exe = SQL Server安装文件
/ Q =静默安装
/ IACCEPTSQLSERVERLICENSETERMS =静默安装所需
/ ACTION =告诉安装程序安装SQL
/ FEATURES =告诉安装程序要安装哪些功能
/ INSTANCENAME =您希望您的SQL Server实例成为的名称
/ SECURITYMODE =告诉SQL使用SQL Server身份验证而不是Windows身份验证
/ SAPWD =创建SQL Server登录名的密码
/ SQLSYSADMINACCOUNTS =使用指定的管理员用户安装SQL
/ ADDCURRENTUSERASSQLADMIN =自我解释
这是一个从应用程序运行该过程的C#示例,请注意:像命令提示符一样,您的应用程序将需要以管理员身份运行:
System.Diagnostics.ProcessStartInfo startInfo = new System.Diagnostics.ProcessStartInfo();
startInfo.CreateNoWindow = true;
startInfo.UseShellExecute = false;
startInfo.RedirectStandardError = true;
startInfo.RedirectStandardOutput = true;
startInfo.FileName = "path to SETUP.exe file";
startInfo.Arguments = "the above mentioned arguments";
System.Diagnostics.Process processObj = new System.Diagnostics.Process();
processObj.StartInfo = startInfo;
processObj.Start();
do
{
//refresh the process
processObj.Refresh();
} while (!processObj.WaitForExit(1000));
在SQL Server 2019和Visual Studio 2013上进行了测试。