Software per CC installieren/deinstallieren

Alle Fragen rund Antworten rund um die ACMP Client Commands und Container
Antworten
Benutzeravatar
Falaffel
Beiträge: 158
Registriert: Do Feb 04, 2016 5:53 pm

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).
Mit freundlichen Grüßen

Robert-Daniel Steichele
r.steichele@gottlob-rommel.de
http://www.gottlob-rommel.de
Benutzeravatar
ngottschalk
Beiträge: 293
Registriert: Mi Sep 08, 2010 12:57 pm

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) 6887 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) 6886 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) 6886 mal betrachtet
Ich hoffe, das war soweit verständlich, anderenfalls helfe ich bei Fragen natürlich gerne weiter=)
Dateianhänge
run.JPG
run.JPG (58.41 KiB) 6887 mal betrachtet
Capture.JPG
Capture.JPG (143.82 KiB) 6887 mal betrachtet
Mit freundlichen Grüßen

Niklas Gottschalk (gottschalk@zoller-usa.com)
IT Systems Administrator
Zoller Inc.
Benutzeravatar
Falaffel
Beiträge: 158
Registriert: Do Feb 04, 2016 5:53 pm

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.
Mit freundlichen Grüßen

Robert-Daniel Steichele
r.steichele@gottlob-rommel.de
http://www.gottlob-rommel.de
Benutzeravatar
ngottschalk
Beiträge: 293
Registriert: Mi Sep 08, 2010 12:57 pm

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.
Mit freundlichen Grüßen

Niklas Gottschalk (gottschalk@zoller-usa.com)
IT Systems Administrator
Zoller Inc.
Antworten