MS-Office 2010 in 4 Versionen. Wie am besten Umsetzen?

IvicaE
Beiträge: 136
Registriert: 13 Sep 2016, 14:10

Re: MS-Office 2010 in 4 Versionen. Wie am besten Umsetzen?

Beitrag von IvicaE »

@thomas.besser

Danke erst einmal recht herzlich!

Ich würde mich für eine oder die andere Vorgehensweise entscheiden, ich weiß nicht für welche.
das wmci verstehe ich nicht ganz:
suche ich so ähnlich wie in deinem Beispiel, bekomme ich eine Menge Feedback, dauert aber wirklich ziemlich lange und ich weiß nicht wie man darauf abfragen kann (Liste 0 oder >0)?

Wenn das wmci nicht klappt werde ich wohl über die Registry gehen.
thomas.besser
Beiträge: 461
Registriert: 09 Sep 2009, 09:40

Re: MS-Office 2010 in 4 Versionen. Wie am besten Umsetzen?

Beitrag von thomas.besser »

IvicaE hat geschrieben:@thomas.besser
suche ich so ähnlich wie in deinem Beispiel, bekomme ich eine Menge Feedback, dauert aber wirklich ziemlich lange und ich weiß nicht wie man darauf abfragen kann (Liste 0 oder >0)?
Was meinst du mit "Feedback"? Also bei dir läuft das OPSI-Script sehr lange?

Das hab ich hier noch nie gehabt, vielleicht waren meine Schnipsel zu wenig Info.

Schau dir mal z.B. das hier an, dort ist es eingebaut: https://github.com/opsi4instituts/dfn_7zip/

Gruß
Thomas
pandel
Beiträge: 830
Registriert: 25 Jan 2013, 16:47

Re: MS-Office 2010 in 4 Versionen. Wie am besten Umsetzen?

Beitrag von pandel »

Was deine erste Frage anbelangt, warum gliederst du die Parametersteuerung nicht in ein übergeordnetes Paket aus?

Sprich, du hast ein Paket

msoffice

mit den notwendigen Parametern 32/64 und Std/PP

Zusätzlich machst du jeweils einzelne (logisch untergeordnete) Pakete für die jeweilige Variante, die du entsprechend benennst (am besten so bescheuert, dass keiner auf die Idee kommt, die Dinger manuell anzuwerfen).

tec-prod-mso-std-32
tec-prod-mso-std-64
tec-prod-mso-pp-32
tec-prod-mso-pp-64

Jetzt brauchst du in deinem msoffice Paket nur noch die Parameterauswahl mit dem jeweiligen Paket verknüpfen und per opsiServiceCall dafür sorgen, dass das Ding dann auch angeworfen wird. Voilà!

Oder hab ich das jetzt falsch verstanden?

Gruß
Holger
thomas.besser
Beiträge: 461
Registriert: 09 Sep 2009, 09:40

Re: MS-Office 2010 in 4 Versionen. Wie am besten Umsetzen?

Beitrag von thomas.besser »

Sorry, etwas verspätet und OT.
larsg hat geschrieben: Edit: Microsoft selbst rät davon ab, Office mit 64-Bit zu installieren. Insbesondere wenn man Plugins bspw. in Outlook nutzt, wird man damit auf Probleme stoßen.
Ich geb dir Recht, dass MS für MSO 2013 eine Empfehlung pro 32-Bit gibt. Bei MSO 2016 klingt das IMO nicht mehr so klar und eindeutig: https://support.office.com/de-de/articl ... 6f49b8d261
larsg
Beiträge: 283
Registriert: 16 Dez 2014, 18:06

Re: MS-Office 2010 in 4 Versionen. Wie am besten Umsetzen?

Beitrag von larsg »

IvicaE hat geschrieben:Lange Rede kurzer Sinn:
gibt es eine Möglichkeit Office unabhängig der bereits installierten Version (Standard/ProPlus) zu deinstallieren?
Du kannst in der msp-datei einstellen das vorherige Versionen deinstalliert werden sollen, das müsste editions-unabhängig sein.

ansonsten such einfach in der Registry nach den entsprechenden GUID's unter

Code: Alles auswählen

HKLM\SOFTWARE\Windows\Wow6432Node\Microsoft\Windows\CurrentVersion\Uninstall
Die GUID ist wie folgt aufgebaut:

Code: Alles auswählen

Office[MajorVersion].[EDITION]
Office14.PROPLUS
MajorVersion 14 entspricht 2010.
Edition sollte als String dem entsprechen was du auf dem Datenträger als Verzeichnisnamen mit der Endung .WW vorfindest.

Einfach eine Stringliste mit allen denkbaren installierten Varianten bauen:

Code: Alles auswählen

DefStringList $GUIDs$
Set $GUIDs$ = CreateStringList("Office14.STANDARD","Office14.PROPLUS")

For %GUID% in $GUIDs$ do Sub_uninstall_office
In der Subroutine Sub_uninstall_office definierst du wie gewohnt die Deinstallation, die Variable %GUID% entspricht jeweils einer zu deinstallierenden Variante.

Wenn eine Variante nicht auf dem PC gefunden wurde, sollte MSI den ExitCode 1605 zurückgeben, dieser darf dann entsprechend nicht als Fehler behandelt werden ;)

Die Befehlszeite zur Deinstallation kannst du aus dem UninstallString des enstsprechenden Registry-Schlüssels entnehmen.

Code: Alles auswählen

[Sub_uninstall_office]
Message "Deinstalliere %GUID%"
Set $UninstallString$ = GetRegistryStringValue32("[HKLM\SOFTWARE\Windows\Microsoft\Windows\CurrentVersion\Uninstall\%GUID%] UninstallString")
WinBatch_uninstall_office /32bit /WaitOnClose
Set $ExitCode$ = GetLastExitCode
Switch $ExitCode$
	Case "0"
		Comment "INFO "+$ExitCode$+": Setup successful"
	EndCase
	Case "1641" 
		Comment "INFO "+$ExitCode$+": Setup successful, requires restart"
		ExitWindows /Reboot
	EndCase
	Case "3010"
		Comment "INFO "+$ExitCode$+": Setup successful, requires restart"
		ExitWindows /Reboot
	EndCase
	Case "1605" 
		Comment "INFO "+$ExitCode$+": This action is only valid for products that are currently installed."
	EndCase
	DefaultCase
		LogError "ERROR "+$ExitCode$+": Unknown error"
		IsFatalError "MSI error "+$ExitCode$
	Endcase
EndSwitch


[WinBatch_uninstall_office]
$UninstallString$

Edit: Es fehlte die Angabe der %GUID%-Variable beim Auslesen des UninstallString aus der Registry.
Antworten