Memo an mich,
Office 2010 per Kommandozeile unbemerkt repaieren:
setup.exe /repair "ProPlus" /config "SilentRepairConfig.xml"
Pfad zur .exe und zur .xml angeben, Produktnamen „ProPlus“ ggf. duch das vorhandene Produkt (steht in der setup.xml Zeile 3 am Anfang) ersetzen.
Setup.exe Parameter
SilentRepairConfig.xml erstellen, wenn im Ordner ProPlus.WW nicht vorhanden:
<Configuration Product="ProPlus"> <Display Level="none" CompletionNotice="no" SuppressModal="yes" AcceptEula="yes" /> <USERINITIALS Value="IQB" /> <USERNAME Value="IQB" /> <Setting Id="SETUP_REBOOT" Value="Never" /> </Configuration>
XML Elemente
Ganz wichtig ist das Element
Setting
, mit dem sich viele wichtige Dinge wie Reboot steuern lassen: Setup/Setting Properties
Grundlegende Batch:
set o2k10=\\server\pfad\Office2010 set log="\\server\pfad\Logs\%computername%.txt" if exist %windows%\checks\repairo2k10 goto end echo Repariere Office 2010... %o2k10%\setup.exe /repair ProPlus /config %o2k10%\ProPlus.WW\SilentRepairConfig.xml echo %date% %time% - Office repariert, errorlevel: %errorlevel% >> %log% md %windows%\checks\repairo2k10 :end
Update:
Bei einigen Office Repairs verhält sich Office 2010 anders. Mal startet es den Computer direkt nach der Reperatur neu, mal nicht. Ich hatte < setting Id="SETUP_REBOOT" Value="Never" /> in die .xml genommen damit der Rechner nie neu gestartet wird. Das resultiert bei den Rechnern, die neu gestartet hätten, im Fehlercode 3010: ein Neustart wird benötigt (Mögliche Errorlevel). Die Computer haben dann ein fehlerhaftes Office 2010 solange der Rechner nicht neu gestartet wird. Andere Microsoft Programme (Visual Studio z.B.) laufen dann auch fehlerhaft.
Also passe ich die Batch an, speicher den errorlevel des Repair-Vorgangs ab und reagiere auf den 1030 Code mit einem Reboot nachdem das Script beendet wurde.
set o2k10=\\server\pfad\Office2010 set log="\\server\pfad\Logs\%computername%.txt" if exist %windows%\checks\repairo2k10 goto end echo Repariere Office 2010... %o2k10%\setup.exe /repair ProPlus /config %o2k10%\ProPlus.WW\SilentRepairConfig.xml set repairerrorlevel=%errorlevel% REM weitere Befehle... echo %date% %time% - Office repariert, errorlevel: %repairerrorlevel% >> %log% REM weitere Befehle... md %windows%\checks\repairo2k10 :end if %repairerrorlevel%==1030 shutdown -r -f -t 120 -c "Um die Office Reperatur erfolgreich abzuschliessen muss der Computer neugestartet werden. Der Computer wird in 120 Sekunden neugestartet!"
Einfach < setting Id="SETUP_REBOOT" Value="Never" /> aus der .xml zu löschen würde den Computer direkt nach dem Repair-Vorgang neustarten, die Batch würde nicht zu Ende ausgeführt!