Zwei Virtualisierte Anwendungen und die nicht gefundene Datei.
Hallo zusammen,
folgendes Szenario:
Man hat z.B. 7-Zip und Adobe Reader virtualisiert. Nun öffnet man mit 7-Zip eine ZIP Datei, darin befindet sich eine PDF Datei. Diese wird doppelt angeklickt und der Adobe Reader startet, aber mit der Meldung: “Datei kann nicht gefunden werden”.
Wie kommt das?
Nun ist es ja so, dass der Adobe Reader auch virtualisiert ist darum muss dieser String abgesetzt werden um Adobe Reader zu starten:
“sfttray.exe" /launch "Adobe Reader 9 9.3.0.148" "C:\Users\sgern\AppData\Local\Temp\7zO37F8.tmp\Das ist ein Test.pdf"
Nun da 7-Zip schon läuft (und damit eine Instanz von SFTTRAY.EXE) beendet sich die Instanz von SFTTRAY.EXE sofort wieder. Das nimmt das 7-Zip zum Anlass und löscht die temporäre Datei. Wie hier zu sehen:
Markiert ist hier der Löschvorgang des Dokuments.
Dieses Verhalten ist so gewollt, nur hier mit einem negativen Ausgang. Der Prozess dem der String übergeben wird ist nicht AcroRd32.exe sondern SFttray.exe, da dieses sich gleich wieder beendet, (siehe nächsten Screenshot) löscht 7-Zip die temporäre Datei wieder. Wie es sich auch verhalten würde wenn man den Adobe Reader zumachen würde.
Eine einfache Lösung für dieses Verhalten gibt es nicht, folgende Sachen wären denkbar:
A) Die beiden Anwendungen in ein Paket oder per DSC verbinden (das würde nur das Verhalten mit PDF lösen.
B) Man nutzt einen Proxy Prozess der mit jedem Anwendunsgsstart anstelle von SFTTRAY gestartet wird und bestehen bleibt, bis die Anwendung geschlossen wird.
C) Es wird die lokale Windows ZIP Engine genutzt und 7-Zip kommt nur in sonderfällen zum EInsatz.
Schönen Gruß
Sebastian Gernert – Support Escalation Engineer