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

  • 相关阅读:
    298. Binary Tree Longest Consecutive Sequence
    117. Populating Next Right Pointers in Each Node II
    116. Populating Next Right Pointers in Each Node
    163. Missing Ranges
    336. Palindrome Pairs
    727. Minimum Window Subsequence
    211. Add and Search Word
    年底购物狂欢,移动支付安全不容忽视
    成为程序员前需要做的10件事
    全球首推iOS应用防破解技术!
  • 原文地址:https://www.cnblogs.com/ivistn/p/2352835.html
Copyright © 2011-2022 走看看