0

我正在尝试制作一个安装项目,该项目使用密码安装 SQL 实例。我的要求是我希望以静默模式完全安装,但实例名称除外。有什么方法可以在我的命令行中提供任何命令,允许用户输入他自己的实例名称?我尝试了 2005 年的 /qn、/qb 和 2008 年的 /qs,但它们显示了所有对话框。

提前致谢。

4

1 回答 1

0

在没有 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 上测试。

于 2020-07-16T16:19:06.760 回答