Flexera Installshield Basic MSI Shortcut für jeden User anlegen und löschen
Hi @ All
MSIs zu erstellen ist ein wichtiger Bestandteil bei uns im Unternehmen. Leider nicht immer einfach und manche Lösungen sind eher holprig als elegant.
Leider auch die, zu der ich eine Frage an euch habe. Ich hoffe auf fachkundige Unterstützung.
Doing:
Ich habe jeweils in einer Custom Action (MSi Type Numper 38) ein VBScript hinterlegt das für jeden User der bereits einmal am Client angemeldet war, bei der Installation ein Shortcut unter SendTo anlegt und bei der Deinstallation wieder löscht. Für alle neuen User gibt es ein ActiveSetup.
Das Problem:
Das funktioniert wunderbar, wenn man die MSI mit administrativen Rechten im User-Kontext ausführt, aber nicht, wenn man die Installation im SYSTEM-Kontext durchführt was bei Massendeployments via SCCM usus ist. Auch nicht, wenn ich die In-Script-Execution auf Deferred in System Context umstelle (MSI Type 3110).
Ich habe das zwar so gelöst, dass ich beide Scripte nun in die SupportFiles ausgelagert habe und in der CA via Type 3106 (New Exe; Path referencing an directory) ausführe, frage mich aber warum es nicht direkt in der CustomAction funktioniert.
Beide Scripte laufen unabhängig zur MSI was Properties usw. angeht, holen sich alle notwendigen Pfade usw. selbständig aus der Registry usw. und legen die Shortcuts an der gewünschten Stelle ab bzw. löschen diese.
Frage:
Was habe ich nicht verstanden?
Warum funktionieren die Scripte von SUPPORTDIR aus aber nicht in der CA?
Danke für eure Hilfe!
Grüße!
Mayho
MSIs zu erstellen ist ein wichtiger Bestandteil bei uns im Unternehmen. Leider nicht immer einfach und manche Lösungen sind eher holprig als elegant.
Leider auch die, zu der ich eine Frage an euch habe. Ich hoffe auf fachkundige Unterstützung.
Doing:
Ich habe jeweils in einer Custom Action (MSi Type Numper 38) ein VBScript hinterlegt das für jeden User der bereits einmal am Client angemeldet war, bei der Installation ein Shortcut unter SendTo anlegt und bei der Deinstallation wieder löscht. Für alle neuen User gibt es ein ActiveSetup.
Das Problem:
Das funktioniert wunderbar, wenn man die MSI mit administrativen Rechten im User-Kontext ausführt, aber nicht, wenn man die Installation im SYSTEM-Kontext durchführt was bei Massendeployments via SCCM usus ist. Auch nicht, wenn ich die In-Script-Execution auf Deferred in System Context umstelle (MSI Type 3110).
Ich habe das zwar so gelöst, dass ich beide Scripte nun in die SupportFiles ausgelagert habe und in der CA via Type 3106 (New Exe; Path referencing an directory) ausführe, frage mich aber warum es nicht direkt in der CustomAction funktioniert.
Beide Scripte laufen unabhängig zur MSI was Properties usw. angeht, holen sich alle notwendigen Pfade usw. selbständig aus der Registry usw. und legen die Shortcuts an der gewünschten Stelle ab bzw. löschen diese.
Frage:
Was habe ich nicht verstanden?
Warum funktionieren die Scripte von SUPPORTDIR aus aber nicht in der CA?
Danke für eure Hilfe!
Grüße!
Mayho
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 485483
Url: https://administrator.de/forum/flexera-installshield-basic-msi-shortcut-fuer-jeden-user-anlegen-und-loeschen-485483.html
Ausgedruckt am: 05.02.2025 um 04:02 Uhr
9 Kommentare
Neuester Kommentar
Was sagt denn das Log?
Nur wurde der Code wie es scheint nicht ausgeführt.
Hast du das überprüft?Lass mal im VBS Code detailliert loggen ob dort überhaupt was ausgeführt wird.
Was meinst Du mit "CA call, aber kein Error"?
"Quit(0)" liefert nun mal Errorlevel 0. Oder was meinst Du?
"Quit(0)" liefert nun mal Errorlevel 0. Oder was meinst Du?
Zitat von @mayho33:
Tja! Fehler gefunden:
In der CustomAction => Wscript.Quit(0) => CA call, aber kein Error (????)
? Wenn du 0 zurück gibst bdeutet das doch "no problem"Tja! Fehler gefunden:
In der CustomAction => Wscript.Quit(0) => CA call, aber kein Error (????)
von [SYSTEMDIR] => WScript.Quit(0) => OK
Hmm, war das nicht so das innerhalb von MSIs ausgeführt es das WScript Object gar nicht von Haus aus gibt weil es nicht über den WSH gehostet ausgeführt wird ?! Also wird diese Zeile immer zu einem Fehler führen wenn du es nicht explizit vorher erstellt hast.Quelle: https://docs.microsoft.com/en-us/windows/win32/msi/scripts
The installer runs script custom actions directly and does not use the Windows Script Host. The WScript object cannot be used inside a script custom action because this object is provided by the Windows Script Host. Objects in the Windows Script Host object model can only be used in custom actions if Windows Script Host is installed on the computer by creating new instances of the object, with a call to CreateObject, and providing the ProgId of the object (for example "WScript.Shell"). Depending on the type of script custom action, access to some objects and methods of the Windows Script Host object model may be denied for security reasons.