SQL2000 无人值守的自动安装见:http://hi.baidu.com/yjjjjs/blog/item/1ce437ce4580af31f9dc614a.html
若要在很多的机子上装SQL2005,又不想在每台机子都去反复的设置,或者把安装包发给客户让客户自己装时,这时用“SQL2005 无人值守安装”的自动应答文件来安装是最好不过的了,但是SQL2005自动安装的可查的资料很少,在SQL 的帮助文档中中输入“无人参与的安装[SQL Server]”可查到一些信息,以及在http://www.databasejournal.com/features/mssql/print.php/3616901和http://technet.microsoft.com/zh-cn/library/ms144259(SQL.90).aspx查到了一些信息,但是说明都不是太详细,故现在整理如下,希望能对后来者有所帮助。
现在开始举例说明:
若我想将SQL2005的安装目录设为"C:\Program Files\Microsoft SQL Server\",注册信息中的姓名为:user,公司为Microsoft,序列号PIDKEY=B4H74BJX3P37RX2J9TTBH9RMJ,组件的话只安装SQL_Engine,SQL_Tools90,实例名为“默认实例”,服务帐户为“使用内置系统帐户→本地系统”,身份验证模式为“混合模式→sa帐户的密码为saa”,其他都默认。
那么按照我上面所提供的的要求条件应该如下进行操作:
将下面这两行代码放到记事本中并保存为“安装.bat”并将此文件放到SQL安装程序文件夹下
@Echo off
start setup.exe /settings %CD%\setup.ini /qb
::其中的/qb表示可看见安装画面,若改为/qn则完全在后台运行安装
再将以下内容也放到记事本中并保存为“setup.ini”也放到SQL安装程序文件夹下
[Options]
USERNAME=user
COMPANYNAME=Microsoft
PIDKEY=B4H74BJX3P37RX2J9TTBH9RMJ
INSTALLSQLDIR="C:\Program Files\Microsoft SQL Server\"
INSTALLOLAPDATADIR="C:\Program Files\Microsoft SQL Server\MSSQL\OLAP\Data"
ADDLOCAL=SQL_Engine,SQL_Tools90
INSTANCENAME=MSSQLSERVER
SECURITYMODE=SQL
SAPWD=saa
SQLACCOUNT=NT AUTHORITY\SYSTEM
AGTACCOUNT=NT AUTHORITY\SYSTEM
SQLBROWSERACCOUNT=NT AUTHORITY\SYSTEM
然后双击运行“安装.bat”安装程序便开始自动安装了
▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇
现在开始解释“setup.ini”文件中内容的含义:
[Options]
USERNAME=user
;注册信息中的姓名为:user
COMPANYNAME=Microsoft
;公司名为Microsoft
PIDKEY=B4H74BJX3P37RX2J9TTBH9RMJ
;上面的是序列号,中间不可带“-”,这个序列号可以用
INSTALLSQLDIR="C:\Program Files\Microsoft SQL Server\"
;SQL2005程序的安装目录
INSTALLOLAPDATADIR="C:\Program Files\Microsoft SQL Server\MSSQL\OLAP\Data"
;数据库文件(如.mdf和.ldf)的默认存放目录
;ADDLOCAL=ALL 表示安装全部组件
;总共可选的组件有:ADDLOCAL=SQL_Engine,Analysis_Server, AnalysisSharedTools,Client_Components, Connectivity,SQL_Documentation,SQL_Tools90
ADDLOCAL=SQL_Engine,SQL_Tools90
;这里暂且先安装这两个组件,注意若不装SQL_Tools90,则没有SQL Server Management Studio
INSTANCENAME=MSSQLSERVER
;表示实例名为MSSQLSERVER(即默认实例名)
SECURITYMODE=SQL
;表示身份验证模式为“混合模式”,若无此语句则默认将使用 Windows 身份验证
SAPWD=saa
;sa帐户的密码为saa,sa帐户的密码要求为强密码(大于等于三位包含字母)
SQLACCOUNT=NT AUTHORITY\SYSTEM
;SQL的域\帐户
;SQLPASSWORD=mmmm SQL的域\帐户对应的密码
AGTACCOUNT=NT AUTHORITY\SYSTEM
;自动导向的域\帐户
;AGTPASSWORD=mmmm 自动导向的域\帐户对应的密码
SQLBROWSERACCOUNT=NT AUTHORITY\SYSTEM
;SQL的浏览器域\帐户
;SQLBROWSERPASSWORD=mmmm SQL的浏览器域\帐户对应的密码
;上面三个使用了内置系统帐户中的 本地系统帐户(NT AUTHORITY\SYSTEM), 这样只需要指定用户就行了, 不需要密码
;NT AUTHORITY\SYSTEM 表示系统内置帐户中的 本地系统帐户,其中NT AUTHORITY表示域,SYSTEM 为组
;NT AUTHORITY\NETWORK SERVICE 表示系统内置帐户中的 网络服务帐户,通常需要远程连接的都使用这个
;NT AUTHORITY\LOCAL SERVICE 表示系统内置帐户中的 本地服务帐户
;下面这4个的参数的默认值指定如下(1表示自动启动,0表示手动启动。 如果决定自动启动 SQL Server 代理,则 SQL 也将自动启动)
;SQLAUTOSTART=1
;AGTAUTOSTART=0
;ASAUTOSTART=1
;RSAUTOSTART=1
;下面这几个暂时用不到
;ASACCOUNT=
;ASPASSWORD=
;SQLCOLLATION=
;ASCOLLATION=
;DISABLENETWORKPROTOCOLS=0 禁用网络协议