坑爹的微软官方文档:SQL无人值守安装

我在部署项目的时候,需要用批处理无人值守安装SQLserver,.Net等组件。

于是查了微软官方文档,其中一项内容如下:

http://msdn.microsoft.com/zh-cn/library/ms144259.aspx

             

SQL Server 安装程序控件

      
        

   /IACCEPTSQLSERVERLICENSETERMS

        

   仅在为无人参与安装指定了 /Q 或 /QS 参数时是必需的。      

必需,用于确认接受许可条款。

请注意,此项提示将“无人参与安装指定了 /Q 或 /QS 参数时是必需的”重点标识了。。

并且,给出了一个示例,内容如下:

安装新的具有 SQL Server 数据库引擎、复制和全文搜索组件的独立实例。
Setup.exe /q /ACTION=Install /FEATURES=SQL /INSTANCENAME=MSSQLSERVER /SQLSVCACCOUNT="<DomainName\UserName>" /SQLSVCPASSWORD="<StrongPassword>" /SQLSYSADMINACCOUNTS="<DomainName\UserName>" /AGTSVCACCOUNT="NT AUTHORITY\Network Service" /IACCEPTSQLSERVERLICENSETERMS


在我多次安装均出错的情况下,先解压了安装包,再进行命令行下手工尝试,得到错误为“无法识别指定的设置“IACCEPTSQLSERVERLICENSETERMS”。

我尝试删除了 /IACCEPTSQLSERVERLICENSETERMS 参数。出人意料的竟然成功了。。

这,这简直就是坑爹啊!!!

下面给出一个我写的批处理,希望给有相同需求的朋友一些提示或帮助。

@echo off

for /f "delims=[] tokens=2" %%i in ('ver') do set MyVer=%%i
for /f "tokens=2" %%i in ('echo %MyVer%') do set MyVer=%%i
for /f "tokens=1,2,3 delims=. " %%i in ( 'echo %MyVer% ') do (
set MajorVer=%%i
set MinorVer=%%j
set BuildNum=%%k
)
set MajorVer= %MajorVer%.%MinorVer%

if /I %MajorVer% == 5.1 (
echo "Windows XP"
)
if /I %MajorVer% == 5.2 (
echo "Windows 2003"
)
if /I %MajorVer% == 6.0 (
echo "Windows Vista"
)
if /I %MajorVer% == 6.1 (
echo "Windows 7"
)

:XP
set INSTALLER45="WindowsInstaller4_5\WindowsXP-KB942288-v3-x86.exe"
echo 正在安装 Windows Installer4.5...
%INSTALLER45%
/quiet /norestart /nobackup /passive
goto STARTSETUP

:
2003
set INSTALLER45="WindowsInstaller4_5\WindowsServer2003-KB942288-v4-x86.exe"
echo 正在安装 Windows Installer4.5...
%INSTALLER45%
/quiet /norestart /nobackup /passive
goto STARTSETUP

:Vista
set INSTALLER45="WindowsInstaller4_5\Windows6.0-KB958655-v2-x86.MSU"
echo 正在安装 Windows Installer4.5...
%INSTALLER45%
/quiet /norestart /nobackup /passive
goto STARTSETUP

:STARTSETUP
set DOTNETFX40="DotNetFX40\dotNetFx40_Full_x86_x64.exe"
set DOTNETFX40ZH="DotNetFX40\dotNetFx40LP_Full_x86_x64zh-Hans.exe"
set SQL2008="SqlExpress2008\SQLEXPR32_x86_CHS.EXE"

echo 正在安装 dotNetFx40...
%DOTNETFX40%
/lang:ENU /norestart /passive
%DOTNETFX40ZH%
/norestart /passive

echo 正在安装 SQLserver 2008 Express...
%SQL2008%
/qs /ACTION=Install /FEATURES=SQL /INSTANCENAME=SQLEXPRESS /SQLSVCACCOUNT="NT AUTHORITY\SYSTEM" /SQLSYSADMINACCOUNTS="NT AUTHORITY\SYSTEM" /AGTSVCACCOUNT="NT AUTHORITY\Network Service"

你可能感兴趣的:(sql)