User Tools

Site Tools


userspace:msoffice2013pro

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

userspace:msoffice2013pro [2013/09/18 07:16]
highman72
userspace:msoffice2013pro [2021/08/23 08:37]
Line 1: Line 1:
-====== Microsoft Office 2013 Professional Plus 32-Bit ====== 
-//Scripts and guide by Jens Eppler based on the Office 2010 script by Soren Birk 
-// 
  
-I created this package with Office 32-Bit, but it is ment for both 32/64Bit-versions of Windows. I needed to evaluate Soren's script because there are different versions of Microsoft Office 2013 wich are not intended to be used with "setup.exe /admin". If you get an error message when using this command you might have the retail version of Microsoft Office 2013. But you can still use the config.xml method to install this product customized. In my script I am using some ProductProperties wich are written into a config.xml which is used for the silent installation then. 
- 
-The setup will install only the products wich are selected by the multivalue property "products". If you decide to install one product all children entries are forced to setup local. If you decide not to install SkyDrive the rightclick-behavior "sent-to ..." will be removed also by deleting a registry key. 
- 
-You might be able to also use this script with a volume license version of Office 2013 if you replace each occurrence of "proplusr" by "proplus". You can discover your version of Office when you look at the folders on your installmedia. There should be a folder named "[productid].ww". To verify this check inside this folder the file named "setup.xml". The correct product id is shown there in the first lines <Setup Id ="...">. 
- 
-There might also be the possibility to change the retail version to a volume license version as described [[http://ratnayesu.blogspot.de/2013/01/manually-convert-office-2013-proplus.html|here]] for example. But I don't know if the retail version license key will still be accepted then. 
- 
-**Tested with**: 
-  * OPSI 4.0.3.1 
-  * Winst 4.11.3.6 
-  * Windows 7, 64-Bit 
- 
-**Instructions:** 
-  * Creating the setup: 
-    * Extract the Office 2010 Prof Plus DVD to CLIENT_DATA\office2k13. 
-    * Use the control file as shown below for OPSI\control. 
-    * Take a look at this link for some inspiration: [[http://technet.microsoft.com/DE-DE/library/cc179195.aspx|Datei "Config.xml" in Office 2013]]. 
-  * Creating the uninstconfig.xml: 
-    * Use the baseline config.xml and uninstconfig.xml as shown below and copy these to CLIENT_DATA 
-    * You can also edit the .xml-files to satisfy your claims. 
- 
-**Tree:** 
-<code> 
-CLIENT_DATA 
-  ├ config.xml 
-  ├ delsub32.ins 
-  ├ office2k13.png 
-  ├ setup32.ins 
-  ├ uninstall32.ins 
-  ├ uninstconfig.xml 
-  └ office2k13 
-    └ ... 
-</code> 
- 
-==== Setup32.ins ==== 
-<code winst> 
-; Author Jens Eppler, based on Office 2010 Code by Soren Birk 
- 
-[Actions] 
-requiredWinstVersion >= "4.11.3.5" 
-  
-DefVar $UninstallProgram$ 
-DefVar $LogDir$ 
-DefVar $ProductId$   
-DefVar $MinimumSpace$ 
-DefVar $InstallDir$ 
-DefVar $ExitCode$ 
-DefVar $LicenseRequired$ 
-DefVar $LicenseKey$ 
-DefVar $LicensePool$ 
-DefVar $UninstCmd$ 
-DefVar $TempDir$  
-DefVar $exitcodeActivation$ 
-DefVar $UserName$ 
-DefVar $CompanyName$ 
-DefVar $ACCESSFiles$ 
-DefVar $EXCELFiles$ 
-DefVar $GrooveFiles2$ 
-DefVar $OUTLOOKFiles$ 
-DefVar $PPTFiles$ 
-DefVar $PROJECTFiles$ 
-DefVar $PubPrimary$ 
-DefVar $QueryFiles$ 
-DefVar $VISIOFiles$ 
-DefVar $WORDFiles$ 
-DefVar $XDOCSFiles$ 
-DefStringList $Products$ 
-  
-; ---------------------------------------------------------------- 
-; - Please edit the following values                             - 
-; ---------------------------------------------------------------- 
-Set $LogDir$          = "%SystemDrive%\tmp" 
-Set $ProductId$       = "office2k13" 
-Set $MinimumSpace$    = "2 GB" 
-Set $InstallDir$      = "%ProgramFiles32Dir%\Microsoft Office" 
-;Set $LicenseKey$      = "" 
-Set $LicenseKey$      = GetProductProperty("LicenseKey","") 
-Set $TempDir$         = "%SystemDrive%\opsi.org\tmp\" 
-;Set $UserName$        = '<USERNAME Value="Valued Customer" />' 
-Set $UserName$        = '<USERNAME Value="' + GetProductProperty("username", "Valued Customer") + '" />' 
-;Set $CompanyName$     = '<COMPANYNAME Value="" />' 
-Set $CompanyName$     = '<COMPANYNAME Value="' + GetProductProperty("companyname", "") + '" />' 
-;Set $Products$        = createStringList("Access", "Excel", "InfoPath", "Outlook", "PowerPoint", "Word") 
-Set $Products$        = GetProductPropertyList("products","True") 
-Set $ACCESSFiles$     = takeFirstStringContaining($Products$, "Access") 
-Set $EXCELFiles$      = takeFirstStringContaining($Products$, "Excel") 
-Set $GrooveFiles2$    = takeFirstStringContaining($Products$, "SkyDrive") 
-Set $OUTLOOKFiles$    = takeFirstStringContaining($Products$, "Outlook") 
-Set $PPTFiles$        = takeFirstStringContaining($Products$, "PowerPoint") 
-Set $PROJECTFiles$    = takeFirstStringContaining($Products$, "Project") 
-Set $PubPrimary$      = takeFirstStringContaining($Products$, "Publisher") 
-Set $VISIOFiles$      = takeFirstStringContaining($Products$, "Visio") 
-Set $WORDFiles$       = takeFirstStringContaining($Products$, "Word") 
-Set $XDOCSFiles$      = takeFirstStringContaining($Products$, "InfoPath") 
-; ---------------------------------------------------------------- 
-; 
-;Die oben ausgelesenen Variablen als PropertyListOption werden zu Strings, die in die config.xml ein- und dem Installer übergeben werden  
-;Access installieren oder nicht 
-if not ($ACCESSFiles$ = "") 
- Set $ACCESSFiles$  = '<OptionState Id="ACCESSFiles" State="local" Children="force" />' 
-else 
- Set $ACCESSFiles$  = '<OptionState Id="ACCESSFiles" State="absent" Children="force" />'  
-endif 
-;Excel installieren oder nicht (inkl. Datenbankanbindung) 
-if not ($EXCELFiles$ = "") 
- Set $QueryFiles$  = '<OptionState Id="QueryFiles" State="local" Children="force" />' 
- Set $EXCELFiles$  = '<OptionState Id="EXCELFiles" State="local" Children="force" />' 
-else 
- Set $QueryFiles$  = '<OptionState Id="QueryFiles" State="absent" Children="force" />'  
- Set $EXCELFiles$  = '<OptionState Id="EXCELFiles" State="absent" Children="force" />' 
-endif 
-;Skydrive installieren oder nicht 
-if not ($GrooveFiles2$ = "") 
- Set $GrooveFiles2$  = '<OptionState Id="GrooveFiles2" State="local" Children="force" />' 
-else 
- Set $GrooveFiles2$  = '<OptionState Id="GrooveFiles2" State="absent" Children="force" />'  
-endif 
-;Outlook installieren oder nicht 
-if not ($OUTLOOKFiles$ = "") 
- Set $OUTLOOKFiles$  = '<OptionState Id="OUTLOOKFiles" State="local" Children="force" />' 
-else 
- Set $OUTLOOKFiles$  = '<OptionState Id="OUTLOOKFiles" State="absent" Children="force" />'  
-endif 
-;Powerpoint installieren oder nicht 
-if not ($PPTFiles$ = "") 
- Set $PPTFiles$  = '<OptionState Id="PPTFiles" State="local" Children="force" />' 
-else 
- Set $PPTFiles$  = '<OptionState Id="PPTFiles" State="absent" Children="force" />'  
-endif 
-;Project installieren oder nicht 
-if not ($PROJECTFiles$ = "") 
- Set $PROJECTFiles$  = '<OptionState Id="PROJECTFiles" State="local" Children="force" />' 
-else 
- Set $PROJECTFiles$  = '<OptionState Id="PROJECTFiles" State="absent" Children="force" />'  
-endif 
-;Publisher installieren oder nicht 
-if not ($PubPrimary$ = "") 
- Set $PubPrimary$  = '<OptionState Id="PubPrimary" State="local" Children="force" />' 
-else 
- Set $PubPrimary$  = '<OptionState Id="PubPrimary" State="absent" Children="force" />'  
-endif 
-;Visio installieren oder nicht 
-if not ($VISIOFiles$ = "") 
- Set $VISIOFiles$  = '<OptionState Id="VISIOFiles" State="local" Children="force" />' 
-else 
- Set $VISIOFiles$  = '<OptionState Id="VISIOFiles" State="absent" Children="force" />'  
-endif 
-;Word installieren oder nicht 
-if not ($WORDFiles$ = "") 
- Set $WORDFiles$  = '<OptionState Id="WORDFiles" State="local" Children="force" />' 
-else 
- Set $WORDFiles$  = '<OptionState Id="WORDFiles" State="absent" Children="force" />'  
-endif 
-;InfoPath installieren oder nicht 
-if not ($XDOCSFiles$ = "") 
- Set $XDOCSFiles$  = '<OptionState Id="XDOCSFiles" State="local" Children="force" />' 
-else 
- Set $XDOCSFiles$  = '<OptionState Id="XDOCSFiles" State="absent" Children="force" />'  
-endif 
- 
- 
-if not(HasMinimumSpace ("%SystemDrive%", $MinimumSpace$)) 
- LogError "Not enough space on %SystemDrive%, " + $MinimumSpace$ + " on dirve %SystemDrive% is needed for " + $ProductId$ 
- isFatalError "Not enough space" 
-else 
- comment "Display product logo" 
- ShowBitmap "%ScriptPath%\" + $ProductId$ + ".png" 
-  
- if FileExists("%ScriptPath%\delsub32.ins") 
- comment "Start uninstall sub section" 
- Sub "%ScriptPath%\delsub32.ins" 
- endif 
-  
- Message "Installing " + $ProductId$ + " ..." 
-  
- comment "Copying empty config.xml to $TempDir$" 
- Files_copy_patchtextfile 
-  
- comment "Patching config.xml" 
- PatchTextFile_config_xml $TempDir$ + "config.xml" 
-  
- comment "Start setup program" 
- ChangeDirectory "%SCRIPTPATH%" 
- Winbatch_install 
- Sub_check_exitcode 
-  
- if contains($GrooveFiles2$, "absent") 
- comment "Registry-Key für Rechtsklick Skydrive löschen" 
- Registry_SkyDrive_loeschen 
- endif 
-  
- if not ($LicenseKey$ = "") 
- comment "Set License Key" 
- DosInAnIcon_set_key 
- set $exitcodeActivation$ = getLastExitCode 
-  
- if not ($exitcodeActivation$ = "0") 
- LogError "Exitcode unequal zero: "+$exitcodeActivation$+" Activation seems to be failed !" 
- isFatalError "activation failed" 
- else 
- comment "Activation seems to be successful: exit code = 0" 
- endif 
- endif 
-  
-endif 
- 
-[Files_copy_patchtextfile] 
-copy "%ScriptPath%\config.xml" $TempDir$ 
- 
-[PatchTextFile_config_xml] 
-FindLine "</Configuration>" 
-InsertLine '$XDOCSFiles$' 
-InsertLine '$WORDFiles$' 
-InsertLine '$VISIOFiles$' 
-InsertLine '$QueryFiles$' 
-InsertLine '$PubPrimary$' 
-InsertLine '$PROJECTFiles$' 
-InsertLine '$PPTFiles$' 
-InsertLine '$OUTLOOKFiles$' 
-InsertLine '$GrooveFiles2$' 
-InsertLine '$EXCELFiles$' 
-InsertLine '$ACCESSFiles$' 
-InsertLine '$CompanyName$' 
-InsertLine '$UserName$' 
- 
-[Winbatch_install] 
-"%ScriptPath%\Office2k13\setup.exe" /config "$TempDir$\config.xml" 
-  
-[Registry_SkyDrive_loeschen] 
-deletekey [HKCR\AllFilesystemObjects\shell\SPFS.ContextMenu] 
- 
-[DosInAnIcon_set_key]  
-cscript "C:\Program Files (x86)\Microsoft Office\Office15\OSPP.VBS" /inpkey:$LicenseKey$ 
-exit %ERRORLEVEL% 
- 
-[Sub_check_exitcode] 
-comment "Test for installation success via exit code" 
-set $ExitCode$ = getLastExitCode 
-; informations to exit codes see 
-; http://msdn.microsoft.com/en-us/library/aa372835(VS.85).aspx 
-; http://msdn.microsoft.com/en-us/library/aa368542.aspx 
-if ($ExitCode$ = "0") 
- comment "Looks good: setup program gives exitcode zero" 
-else 
- comment "Setup program gives a exitcode unequal zero: " + $ExitCode$ 
- if ($ExitCode$ = "1605") 
- comment "ERROR_UNKNOWN_PRODUCT 1605 This action is only valid for products that are currently installed." 
- comment "Uninstall of a not installed product failed - no problem" 
- else 
- if ($ExitCode$ = "1641") 
- comment "looks good: setup program gives exitcode 1641" 
- comment "ERROR_SUCCESS_REBOOT_INITIATED 1641 The installer has initiated a restart. This message is indicative of a success." 
- else 
- if ($ExitCode$ = "3010") 
- comment "looks good: setup program gives exitcode 3010" 
- comment "ERROR_SUCCESS_REBOOT_REQUIRED 3010 A restart is required to complete the install. This message is indicative of a success." 
- else 
- logError "Fatal: Setup program gives an unknown exitcode unequal zero: " + $ExitCode$ 
- isFatalError 
- endif 
- endif 
- endif 
-endif 
-</code> 
- 
-==== Uninstall32.ins ==== 
-<code winst> 
-; Author Jens Eppler, based on Office 2010 Code by Soren Birk 
-  
-[Actions] 
-requiredWinstVersion >= "4.11.2.6" 
-  
-DefVar $UninstallProgram$ 
-DefVar $LogDir$ 
-DefVar $ExitCode$ 
-DefVar $ProductId$ 
-DefVar $InstallDir$ 
-DefVar $LicenseRequired$ 
-DefVar $LicensePool$ 
-DefVar $UninstCmd$ 
-  
-Set $LogDir$ = "%SystemDrive%\tmp" 
-  
-; ---------------------------------------------------------------- 
-; - Please edit the following values                             - 
-; ---------------------------------------------------------------- 
-Set $ProductId$       = "office2k13" 
-Set $InstallDir$      = "%ProgramFiles32Dir%\Microsoft Office" 
-; ---------------------------------------------------------------- 
-  
-comment "Display product logo" 
-ShowBitmap "%ScriptPath%\" + $ProductId$ + ".png" 
-  
-Message "Uninstalling " + $ProductId$ + " ..." 
-  
-if FileExists("%ScriptPath%\delsub32.ins") 
- comment "Start uninstall sub section" 
- Sub "%ScriptPath%\delsub32.ins" 
-endif 
-</code> 
- 
-==== Delsub32.ins ==== 
-<code winst> 
-; Author Jens Eppler, based on Office 2010 Code by Soren Birk 
-  
-Set $UninstallProgram$ = "%ScriptPath%\Office2k13\setup.exe" 
-Set $UninstCmd$ = "/uninstall ProPlusr /config %ScriptPath%\uninstconfig.xml" 
-  
-Message "Uninstalling " + $ProductId$ + " ..." 
-  
-if FileExists("%ProgramFiles32Dir%\Microsoft Office\Office15\1031") 
- comment "The program seems to be installed, starting the uninstallation." 
- Winbatch_uninstall 
- sub_check_exitcode 
-endif 
-  
-[Winbatch_uninstall] 
-"%ScriptPath%\Office2k13\setup.exe "$UninstCmd$ 
-  
-  
-[Sub_check_exitcode] 
-comment "Test for installation success via exit code" 
-set $ExitCode$ = getLastExitCode 
-; informations to exit codes see 
-; http://msdn.microsoft.com/en-us/library/aa372835(VS.85).aspx 
-; http://msdn.microsoft.com/en-us/library/aa368542.aspx 
-if ($ExitCode$ = "0") 
- comment "Looks good: setup program gives exitcode zero" 
-else 
- comment "Setup program gives a exitcode unequal zero: " + $ExitCode$ 
- if ($ExitCode$ = "1605") 
- comment "ERROR_UNKNOWN_PRODUCT 1605 This action is only valid for products that are currently installed." 
- comment "Uninstall of a not installed product failed - no problem" 
- else 
- if ($ExitCode$ = "1641") 
- comment "looks good: setup program gives exitcode 1641" 
- comment "ERROR_SUCCESS_REBOOT_INITIATED 1641 The installer has initiated a restart. This message is indicative of a success." 
- else 
- if ($ExitCode$ = "3010") 
- comment "looks good: setup program gives exitcode 3010" 
- comment "ERROR_SUCCESS_REBOOT_REQUIRED 3010 A restart is required to complete the install. This message is indicative of a success." 
- else 
- logError "Fatal: Setup program gives an unknown exitcode unequal zero: " + $ExitCode$ 
- isFatalError 
- endif 
- endif 
- endif 
-endif 
-</code> 
- 
-==== config.xml ==== 
-<code xml> 
-<Configuration Product="ProPlusr"> 
-<Display Level="none" CompletionNotice="no" SuppressModal="yes" AcceptEula="yes" /> 
-<Logging Type="standard" Path="D:\opsi.org\log" Template="Microsoft Office Professional Plus Setup(*).txt" /> 
-<Setting Id="SETUP_REBOOT" Value="Never" /> 
-</Configuration> 
-</code> 
- 
-==== uninstconfig.xml ==== 
-<code xml> 
-<Configuration Product="ProPlusr"> 
-<Display Level="none" CompletionNotice="no" SuppressModal="yes" AcceptEula="yes" /> 
-<Logging Type="standard" Path="D:\opsi.org\log" Template="Microsoft Office Professional Plus Setup(*).txt" /> 
-<Setting Id="SETUP_REBOOT" Value="Never" /> 
-</Configuration> 
-</code> 
- 
-==== control ==== 
-<code> 
-[Package] 
-version: 3 
-depends:  
-incremental: False 
- 
-[Product] 
-type: localboot 
-id: office2k13 
-name: Office 2013 
-description: Office 2013 
-advice:  
-version: 1.0 
-priority: 0 
-licenseRequired: True 
-productClasses:  
-setupScript: setup32.ins 
-uninstallScript: uninstall32.ins 
-updateScript:  
-alwaysScript:  
-onceScript:  
-customScript:  
-userLoginScript:  
- 
-[ProductProperty] 
-type: unicode 
-name: username 
-multivalue: False 
-editable: True 
-description: Benutzername 
-values: [""] 
-default: [""] 
- 
-[ProductProperty] 
-type: unicode 
-name: companyname 
-multivalue: False 
-editable: True 
-description: Firmenname 
-values: [""] 
-default: [""] 
- 
-[ProductProperty] 
-type: unicode 
-name: licensekey 
-multivalue: False 
-editable: True 
-description: Lizenzkey für die Installation 
-values: [""] 
-default: [""] 
- 
-[ProductProperty] 
-type: unicode 
-name: products 
-multivalue: True 
-editable: False 
-description: Installationsoptionen, was wird installiert 
-values: ["Access", "Excel", "InfoPath", "Outlook", "PowerPoint", "Project", "Publisher", "SkyDrive", "Visio", "Word"] 
-default: ["Access", "Excel", "InfoPath", "Outlook", "PowerPoint", "Word"] 
- 
-[Changelog] 
-office2k13 (1.0-3) testing; urgency=low 
-  * Including setting LicenseKey 
- 
-office2k13 (1.0-2) testing; urgency=low 
-  * Testing multivalue Options and PatchTextFiles 
- 
-office2k13 (1.0-1) testing; urgency=low 
- 
-  * Initial package 
- 
- -- Jens Eppler <...>  Tue, 17 Sep 2013 08:11:32 +0000 
-</code> 
userspace/msoffice2013pro.txt · Last modified: 2021/08/23 08:37 (external edit)