我正在尝试制作一个安装项目,该项目使用密码安装 SQL 实例。我的要求是我希望以静默模式完全安装,但实例名称除外。有什么方法可以在我的命令行中提供任何命令,允许用户输入他自己的实例名称?我尝试了 2005 年的 /qn、/qb 和 2008 年的 /qs,但它们显示了所有对话框。
提前致谢。
我正在尝试制作一个安装项目,该项目使用密码安装 SQL 实例。我的要求是我希望以静默模式完全安装,但实例名称除外。有什么方法可以在我的命令行中提供任何命令,允许用户输入他自己的实例名称?我尝试了 2005 年的 /qn、/qb 和 2008 年的 /qs,但它们显示了所有对话框。
提前致谢。
在没有 SQL Server 安装窗口的情况下安装的参数/Q
是/QS
. 请参阅此处的 Microsoft 文档。
要提供实例名称,您需要该/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 上测试。