hannsgmaulwurf
Goto Top

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 face-smile

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.

Content-ID: 1147889045

Url: https://administrator.de/contentid/1147889045

Ausgedruckt am: 24.11.2024 um 11:11 Uhr

DerWoWusste
DerWoWusste 12.08.2021 um 11:12:53 Uhr
Goto Top
Hi.

Deinstalliere die Software per Skript und dann führe das Install-Skript aus.
hannsgmaulwurf
hannsgmaulwurf 12.08.2021 um 11:17:19 Uhr
Goto Top
Das hatte ich auch schon als Workaround versucht, nur ist es oft so, dass man nicht weiß, wie viele alte Versionen und vor allem welche auf den Clients vorhanden sind und man müsste a) für alle Versionen wiederum eine Silent Uninstall erstellen und b) müsste man sich erst die ganzen Setup Dateien zusammensuchen face-sad
DerWoWusste
DerWoWusste 12.08.2021 um 11:40:37 Uhr
Goto Top
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:
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  
hannsgmaulwurf
hannsgmaulwurf 12.08.2021 aktualisiert um 11:54:11 Uhr
Goto Top
Zitat von @DerWoWusste:

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:
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  

Das klingt sehr interessant, vielen Dank!!

Edit: Die Ausgabe in die textdatei funktioniert nicht, habe es in eine lokale txt Datei versucht. hast du einen Tipp?

Edit2: Ausgabe in txt funktioniert doch, habe gerade mal mit Suchwort OFFICE getestet. Aber wenn ich die Suchwörter probiere, die den Namen der mit Installshield installierten Software enthalten, wird nichts gefunden. Kann es sein, dass dieser Workaround nur für per MSI installierte Produkte klappt?
DerWoWusste
DerWoWusste 12.08.2021 um 12:00:17 Uhr
Goto Top
@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:
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  
hannsgmaulwurf
hannsgmaulwurf 12.08.2021 um 12:09:58 Uhr
Goto Top
Zitat von @DerWoWusste:
Aber probiere bitte auch folgende Syntax, falls es ein 32Bit-Programm ist:

Wird auch nichts weggeschrieben, es handelt sich sowohl um 32 als auch um 64 Bit Software. Danke erstmal soweit, vielleicht findest du ja einen Installshield Eintrag, wäre wirklich mal interessant.
DerWoWusste
DerWoWusste 12.08.2021 aktualisiert um 13:09:24 Uhr
Goto Top
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 "":
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  
Inf1d3l
Inf1d3l 12.08.2021 um 14:04:20 Uhr
Goto Top
Oder banal:

IF EXIST "C:\Program Files\Programm" tu dies, tu das, tu jenes
DerWoWusste
DerWoWusste 12.08.2021 um 14:07:21 Uhr
Goto Top
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 ...
hannsgmaulwurf
hannsgmaulwurf 23.08.2021 um 09:20:49 Uhr
Goto Top
Zitat von @DerWoWusste:
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  

Vielen Dank und sorry für die späte Rückmeldung.
In meinem Fall lautet der Uninstall Befehl z.B.:
"C:\Program Files (x86)\InstallShield Installation Information\{11111111-2222-3333-4444-555555555555}\setup.exe" -runfromtemp -l0x0407  -removeonly  
-> Allerdings wird mit dem uninstallstring nur der Dialaog für Deinstalltion/Ändern,/Reparieren aufgerufen.
-> Parameter /s für Silent funktioniert, allerdings wird das Programm nicht deinstalliert. -> Parameter /f2"C:\test\uninstall.log" ergibt im Uninstall Log das Ergebnis "ResultCode=-5".... Habe irgendwo gelesen, dass das darauf hindeutet, dass eine Datei nicht gefunden werden kann, aber welche das sein soll, wüsste ich nicht. Falls auch hier für die Silent Deinstallation eine Antwortdatei mittels Parameter f1 benötigt wird, wäre ich ja wieder beim Anfangsproblem... face-smile ich werde noch weiter testen.
DerWoWusste
DerWoWusste 23.08.2021 um 09:39:01 Uhr
Goto Top
Wenn ich nun diese Software hier hätte, könnte ich es nachstellen - um was geht es?
hannsgmaulwurf
hannsgmaulwurf 23.08.2021 um 13:17:51 Uhr
Goto Top
Um eine Spezialsoftware, nicht so einfach downloadbar, nur nach Bezahlung/Anmeldung/Kauf... Ich probiere noch ein Bisschen rum und gebe Bescheid sobald ich Neuigkeiten habe, vielen Dank erst mal bis hier hin.