Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Die Delphi-IDE (https://www.delphipraxis.net/62-die-delphi-ide/)
-   -   Delphi Silent Installation / EULA Abfrage umgehen (https://www.delphipraxis.net/211039-delphi-silent-installation-eula-abfrage-umgehen.html)

bernhard_LA 19. Jul 2022 11:00

Delphi Silent Installation / EULA Abfrage umgehen
 
Liste der Anhänge anzeigen (Anzahl: 1)
leider kann Delphi 10.4. nicht wirklich eine silent Installation - die Abfrage nach der EULA ist ja weiterhin enthalten :-( ......
( https://blogs.embarcadero.com/de/rad...ation-process/ )




Zitat:

"RAD Studio 10.4.2 unterstützt die unbeaufsichtigte, automatisierte Installation des Produkts ohne Interaktion mit der Benutzeroberfläche.
Die unbeaufsichtigte Installation ist für die Offline- und Online-Installation verfügbar. In der Offline-Installation gibt es eine GOF-Datei und die ausführbare Setup-Datei. In der Online-Installation gibt es eine ausführbare Setup-Datei und einen automatischen Download der erforderlichen Pakete im Hintergrund.
Die Windows SDK-Installation beginnt derzeit mit einer Benutzeroberfläche und beachtet nicht die Regel der unbeaufsichtigten Installation. In beiden Szenarien (lautlos und sehr leise) werden Sie vom stillen Installationsprogramm weiterhin aufgefordert, die EULA zu bestätigen. Drücken Sie zu Beginn des Vorgangs Y (für Ja).
Nach dieser ersten Eingabe wird keine weitere Interaktion angefordert. ....... "




Gibt es Tools , DOS Scripte, oder ????? die diese Abfrage automatisch umgehen können .... wir brauchen ein Batch Script welches ohne user interaktion auf wochenbasis Delphi ( und div. weitere Tools ) wirklich ohne Nachfragen installiert

himitsu 19. Jul 2022 11:13

AW: Delphi Silent Installation / EULA Abfrage umgehen
 
Noch schlimmer ist der PAServer, bei dem geht praktisch garnichts, bezüglich einer automatischen Installation (und gerade da wäre sowas IMHO wichtiger)


Du könntest via Pipe (StdIn) versuchen das Y+Enter reinzugeben.
Code:
setup.exe < Datei_mit_Y+#13_drin

Kommt diese Eula-Abrage noch aus der Vorinstallaion (Inno-Setup) oder schon aus dem darin verwendeten GetIt?
Letzteres hat ja eigentlich ein --accepteulas.

Innosetup hatte, glaub ich, einen Parameter, womit man Paramater an die interne EXE weiterreichen kann.

Alternativ, das Setup entpacken und dann selber die Dateien kopieren und mit RegEdit vorher bei einem Rechner das exportieren und hier nun importieren
und paar Komponenten/DLLs registrieren. (siehe die .iss-Datei ... ungetestet, aber so viel wird da nicht gemacht)

https://www.andysblog.de/windows-inn...setup-unpacker
Im Prinzip kopiert das Setup nur den Basisteil (660MB) der IDE auf die Platte und der Rest wird dann via GetIt installiert
siehe HKEY_LOCAL_MACHINE\SOFTWARE\WOW6432Node\Embarcadero\BDS\21.0\CatalogRepository\Elements\*



[add]
Nimmst du /silent oder /verysilent ?

Zitat:

Mit der Option „Stumm“ wird der Installationsstatus angezeigt, es ist jedoch keine weitere Anforderung zum Ausfüllen erforderlich:

Im /verysilent Modus wird der Vorgang sofort beendet und es gibt eine versteckte Eingabeaufforderung, die die Installation ausführt:

mensch72 19. Jul 2022 12:31

AW: Delphi Silent Installation / EULA Abfrage umgehen
 
...wir brauchen ein Batch Script welches ohne user interaktion auf wochenbasis Delphi ( und div. weitere Tools ) wirklich ohne Nachfragen installiert"...

Würde ich über einen regelmäßigen Reset auf einen definierten "VM-Snapshot" bzw. Snapshot eines "HD Imagetools" realisieren.
In Bildungseinrichtungen der absolute Standard, damit da im Idealfall täglich oder gar pro Unterrischtsstunde stets vorhersehbar die exalt gleichen System-Installationen aktiv sind.

mmw 19. Jul 2022 20:00

AW: Delphi Silent Installation / EULA Abfrage umgehen
 
Hallo,

vielleicht hilft InstallRite oder ähnliche Programme.

http://downloads.fyxm.net/InstallRite-84712.html

https://wiki.linuxmuster.net/archiv/...re:installrite

muss als Admin ausgeführt werden.

bzw.

https://sourceforge.net/projects/sih/

Gruß

TurboMagic 19. Jul 2022 20:27

AW: Delphi Silent Installation / EULA Abfrage umgehen
 
Evtl. mittels AutoIT einen Mausklick auf den Button simulieren?

himitsu 19. Jul 2022 20:41

AW: Delphi Silent Installation / EULA Abfrage umgehen
 
"exalt gleichen" wäre es aber nur, wenn nur einmal installiert und dann der Snapshot der VM darauf zurückgesetzt wurde.

Eine Neuinstallation kann nur einen gleichen/ähnlichen Zustand herstellen, aber nicht den "Selben".

stifflersmom 20. Jul 2022 06:40

AW: Delphi Silent Installation / EULA Abfrage umgehen
 
Zitat:

Zitat von mensch72 (Beitrag 1508932)
...wir brauchen ein Batch Script welches ohne user interaktion auf wochenbasis Delphi ( und div. weitere Tools ) wirklich ohne Nachfragen installiert"...

Würde ich über einen regelmäßigen Reset auf einen definierten "VM-Snapshot" bzw. Snapshot eines "HD Imagetools" realisieren.
In Bildungseinrichtungen der absolute Standard, damit da im Idealfall täglich oder gar pro Unterrischtsstunde stets vorhersehbar die exalt gleichen System-Installationen aktiv sind.

Da werfe ich, mal wieder, Proxmox auf ZFS Basis ins Spiel.
Damit kann genau das spielend leicht und vor allem in der Anwendung pfeilschnell umgesetzt werden.

MTranel 20. Jul 2022 16:59

AW: Delphi Silent Installation / EULA Abfrage umgehen
 
In einem Versuch Embarcadero dazu zu bringen endlich aufzuwachen poste ich hier diesen Unfall eines Scripts, welches wir nutzen um Delphi mit Packer automatisiert zu installieren. Es handelt sich natürlich um einen Auszug (Rest dürfte selbsterklärend für Leute sein die schon mal ne Exe mit Powershell gestartet haben) der speziell mit WMI das neu gespawnte EULA Window sucht und mit Window Messages die Y-Taste verschickt.
/AcceptEULA ist ein gelöstes Problem im Setup-Bereich - verstehe einfach nicht Embarcadero das verkacken konnte.

Code:
$SetupProcess = Start-Process -FilePath $SetupPath -ArgumentList "$arguments" -PassThru -NoNewWindow
$Signature = @"
    [DllImport("kernel32.dll", SetLastError = true)]
    public static extern bool AttachConsole(uint dwProcessId);

    [DllImport("kernel32.dll")]
    public static extern IntPtr GetConsoleWindow();

    [DllImport("kernel32.dll", SetLastError = true, ExactSpelling = true)]
    public static extern bool FreeConsole();

    [DllImport("user32.dll")]
    public static extern bool PostMessage(IntPtr hWnd, uint Msg, int wParam, int lParam);
"@

Add-Type -Namespace Win32 -Name Funcs -MemberDefinition $Signature -PassThru | Out-Null

$StartTime = Get-Date
do {
    $TimeElapsed = $(Get-Date) - $StartTime
    if ($($TimeElapsed).TotalMinutes -ge 5) {
        Write-Output "Could not find EULA choice process after 5 minutes."
        throw
    }
    Start-Sleep -Seconds 1
    $SetupProcessId = Get-WmiObject Win32_Process | Where-Object {$_.ProcessName -eq "Setup.tmp"} | Select-Object -ExpandProperty ProcessId
    $CmdProcessId = Get-WmiObject Win32_Process | Where-Object {$_.ParentProcessId -eq $SetupProcessId} | Select-Object -ExpandProperty ProcessId
} until ($CmdProcessId -ne 0)

$WM_KEYDOWN = 0x0100
$VK_Y_KEY = 0x59

[Win32.Funcs]::FreeConsole() | Out-Null
[Win32.Funcs]::AttachConsole($CmdProcessId) | Out-Null
$Handle = [Win32.Funcs]::GetConsoleWindow()
[Win32.Funcs]::PostMessage($Handle, $WM_KEYDOWN, $VK_Y_KEY, 0) | Out-Null
[Win32.Funcs]::FreeConsole() | Out-Null
Man muss PowerShell/dotnet natürlich verstehen aber ich glaube das sollte nicht das größte Problem sein.

bernhard_LA 21. Jul 2022 12:06

AW: Delphi Silent Installation / EULA Abfrage umgehen
 
wir brauchen ein script - Installation muss im Rahmen der wöchentlichen Neuinstallation von Docker Containern erfolgen

himitsu 21. Jul 2022 12:31

AW: Delphi Silent Installation / EULA Abfrage umgehen
 
Das ist doch ein Script :zwinker: (.ps1 aka Powershell)

Da sich Windows aber standardmäßig weigert Powershell-Scripte direkt auszuführen,
kannst du die .ps1 nicht wie eine .bat oder .cmd starten, sondern mußt es direkt der powershell.exe geben, oder im Windows die Richtlinie ändern.
https://stackoverflow.com/questions/...ershell-script



Im Jira fragen betteln, ob die den fehlenden Parameter nicht mal einbauen können.

Bis 2029 sollten sie es bestimmt schaffen.

bernhard_LA 25. Jul 2022 08:12

AW: Delphi Silent Installation / EULA Abfrage umgehen
 
löst Powershell mein Problem , kann ich damit das Y an die Eula abfrage senden ?
Powershell nennt sich auf meinem System pscore6....

Delphi-Quellcode:
Windows PowerShell
Copyright (C) Microsoft Corporation. All rights reserved.

Try the new cross-platform PowerShell https://aka.ms/pscore6

PS C:\Users>

bernhard_LA 25. Jul 2022 08:27

AW: Delphi Silent Installation / EULA Abfrage umgehen
 
wir haben schon sehr viel Aufwand für die Suche nach einer Lösung spendiert,
hat jemand eine bessere Idee ?
Direkt gestartet geht der Ansatz aber nicht im Batch Script mode für Puppet und JENKINS zusammen



Delphi-Quellcode:

@if (@CodeSection == @Batch) @then
 
@echo off
 
rem Use %SendKeys% to send keys to the keyboard buffer
set SendKeys=CScript //nologo //E:JScript "%~F0"
 
start "" /B radstudio_10_4_esd_104203a.exe /VERYSILENT /SUPPRESSMSGBOXES /NORESTART /SLIPFILE=concurrent_000000.slip /FEATURES=delphi_windows
 
ping -n 10 -w 1 127.0.0.1 > NUL
%SendKeys% "Y"
 
rem Wait for 10 minutes until installation is done and kill sdksetup.exe in case it appears
rem Feel free to remove these steps in case they are not required or to change the waiting time
ping -n 600 -w 1 127.0.0.1 > NUL
taskkill /f /im sdksetup.exe >nul 2>&1
 
goto :EOF
 
 
@end
 
// JScript section
 
var WshShell = WScript.CreateObject("WScript.Shell");
WshShell.SendKeys(WScript.Arguments(0))

himitsu 25. Jul 2022 08:34

AW: Delphi Silent Installation / EULA Abfrage umgehen
 
Hat der Installer, bzw. dessen Console auch den Fokus, damit die Taste dort landet?

und sicher, dass dein "Script" wirklich richtig ausgeführt wird?

Warum zwei //
und keiner prüft die Rückgabewerte


ping ->
Delphi-Quellcode:
timeout /t 10

TiGü 25. Jul 2022 13:03

AW: Delphi Silent Installation / EULA Abfrage umgehen
 
Zitat:

Zitat von bernhard_LA (Beitrag 1509188)
löst Powershell mein Problem , kann ich damit das Y an die Eula abfrage senden ?
Powershell nennt sich auf meinem System pscore6....

Delphi-Quellcode:
Windows PowerShell
Copyright (C) Microsoft Corporation. All rights reserved.

Try the new cross-platform PowerShell https://aka.ms/pscore6

PS C:\Users>

Steht alles im Beitrag #8 (https://www.delphipraxis.net/1508982-post8.html), aber man muss sich mit PowerShell auch auseinandersetzen.
Jenkins kann auch PowerShell-Skripte ausführen, ggf. braucht man noch das passende Plugin dazu.


Alle Zeitangaben in WEZ +1. Es ist jetzt 20:36 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz