现在我们的标准安装已经完成,让我们讨论一下无人值守安装。Setupsql.exe程序让你记录下一个应答文件,它包括了你在安装程序对话框中常选的对于各种安装选项的所有回答。稍后,你能够通过调用以该应答文件作为参数的setupsql.exe命令来运行一个安装。这种无需任何用户干预的安装类型被称为无人值守安装。       要准备应答文件,先启动安装程序,在安装选择对话框中选择高级选项,在对话框中选择选取“记录无人值守.ISS文件”。安装程序会指导你完成常规的安装对话框,其中你可以填入所有你想要记录的选项。当你完成后,安装程序在\WINNT文件夹下创建一个名为setup.iss的文件。       要启动一个无人值守安装,运行setupsql.exe程序,用-s作为执行安静安装的参数、-fl参数指定一个应答文件。例如,要启动一个安静的、无人值守的安装——安装完成后不通知你,你可以使用以下命令:       <path>\setupsql.exe –s –fl <path>\setup.iss       如果你想在安装完成时得到通知,从命令行执行如下setupsql.exe程序,或者把它写入一个批处理文件中:       start /wait <path>\setupsql.exe -s –fl <path>\setup.iss       直到安装结束,控制才会传递到下一条命令。当你从批处理文件启动安装,而这个文件又包括其他依赖于安装的行为时,使用start /wait选项是特别重要的。例如,假设你要为一个名为INST1的命名实例执行无人值守安装来创建批处理文件,然后启动SQL Server服务,再运行一个用来创建数据库及其对象(如:表、存储过程)的sql脚本。这个批处理文件看起来可能像这样:       start /wait D:\X86\Setup\setupsql.exe –s –fl C:\WINNT\setup.iss       net start MSSQL$INST1       OSQL /E /I “c:\data\scripts\createappdb.sql”       如果你不使用start /wait选项,控制从安装一开始就移到了批处理文件的第二条命令,而这条NET START命令试图启动一个还不存在的服务。       对一个无人值守安装进行故障排除要比对待标准安装的故障排除更需要慎重对待。标准安装往往在安装程序遇到问题时通过显示一个包含出错信息的对话框(并伴有响亮的警告声)来通知你。而无人值守安装只是简单地终止,且没有交互的通知。       要了解如何对无人值守安装进行故障排除,让我们来看一组我遇到过的问题。假设你已经在服务器上完成了另一个产品的安装,然后你试图执行一个SQL Server的无人值守安装。安装程序检测到在前一个安装结束后服务器尚未重启,于是放弃安装,同时没有任何信息提示。如果你保持任务管理器窗口打开,你会注意到setupsql.exe 程序不活动,所以SQL Server没有被安装。你也应该检查日志文件。一旦安装成功,\WINNT\setup.log文件应该显示0作为出错代码;然而,在我描述的情景中,他很可能显示-1,这表示一个基本错误。你也应该看一下出错信息。       当执行无人值守安装时,我遇到过多次的另一个错误是“对话框次序紊乱”。在我调用安装程序后不久我就意识到这一问题的存在——那是在我打开任务管理器并看到setupsql.exe虽然在运行但是没有像正常的无人值守安装那样调用和释放进程。同时,安装程序通常在\Program Files\Microsoft SQL Server下创建的文件夹也没有被创建。Setupsql.exe程序看来并没有占用CPU或者I/O资源,只是在大约10分钟后消失了。Setup.log文件显示一个-12的错误代码而sqlstp.log文件显示没有错误——实际上,它看来还未完成。Sqlstp包含了不完整的注意事项,只是一条消息——Begin Action:DialogShow<dialogname>。BOL显示了以下有关错误代码-12的信息:“对话框次序紊乱。这是一个常见错误,由在安装初始化文件(Setup.iss)文件中的一个对话框次序紊乱所引起。这是由于Setup.iss文件创建过程中的系统问题所产生。”足以确认,在我重新对Setup.iss文件排序后,无人值守安装成功完成。       除了完全安装,你还可以执行SQL Server 2000服务包的无人值守安装。要把服务包应用到默认实例上,从服务包的安装目录调用setupsql.exe程序,指明应答文件为位于服务包安装目录根目录下的sql2kdef.iss。例如:如果服务包安装文件位于c:\sql2ksq2下,执行入下命令:       start /wait c:\sql2ksp2\x86\setup\setupsql.exe –s –fl c:\sql2ksp2\sql2kdef.iss要把服务包应用到命名实例上,使用sql2knm.iss应答文件,但是首先修改文件中的下列两行来对应正确的命名实例:       InstanceName = INSTANCE_NAME       NMPPipeName=\\.\pipe\MSSQL$INSTANCE_NAME\sql\query       另一个高级选项——远程安装——让你在一台远程的电脑上安装SQL Server 2000。你可以从一台本地的电脑上手工记录下一个setup.iss文件,把它复制到远程电脑上,在激活setupsql.exe程序和在远程电脑上的setup.iss文件。然而,你可以替自己省些麻烦——通过在本地电脑上运行setupsql.exe程序,在电脑名对话框中选择远程电脑,指明你想要安装到的电脑名。当你点击下一步时,远程安装信息对话框会显示出来。       首先你要提供帐号细节(用户、密码、域),到目标文件夹的UNC路径和源安装文件的UNC路径。接下来,安装程序将指引你完成常规安装对话框并根据你的选择记录下setup.iss文件。接着,程序复制setup.iss文件到目标电脑的\WINNT文件夹下,再用复制的setup.iss文件来激活setupsql.exe。       如果你在目标电脑上打开任务管理器,你会看到setupsql.exe进程在安装过程中调用和释放其他进程。在本地电脑上,安装程序显示远程安装正在进行中,并且会在完成时通知你。 最后的话       虽然基本安装看来简单,你仍需队与你所选择的安装选项给予密切注意,并且完全理解它们。良好的安装选择为运行和管理SQL Server提供了一个坚实的基础。而如果你认为执行无人值守安装和远程安装听起来复杂的话,我希望这篇文章有助于你对它们加深了解。