zoukankan      html  css  js  c++  java
  • 命令行静默安装SQLServer 2008R2脚本

    依据网上的静默安装操作方法,参考微软《如何从命令提示符安装 SQL Server 2008 R2》,编写自己使用的静默安装脚本。

    有欠缺之处请大家指正。

    脚本内使用批处理创建随机密码,用于创建SQLServer对应的启动账号。安装完成后需要做对应的账号管理,需要手工修改此账号密码,同时在SQLServer配置管理工具内修改对应的服务启动账号密码。

    使用时,请将代码粘贴到记事本,按需求对照微软命令行安装文档修改文档内容。修改文件扩张名为.bat.

    运行时需要提供一个参数:安装源文件根目录,末位不要带路径限定符”\"

    例如:QueryInstallSQLServer.bat Z:

    注意事项:

      此脚本创建的系统账号由于没有配置特别选项,重启服务时会不能正常启动。需要手工修改用户选项“用户不能修改密码”和“密码永不过期”

      另外,账号本机拒绝登录等安全问题也没处理。

      没有处理原因是这部分脚本不知道怎么写,请大大们慷慨赐教。先谢啦

    主要需要修改的选项是:

    /FEATURES 安装组件列表
    /PID 产品序列号
    /SQLTEMPDBDIR TempDB数据库数据文件存放位置
    /SQLTEMPDBLOGDIR TempDB数据库日志文件存放位置
    /SQLBACKUPDIR 备份文件存放位置
    /SQLUSERDBDIR 用户数据库数据文件存放位置
    /SQLUSERDBLOGDIR 用户数据库日志文件存放位置
    /IACCEPTSQLSERVERLICENSETERMS 同意用户协议,在安装SQL Server2005时需要将此参数去掉
    @echo off
    setlocal enabledelayedexpansion
    cls
    Set SourcePath=%1
    if not exist "%SourcePath%\setup.exe" (
            echo Error:Not Correct Install File For SQLServer 2008R2
            pause
            exit
    )
    echo Create System Service Users
    call :randomPassword 14 sqlsrvpwd sqlagtpwd 
    net user sqlsrvuser /delete
    net user sqlsrvuser %sqlsrvpwd% /add
    net user sqlagtuser /delete
    net user sqlagtuser %sqlagtpwd% /add
    
    wmic /? 1>nul 2>nul
    wmic path Win32_UserAccount where name='sqlsrvuser' set  PasswordExpires=false
    wmic path Win32_UserAccount where name='sqlagtuser' set  PasswordExpires=false
    
    echo Install .Net Framework
    Rem cd %instalpath%
    %SourcePath%\setup.exe /QS
    Rem /IACCEPTSQLSERVERLICENSETERMS is sqlserver2008R2 needed
    echo Install SQL Server
    %SourcePath%\setup.exe ^
    /Q /ACTION=Install ^
    /IACCEPTSQLSERVERLICENSETERMS ^
    /FEATURES=SQLENGINE,REPLICATION,CONN,BC,SSMS,ADV_SSMS ^
    /INSTANCENAME="MSSQLSERVER" ^
    /PID="序列号" ^
    /INDICATEPROGRESS="True" ^
    /INSTALLSHAREDDIR="C:\Program Files\Microsoft SQL Server" ^
    /INSTALLSHAREDWOWDIR="C:\Program Files (x86)\Microsoft SQL Server" ^
    /INSTANCEDIR="C:\Program Files\Microsoft SQL Server" ^
    /SQLCOLLATION="Latin1_General_100_CI_AS" ^
    /AGTSVCACCOUNT="sqlagtuser" /AGTSVCSTARTUPTYPE="Automatic" /AGTSVCPASSWORD="%sqlagtpwd%" ^
    /SQLSVCACCOUNT="sqlsrvuser" /SQLSVCSTARTUPTYPE="Automatic" /SQLSVCPASSWORD="%sqlsrvpwd%" ^
    /SQLSYSADMINACCOUNTS="Administrator" ^
    /TCPENABLED="1" ^
    /NPENABLED="0" ^
    /FILESTREAMLEVEL="0" ^
    /SQLTEMPDBDIR="D:\MSSQL\Data" ^
    /SQLTEMPDBLOGDIR="D:\MSSQL\Log" ^
    /SQLBACKUPDIR="D:\MSSQL\Backup" ^
    /SQLUSERDBDIR="D:\MSSQL\Data" ^
    /SQLUSERDBLOGDIR="D:\MSSQL\Log"
    echo Finished
    pause
    Exit
    
    
    
    :randomPassword
    ::-----create random password
    ::-----%1 password length %2 return password parameter
    ::-----goto loop , parameter nesting
    @echo off
    if "%1"=="" goto :eof
    if %1 lss 1 goto :eof
    set password_len=%1
    set return=
    set wordset=abcdefghijklmnopqrstuvwxyz023456789_ABCDEFGHIJKLMNOPQRSTUVWXYZ
    ::------------------loop
    :randomPassword1
    set /a numof=%random%%%62
    call set return=%return%%%wordset:~%numof%,1%%
    set /a password_len-=1
    if %password_len% gtr 0 goto randomPassword1
    ::------------------loop
    if not "%2"=="" set %2=%return%
    shift /2
    if not "%2"=="" goto randomPassword
    goto :eof

     原文:http://www.cnblogs.com/ivistn/archive/2012/02/15/2352835.html

  • 相关阅读:
    结合中断上下文切换和进程上下文切换分析Linux内核的一般执行过程--课程实验3
    深入理解系统调用 -- 课程实验2
    基于mykernel 2.0编写一个操作系统内核--课程实验1
    如何评测软件工程知识技能水平?
    如何评测一个软件工程师的计算机网络知识水平与网络编程技能水平?
    深入理解TCP协议及其源代码
    Socket与系统调用深度分析
    创新产品的需求分析:未来的图书是什么样的
    构建调试Linux内核网络代码的环境MenuOS系统
    php db2 返回当前insert记录的自增id
  • 原文地址:https://www.cnblogs.com/ivistn/p/2352835.html
Copyright © 2011-2022 走看看