Halllo Herr Oertel,
Danke für den Hinweis.
(Na da bin ich beruhigt... ich dachte schon, dass ich mich mit meinem Post als "Vollpfosten" oute... )
Das mit dem Workaround habe ich mir im Skript-Wiki schon mal angeguckt (oder besser "abgeguckt"), stolpere aber immer noch von Fehler zu Fehler.
Zum Workaround:
In der Sektion Action lese ich die Properties einzeln aus (takeString), wrappe Anführungsstriche um jeden Wert und baue eine Stringliste (erste Property: createStringlist, weitere Properties werden per "addtolist" angehängt)
Danach jage ich jede Property per "for $x$ in blubber do" in eine Sub (um "Messages" und "comments" erzeugen zu können) und von dort aus in eine DosInAnIcon-Sektion.
Und genau
in der Sub liegt liegt der Hund begraben: die Werte kommen zwar in der Sub an, die Weitergabe an DosInAnIcon-Sektion scheitert jedoch:
Code: Alles auswählen
[6] [15.06.2012 11:41:41] ~~~~~~~ Start Sub ~~~~~~~ Sub_makedirlist
[5] [15.06.2012 11:41:41] message Deinstalliere Flash Player
[5] [15.06.2012 11:41:41]
[5] [15.06.2012 11:41:41] Execution of DosInAnIcon_makedirlist
[6] [15.06.2012 11:41:41] c:\opsi.org\tmp\_winstbat_2.bat saved back
[6] [15.06.2012 11:41:41] Executing "cmd.exe" /C "c:\opsi.org\tmp\_winstbat_2.bat" "Flash Player"
[6] [15.06.2012 11:41:41]
[6] [15.06.2012 11:41:41] output:
[6] [15.06.2012 11:41:41] --------------
[6] [15.06.2012 11:41:41] Der Befehl "c:\opsi.org\tmp\_winstbat_2.bat" "Flash" ist entweder falsch geschrieben oder
[6] [15.06.2012 11:41:41] konnte nicht gefunden werden.
[6] [15.06.2012 11:41:41]
[6] [15.06.2012 11:41:41] Delete "c:\opsi.org\tmp\_winstbat_*"
[6] [15.06.2012 11:41:41] Search "c:\opsi.org\tmp\"
[6] [15.06.2012 11:41:41] File "c:\opsi.org\tmp\_winstbat_2.bat"
[6] [15.06.2012 11:41:41] The file has been deleted
[6] [15.06.2012 11:41:41]
[6] [15.06.2012 11:41:41] ~~~~~~~ End Sub ~~~~~~~ Sub_makedirlist
Verantwortlich hierfür dürfte wohl die gewrappten Anführungszeichen sein. (Die brauche ich aber wegen Leerzeichen im String)
Kurzum:
Sorgen bereiten mir die Leerzeichen einzelner ProductProperties. Zwar funktioniert das Wrappen, jedoch habe ich nun das Problem, dass der Wert nicht vollständig in einer Dos-Sektion ankommt, um von dort ein "externes" VBS starten zu können.
Die Kernfrage: wie übergebe ich eine Property mit Leerzeichen an eine DOS-Sektion? Das Wrappen der Werte mit Anführungseichen funktioniert offensichtlich nicht.
Viele Grüße
JMS
P.S:
An Properties mit Leerzeichen führt leider kein Wert vorbei, da anhand dieses Werts die Registriy nach Display-Name durchsucht und der Wert Uninstall-String ausgelesen wird. Bei einem Treffer ruft das VBS auch gleich den Uninstall-String (ergänzt um unattended-Switch) auf. So will ich Anwendungen von den Platten kratzen können, für die es (1)entweder noch kein Opsi-Paket gibt, oder (2) deren MsiID unbekannt sind oder (3) die vom Hersteller bereitgestellten Uninstaller nicht mehr funktionieren ...
Ein (3)er-Kandidat ist zum Beispiel der "Adobe Flash Player"... nicht auszudenken, wenn wegen unvollständiger Übergabe alle "Adobe"-Produkte deinstalliert würden...