Installshield iss Response Datei
Hallo zusammen.
Kennt sich jemand mit Installshield aus?
Ich muss verschiede Software (Nischenprodukte) auf verschiedenen Windows 10 Clients installieren. Es handelt sich dabei um Installshield Installer. Für eine Silent Installation benötigt man ein sog. Response File im Format .iss. Dieses erstellt man, indem man auf einem Dummy Rechner die Installation mit Parameter /r (für Record) startet und sich mit den gewünschten Einstellungen durchklickt. Die Klicks die man während der Installation auf dem Dummy PC macht, werden in der iss Datei aufgezeichnet, sodass man diese iss Datei dann weiteren Clients als Antwortdatei übergeben kann (mittels Parametern /s für Silent und /f1 für File1 - File2 z.b. wäre noch das Logfile aber darum soll es hier nicht gehen).
Soweit so gut. Das funktioniert auch alles, wenn man einen sauberen Rechner hat. Wenn man die Silent Installation jedoch auf einem Rechner durchlaufen lässt, auf dem nicht exakt die gleichen Klicks zu tätigen sind, z.B. weil zwischendrin eine Meldung kommt, dass eine andere Version der Software bereits installiert ist oder weil ein Treiber abgefragt wird oder ähnliches, läuft die Silent Installation in einen Fehler (ResultCode=-3), weil eben diese zusätzliche Abfrage nicht in der Antwortdatei erfasst wurde...
Ich hoffe ihr versteht was ich meine bzw. worum es geht
Nun meine Frage / mein Problem: Man müsste auf einem Dummy PC alle möglichen Szenarien durchspielen und für jedes potentielle Szenarion eine Installation durchlaufen und eine Response Datei erstellen. Das ist a) sehr aufwendig und fast unmöglich, weil man ja gar nicht alle potentiellen Szenarien erahnen und nachbilden kann und b) müsste man dann für die Silent Installation alle Szenarien mit den entsprechenden Antwort Dateien nacheinander durchlaufen lassen und hoffen, dass ein Szenario auf dem Ziel PC zutrifft und eine entsprechende exakte Antwortdatei passt...
Gibt es irgendeine Möglichkeit, das zu umgehen? Ich denke da z.B. an einen Schalter, der dem Installer sagt "wenn eine Abfrage kommt, die nicht in deiner Antwort Datei steht, klicke immer JA" oder so...
Oder denke ich viel zu kompliziert und es gibt eine viel einfachere Lösung für mein Problem?
Vielen lieben Dank.
Kennt sich jemand mit Installshield aus?
Ich muss verschiede Software (Nischenprodukte) auf verschiedenen Windows 10 Clients installieren. Es handelt sich dabei um Installshield Installer. Für eine Silent Installation benötigt man ein sog. Response File im Format .iss. Dieses erstellt man, indem man auf einem Dummy Rechner die Installation mit Parameter /r (für Record) startet und sich mit den gewünschten Einstellungen durchklickt. Die Klicks die man während der Installation auf dem Dummy PC macht, werden in der iss Datei aufgezeichnet, sodass man diese iss Datei dann weiteren Clients als Antwortdatei übergeben kann (mittels Parametern /s für Silent und /f1 für File1 - File2 z.b. wäre noch das Logfile aber darum soll es hier nicht gehen).
Soweit so gut. Das funktioniert auch alles, wenn man einen sauberen Rechner hat. Wenn man die Silent Installation jedoch auf einem Rechner durchlaufen lässt, auf dem nicht exakt die gleichen Klicks zu tätigen sind, z.B. weil zwischendrin eine Meldung kommt, dass eine andere Version der Software bereits installiert ist oder weil ein Treiber abgefragt wird oder ähnliches, läuft die Silent Installation in einen Fehler (ResultCode=-3), weil eben diese zusätzliche Abfrage nicht in der Antwortdatei erfasst wurde...
Ich hoffe ihr versteht was ich meine bzw. worum es geht
Nun meine Frage / mein Problem: Man müsste auf einem Dummy PC alle möglichen Szenarien durchspielen und für jedes potentielle Szenarion eine Installation durchlaufen und eine Response Datei erstellen. Das ist a) sehr aufwendig und fast unmöglich, weil man ja gar nicht alle potentiellen Szenarien erahnen und nachbilden kann und b) müsste man dann für die Silent Installation alle Szenarien mit den entsprechenden Antwort Dateien nacheinander durchlaufen lassen und hoffen, dass ein Szenario auf dem Ziel PC zutrifft und eine entsprechende exakte Antwortdatei passt...
Gibt es irgendeine Möglichkeit, das zu umgehen? Ich denke da z.B. an einen Schalter, der dem Installer sagt "wenn eine Abfrage kommt, die nicht in deiner Antwort Datei steht, klicke immer JA" oder so...
Oder denke ich viel zu kompliziert und es gibt eine viel einfachere Lösung für mein Problem?
Vielen lieben Dank.
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 1147889045
Url: https://administrator.de/contentid/1147889045
Ausgedruckt am: 24.11.2024 um 11:11 Uhr
12 Kommentare
Neuester Kommentar
Ja, inhomogene Softwarestände sind nun einmal aufwändig zu warten.
Mein Tipp: lass das Skript die passende uninstall-Syntax selbst aus der Registry auslesen.
Beispiel:
Du willst netzwerkweit ein 64-Bit-Programm deinstallieren, dass irgendwas mit (z.B.) runtime im Namen hat. Dazu suchst Du Dir alle Uninstallstrings raus, indem Du einen immediate-Task auf die rechner loslässt, der folgende Batch startet:
Mein Tipp: lass das Skript die passende uninstall-Syntax selbst aus der Registry auslesen.
Beispiel:
Du willst netzwerkweit ein 64-Bit-Programm deinstallieren, dass irgendwas mit (z.B.) runtime im Namen hat. Dazu suchst Du Dir alle Uninstallstrings raus, indem Du einen immediate-Task auf die rechner loslässt, der folgende Batch startet:
for /f %%a in ('reg query HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\') do reg query %%a /v displayname | findstr /i runtime && reg query %%a /v uninstallstring>>\\server\share\uninstallstrings_runtime.txt
@edit2:
Ich muss mal schauen, ob ich eine installshield Software hier habe zum Test.
Aber probiere bitte auch folgende Syntax, falls es ein 32Bit-Programm ist:
Ich muss mal schauen, ob ich eine installshield Software hier habe zum Test.
Aber probiere bitte auch folgende Syntax, falls es ein 32Bit-Programm ist:
for /f %%a in ('reg query HKLM\SOFTWARE\WOW6432Node\Microsoft\Windows\CurrentVersion\Uninstall\') do reg query %%a /v displayname | findstr /i runtime && reg query %%a /v uninstallstring>>\\server\share\uninstallstrings_runtime.txt
Habe hier Software gefunden, die mittels
setup.exe /s /f1"\\server\share\setup.iss"
installiert worden ist. Dennoch finde ich hierzu auf diese Weise den uninstall string.
Teste mal mit "":
setup.exe /s /f1"\\server\share\setup.iss"
installiert worden ist. Dennoch finde ich hierzu auf diese Weise den uninstall string.
Teste mal mit "":
for /f %%a in ('reg query HKLM\SOFTWARE\WOW6432Node\Microsoft\Windows\CurrentVersion\Uninstall\') do reg query "%%a" /v displayname | findstr /i runtime && reg query "%%a" /v uninstallstring>>\\server\share\uninstallstrings_runtime.txt
for /f %%a in ('reg query HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\') do reg query "%%a" /v displayname | findstr /i runtime && reg query "%%a" /v uninstallstring>>\\server\share\uninstallstrings_runtime.txt
tu dies, tu das, tu jenes
Ja, und um dies das und jenes (die Uninstall-Kommandos der einzelnen Versionen) zu finden, muss man eben die Registry wie angegeben durchsuchen oder anderweitige Methoden bemühen, siehe https://redmondmag.com/articles/2019/08/27/powershell-to-uninstall-an-ap ...