Итак, дистрибутив «все в одном, ничего нажимать не надо» мы сделали. Теперь нужно довести автоматизацию до абсурда, то есть до такого состояния, когда при установке диска в привод все происходит полностью автоматически. Здесь уже не обойтись без программирования, зато предложенное решение будет не только устанавливать Office, Project и Visio, но и проверять их наличие на компьютере и не предпринимать лишних телодвижений, если что-то уже установлено. Для создания такого чудо-решения нужны только прямые руки и текстовый редактор :)

  1. Все в той же папке c:\OfficeDis создаем файл setup.vbs следующего содержания:

    const msiInstallStateAbsent = 2
    const msiInstallStateAdvertised = 1
    const msiInstallStateBadConfig = -6
    const msiInstallStateBroken = 0
    const msiInstallStateDefault = 5
    const msiInstallStateIncomplete = -5
    const msiInstallStateInvalidArg = -2
    const msiInstallStateLocal = 3
    const msiInstallStateNotUsed = -7
    const msiInstallStateRemoved = 1
    const msiInstallStateSource = 4
    const msiInstallStateSourceAbsent = -4
    const msiInstallStateUnknown = -1
    
    bInstallOfficeEnt = false
    bInstallOfficePro = false
    bInstallVisioPro = false
    bInstallProjectPro = false
    
    Set oWI = CreateObject("WindowsInstaller.Installer")
    
    if oWI.ProductState("{90120000-0012-0000-0000-0000000FF1CE}") <> msiInstallStateDefault and _
       oWI.ProductState("{90120000-0011-0000-0000-0000000FF1CE}") <> msiInstallStateDefault and _
       oWI.ProductState("{90120000-0030-0000-0000-0000000FF1CE}") <> msiInstallStateDefault then
    '	WScript.Echo "Office 2007 not installed"
    	bInstallOfficePro = true
    end if
    
    if oWI.ProductState("{90120000-0053-0000-0000-0000000FF1CE}") <> msiInstallStateDefault and _
       oWI.ProductState("{90120000-0051-0000-0000-0000000FF1CE}") <> msiInstallStateDefault then
    '	WScript.Echo "Visio 2007 not installed"
    	bInstallVisioPro = true
    end if
    
    if oWI.ProductState("{90120000-003A-0000-0000-0000000FF1CE}") <> msiInstallStateDefault and _
       oWI.ProductState("{90120000-003B-0000-0000-0000000FF1CE}") <> msiInstallStateDefault then
    '	WScript.Echo "Project 2007 not installed"
    	bInstallProjectPro = true
    end if
    
    set wShell = CreateObject("WScript.Shell")
    sSetupFolder = Replace(Wscript.ScriptFullName, Wscript.ScriptName, "")
    sSetupCmd = ""
    
    if bInstallOfficePro then
    	WScript.Echo "Installing Office Professional Plus 2007..."
    	sSetupCmd = sSetupFolder & "setup.exe /config """ & sSetupFolder & _
    	  "ProPlus.WW\config.xml"" /adminfile """ & sSetupFolder & "Customize\OfficePro.MSP"""
    	wShell.Run sSetupCmd, 1, True
    elseif bInstallOfficeEnt then
    	WScript.Echo "Installing Office Enterprise 2007..."
    	sSetupCmd = sSetupFolder & "setup.exe /config """ & sSetupFolder & _
    	  "Enterprise.WW\config.xml"" /adminfile """ & sSetupFolder & "Customize\OfficeEnt.MSP"""
    	wShell.Run sSetupCmd, 1, True
    end if
    
    if bInstallVisioPro then
    	WScript.Echo "Installing Visio Professional 2007..."
    	sSetupCmd = sSetupFolder & "setup.exe /config """ & sSetupFolder & _
    	  "VisPro.WW\config.xml"" /adminfile """ & sSetupFolder & "Customize\Visio.MSP"""
    	wShell.Run sSetupCmd, 1, True
    end if
    
    if bInstallProjectPro then
    	WScript.Echo "Installing Project Professional 2007..."
    	sSetupCmd = sSetupFolder & "setup.exe /config """ & sSetupFolder & _
    	  "PrjPro.WW\config.xml"" /adminfile """ & sSetupFolder & "Customize\Project.MSP"""
    	wShell.Run sSetupCmd, 1, True
    end if
    
    WScript.Echo "Complete."

    Приведенный скрипт предполагает, что все кастомизированные msp файлы находятся в папке c:\OfficeDis\Customize и называются в соответствии с названиями продуктов: OfficePro.msp для Office Professional Plus, OfficeEnt.msp для Office Enterprise, Visio.msp для Visio Professional, Project.msp для Project Professional.

  2. В папке c:\OfficeDis открываем файл autorun.inf и модифицируем его следующим образом (измененная строка выделена красным):

    [autorun]
    OPEN=%systemroot%\system32\cscript.exe setup.vbs /B
    ICON=SETUP.EXE,0
    
    shell\configure=&Configure...
    shell\configure\command=SETUP.EXE
    
    shell\install=&Install...
    shell\install\command=SETUP.EXE
  3. Теперь содержимое папки можно записать на DVD и наслаждаться благами цивилизации :)

Вставить свои пять копеек

Чтобы оставить комментарий, Вам нужно идентифицировать себя.