Seite 1 von 1

Status eines anderen Produkts aus Script heraus ändern

Verfasst: 24 Nov 2009, 15:43
von Neptunium
Hallo,

gibt es eine Möglichkeit außer dem eigenhändigen Patchen der %hostid%.ini Datei (wie in viewtopic.php?f=7&t=1085&start=0 angesprochen), um den Status (und nicht nur die Version) eines Produktes zu ändern?

Konkretes Beispiel:
Es gibt bei uns Anwendungen, die unbedingt die 9er Version des Flashplayers benötigen, aber aus Sicherheitsgründen sollten andere PCs die 10er Version bekommen. Soweit so gut und nicht aufwendig habe ich je ein Paket für den 9er und den 10er Flashplayer. Beide erkennen Installationen der anderen Version inklusive aller Unterversionen und deinstallieren alles sauber, bevor sie sich selber installieren. Nur würde ich gerne das 9er Paket auf "nicht installiert" setzen lassen, wenn der 10er installiert wird und umgedreht. Kann ich das aus einem Winst-Script heraus sauber bewerkstelligen, ohne auf das Patchen der %hostid%.ini Datei zurückgreifen zu müssen?
Ich dachte zuerst, daß ich das mit OpsiServiceCall hinkriegen kann, aber diese Funktion ist im Handbuch (Seite 103ff) leider nur sehr rudimentär beschrieben.

Gruß

Dirk

Re: Status eines anderen Produkts aus Script heraus ändern

Verfasst: 24 Nov 2009, 15:50
von matth46

Code: Alles auswählen

[opsiServiceCall_setProductInstallationStatus]
"method": "setProductInstallationStatus"
"params": [
           "$UninstallProductId$",
           "$ClientId$",
           "$InstallationStatus$"
          ]

Re: Status eines anderen Produkts aus Script heraus ändern

Verfasst: 24 Nov 2009, 15:53
von wolfbardo
Hallo Dirk,

ein etwas ausfuehrlicheres Beispiel:

Code: Alles auswählen


	comment "Setting Office (older version) to not_installed"
	DefVar $UninstallProductId$
	DefVar $InstallationStatus$
	DefVar $ActionRequest$
	DefVar $ClientId$
	DefVar $DnsDomainName$
	DefStringList $ServiceResult$
	
	Set $InstallationStatus$ = 'not_installed'
	Set $ActionRequest$ = 'none'
	Set $ServiceResult$ = getReturnListFromSection('opsiServiceCall_getDomain')
	Set $DnsDomainName$ = takestring(0, $ServiceResult$)
	Set $ClientId$ = lower(EnvVar("COMPUTERNAME")) + "." + $DnsDomainName$
	
	Set $UninstallProductId$ = 'office2003'
	opsiServiceCall_setProductInstallationStatus
	opsiServiceCall_setActionRequestStatus

Code: Alles auswählen

[opsiServiceCall_getDomain]
"method": "getDomain"
"params": [
          ]

[opsiServiceCall_setProductInstallationStatus]
"method": "setProductInstallationStatus"
"params": [
           "$UninstallProductId$",
           "$ClientId$",
           "$InstallationStatus$"
          ]

[opsiServiceCall_setActionRequestStatus]
"method": "setProductActionRequest"
"params": [
           "$UninstallProductId$",
           "$ClientId$",
           "$ActionRequest$"
          ]
Gruss
Bardo Wolf

Re: Status eines anderen Produkts aus Script heraus ändern

Verfasst: 24 Nov 2009, 16:51
von Neptunium
wolfbardo hat geschrieben:ein etwas ausfuehrlicheres Beispiel:

Code: Alles auswählen


	comment "Setting Office (older version) to not_installed"

[snip]

           "$ActionRequest$"
          ]
Ganz herzlichen Dank an beide! Dann lag ich ja eigentlich doch richtig. :)
Ich mache mich gleich ans Einbauen.

Danke und Gruß

Dirk

Re: Status eines anderen Produkts aus Script heraus ändern

Verfasst: 24 Nov 2009, 18:00
von Neptunium
wolfbardo hat geschrieben:ein etwas ausfuehrlicheres Beispiel:

Code: Alles auswählen


	comment "Setting Office (older version) to not_installed"

        [snip]

           "$ActionRequest$"
          ]
Kurze Rückmeldung: Damit funktioniert es einwandfrei exakt so, wie ich es wollte! Und wieder was gelernt. Herzlichen Dank nochmal. :)

Gruß

Dirk