Seite 1 von 1

Software per CC installieren/deinstallieren

Verfasst: Mi Nov 13, 2019 12:47 pm
von Falaffel
Guten Morgen,

mit dem Wizard erstellt Client Commands bieten ja die Möglichkeit Programme zu installieren bzw. zu deinstallieren.

Ich habe in diesem Thema gelesen, dass dazu das Client Command von einem anderen Client Command aufgerufen und dabei ein Parameter mitgegeben werden muss. Ist dies weiterhin so, oder gibt es da mittlerweile andere Wege.
Es muss doch möglich sein ein Client Command manuell oder per Container zu starten und dabei entsprechend mitzugeben, was mit dem Programm passieren soll (installieren oder deinstallieren).

Re: Software per CC installieren/deinstallieren

Verfasst: Mi Nov 13, 2019 4:56 pm
von ngottschalk
Hallo Robert,

je nachdem, ob es sich im ein MSI Paket oder ein Setup Paket vom Wizard handelt, ist der Standardablauf ein wenig unterschiedlich; Bei einem MSI sieht er wie folgt aus:
MSI.JPG
MSI.JPG (142.73 KiB) 10314 mal betrachtet
Bei MSI Paketen wird aufgrund des Callertypes (müsste "ClientSVC" im Falle von Containern sein) die Registry nach dem ProductCode des MSIs durchsucht (Z. 74-85); Wenn der Code gefunden wurde, wird der Installmode auf einen leeren String gesetzt, wodurch keiner der Fälle für die Switch-Case Anweisung in Z. 92 zutrifft --> Es passiert Nichts

Bei Setuppaketen vom Wizard ist es ein wenig anders:
Capture.JPG
Capture.JPG (143.82 KiB) 10313 mal betrachtet
Da die Registry hier nicht pauschal durchsucht werden kann, wird der Installmode im Falle eines Aufrufs via ClientSVC immer auf "install" gesetzt (Z. 69-77), wodurch immer eine Installation stattfindet.

Soviel erstmal zum Standardablauf=)
Wenn du jetzt einen anderen Zweig im "Switch (%INSTALLMODE%)" beschreiten willst (also z.B. die Deinstallation), muss dafür gesorgt werden, dass der %INSTALLMODE% auf "uninstall" gesetzt wird. Hierfür muss die Variable "%ACTION%" gesetzt werden (wenn man %INSTALLMODE% direkt setzt, wird das über die vorher beschriebenen Mechanismen wieder mit einem anderen Wert belegt) über die "Else"-Zweige in Z. 90 bzw. 78, s. https://www.aagon.de/handbuch/acmp/de/5 ... nccexe.htm .

Was also tun? Die meiner Meinung nach einfachste Möglichkeit ist es, ein zusätzliches Paket zu bauen, dass das Originalpaket aufruft, aber %ACTION% vorbelegt. Hierzu muss im Clientskript lediglich der "Run Client Command" Befehl aufgerufen werden, und als Parameter "/v:ACTION=uninstall" eingetragen werden:
run.JPG
run.JPG (58.41 KiB) 10313 mal betrachtet
Ich hoffe, das war soweit verständlich, anderenfalls helfe ich bei Fragen natürlich gerne weiter=)

Re: Software per CC installieren/deinstallieren

Verfasst: Mi Nov 13, 2019 5:26 pm
von Falaffel
Hallo Niklas,

das habe ich soweit verstanden.

Wenn allerdings Commands, welche mit dem Wizard erstellt wurden, die Möglichkeit haben Programme zu installieren, deinstallieren, reparieren, parken und entparken, wäre es doch nur konsequent, wenn beim zuweisen so eines Command zu einem Container festgeleget werden kann, mit welchem Parameter das Command aufgerufen wird.
Ebenso, wenn ich ein Command manuell ausführe muss doch konsequenterweise eine Abfrage kommen oder eine Auswahl integriert sein, worüber ich festlege, was das Command machen soll.
So benötige ich theoretisch pro Command vier weitere, um alle Möglichkeiten des Commands nutzen zu können.

Re: Software per CC installieren/deinstallieren

Verfasst: Mi Nov 13, 2019 8:09 pm
von ngottschalk
Hi Robert,
Falaffel hat geschrieben: Mi Nov 13, 2019 5:26 pm [...]Wenn allerdings Commands, welche mit dem Wizard erstellt wurden, die Möglichkeit haben Programme zu installieren, deinstallieren, reparieren, parken und entparken, wäre es doch nur konsequent, wenn beim zuweisen so eines Command zu einem Container festgeleget werden kann, mit welchem Parameter das Command aufgerufen wird.[...]
kurz gesagt: Ja, wäre es;) Problematisch ist hierbei aber, dass Wizard-Pakete angepasst werden können, sodass diese Codepfade am Ende komplett anders aussehen könnten. Wenn Aagon hier z.B. eine Weiche für Wizard-Pakete einbauen würde, die nur die Anpassung der "SWITCH (%INSTALLMODE%)"-Cases erlauben würde und damit genau diesen Fall verhindern würde, wäre es machbar.
Falaffel hat geschrieben: Mi Nov 13, 2019 5:26 pm [...]So benötige ich theoretisch pro Command vier weitere, um alle Möglichkeiten des Commands nutzen zu können.[...]
Korrekt, wobei das "nur" bei der Nutzung via Container zutrifft, ansonsten können CCs gepusht werden, was die Ausführung eines Consolenskripts zulässt (das wiederum eine solche Auswahl ermöglicht). Aber auch hier gilt, dass das alles anpassbar ist und damit nicht gezwungenermaßen gegeben sein muss.