首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 數據庫知識 >  >> SQL Server 資料庫 >> 關於SqlServer

將 SQL Server 2005 SP2 整合至安裝媒體:修正版滑流腳本

     編輯:關於SqlServer

將 SQL Server 2005 SP2 整合進原始安裝檔(Slipstream),可建立含 SP2 的整合安裝映像,避免安裝後再打補丁。網路上流傳的腳本常有錯誤,經實測修正後可正常運作,整合後開發版/企業版 32 位安裝包約 855 MB (isz 格式)。

修正版 JScript 滑流腳本

/////////////////////////////////////////////////
// Slipstreaming MSSQL Server 2005 SP2
// Author : Zealic (2007-03-19 v1.01)
// Modified: Hollis Yao (2008-01-15 v2.00)
/////////////////////////////////////////////////
var swap   = "D:\\SWAP";
var sqldir = "D:\\MSSQL";
var sp2    = "D:\\SP2";
var server = sqldir + "\\Servers\\Setup";
var tools  = sqldir + "\\Tools\\Setup";
var log    = "D:\\install.log";

install();

function install() {
  WScript.Echo("Slipstreaming MSSQL Server 2005 SP2, please wait...");
  try {
    installServers();
    // exec("RD /Q /S " + swap);
    installTools();
    sucess();
  } catch(e) {
    WScript.Echo(e.name + " : " + e.message);
    fail();
  }
}

function installServers() {
  testRun("XCOPY /Y /H " + sp2 + "\\*.msi " + server);
  testRun('msiexec /quiet /a "' + server + '\\sqlrun_as.msi" TARGETDIR="' + swap + '" /L*vx "' + log + '"');
  testRun('msiexec /quiet /a "' + server + '\\sqlrun_dts.msi" TARGETDIR="' + swap + '" /L*vx "' + log + '"');
  testRun('msiexec /quiet /a "' + server + '\\sqlrun_ns.msi" TARGETDIR="' + swap + '" /L*vx "' + log + '"');
  testRun('msiexec /quiet /a "' + server + '\\sqlrun_rs.msi" TARGETDIR="' + swap + '" /L*vx "' + log + '"');
  testRun('msiexec /quiet /a "' + server + '\\sqlrun_sql.msi" TARGETDIR="' + swap + '" /L*vx "' + log + '"');
  testRun('msiexec /quiet /a "' + swap + '\\sqlrun_as.msi" /p "' + sp2 + '\\sqlrun_as.msp" /L*vx "' + log + '"');
  testRun('msiexec /quiet /a "' + swap + '\\sqlrun_dts.msi" /p "' + sp2 + '\\sqlrun_dts.msp" /L*vx "' + log + '"');
  testRun('msiexec /quiet /a "' + swap + '\\sqlrun_ns.msi" /p "' + sp2 + '\\sqlrun_ns.msp" /L*vx "' + log + '"');
  testRun('msiexec /quiet /a "' + swap + '\\sqlrun_rs.msi" /p "' + sp2 + '\\sqlrun_rs.msp" /L*vx "' + log + '"');
  testRun('msiexec /quiet /a "' + swap + '\\sqlrun_sql.msi" /p "' + sp2 + '\\sqlrun_sql.msp" /L*vx "' + log + '"');
  testRun("XCOPY /Y /E " + swap + " " + server);
}

function installTools() {
  testRun("XCOPY /Y /H " + sp2 + "\\*.msi " + tools);
  testRun('msiexec /quiet /a "' + tools + '\\sqlrun_tools.msi" TARGETDIR="' + swap + '2" /L*vx "' + log + '"');
  testRun('msiexec /quiet /a "' + swap + '2\\sqlrun_tools.msi" /p "' + sp2 + '\\sqlrun_tools.msp" /L*vx "' + log + '"');
  testRun("XCOPY /Y /E " + swap + "2 " + tools);
}

function testRun(runStr) {
  var wsh = new ActiveXObject("Wscript.Shell");
  var sys32 = wsh.ExpandEnvironmentStrings("%WINDIR%\\System32");
  wsh.CurrentDirectory = sys32;
  var ret = wsh.Run(runStr, 0, true);
  if (ret != 0) fail();
  return ret;
}

function exec(runStr) {
  var wsh = new ActiveXObject("Wscript.Shell");
  var shell = wsh.ExpandEnvironmentStrings("%COMSPEC%");
  var ret = wsh.Run(shell + " /K " + runStr, 0, true);
  if (ret != 0) fail();
  wsh.Run(shell + " /K exit", 0, true);
  return ret;
}

function fail() {
  WScript.Echo("Process failed! Press 'Enter' to exit.");
  WScript.Quit();
}

function sucess() {
  WScript.Echo("Process OK! Press 'Enter' to exit.");
  WScript.Quit();
}

執行前準備

  • 將 SQL Server 2005 原始安裝檔解壓至 D:\MSSQL
  • 將 SP2 解壓至 D:\SP2
  • 腳本中路徑請依實際情況調整
  • 以 cscript slipstream.js 執行

腳本會依序處理 Servers 與 Tools 兩組 MSI,先複製 MSI 到暫存區,再套用 MSP 修補檔,最後複製回原安裝目錄完成整合。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved