Software Frage SFX-Archiv mit WinRAR erstellen - Datei als Administrator ausführen - Wie geht das

Dieses Thema im Forum "Tech & FAQ Forum" wurde erstellt von Nummer Eins, 13 Oktober 2019.

  1. Nummer Eins

    Nummer Eins Mitglied

    Registriert seit:
    19 November 2010
    Beiträge:
    124
    Teil 1

    Ich möchte mit WinRAR ein SFX-Archiv (also ein selbstentpackendes Archiv als EXE-Datei) erstellen, das die enthaltenen Dateien an einen bestimmten Ort entpackt. Soweit so gut.

    Ich möchte, das die EXE Administratorrechte anfordert. Soweit so gut.

    Ich möchte, das nach dem Entpacken eine Batch-Datei aus dem Archiv ausgeführt wird. Soweit so gut.

    Obwohl die EXE den UAC-Dialog auslöst, also offenbar tatsächlich mit Administratorrechten gestartet wird, läuft der Batch anscheinend dennoch nur mit eingeschränkten Rechten.

    Zum Test habe ich den Batch manuell separat ausgeführt. Wenn ich ihn "normal" starte, funktioniert er nicht, wenn ich ihn als Administrator ausführe, funktioniert er.

    Wie kann ich es erreichen, dass der Batch auf dem Zielsystem mit Administratorrechten ausgeführt wird, ohne dass der Anwender manuell eingreifen muss (ausser ggf. den UAC-Dialog zu bestätigen).


    Teil 2

    Vielleicht geht das wonach ich in Teil 1 gefragt habe, gar nicht. Dann wäre ich natürlich dankbar für eine Alternative.

    Was der Batch machen soll, ist das:
    Code:
    Reg export HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\OEMInformation "%USERPROFILE%\Desktop\Demo\Reg-Backup.reg" /y
    Reg import "%USERPROFILE%\Desktop\Demo\Reg-neu.reg"
    Es soll also eine Regdatei in die Registry importiert werden, und damit man das rückgängig machen kann, soll zuvor der vorhandene Schlüssel exportiert werden.

    Es wird an der Registry aber nichts verändert und die Backup-Datei, die tatsächlich angelegt wird, enthält das, was aus der anderen Datei importiert werden sollte, aber nicht importiert wird.

    Am Ende des Batchs habe ich eine Pause einfefügt, so dass ich die Meldungen lesen kann:
    Angeblich würde alles "erfolgreich beendet".

    Wie gesagt, wenn ich den Batch manuell als Administrator ausführe, funktioniert es.


    Teil 3

    Bevor ich das mit dem Batch probiert habe, habe ich versucht, die Kommandozeilen direkt in WinRAR einzugeben, statt von dort den Batch aufzurufen. Das hat aber auch nicht funktioniert.


    Teil 4

    Ich möchte gerne die Aktion ausführen, ob mit Batch oder anders ist mir egal. Vielleicht würde es z.B. mit einem Script gehen. Nur ist der Batch das Einzige, was ich einigermaßen kann...

    Ich zähle auf Eure Hilfe!
  2. spamwerbung

    spamwerbung Bekanntes Mitglied

    Registriert seit:
    30 Dezember 2001
    Beiträge:
    1.241
    Das habe ich in einer meiner Batch-Datei am Anfang stehen, damit kann man innerhalb einer Batch UAC-mäßig Admin-Rechte anfordern und dann die Batch mit eben diesen Rechten laufen lassen.


    Code:
    @echo off
    :: BatchGotAdmin
    :-------------------------------------
    REM  --> Check for permissions
    >nul 2>&1 "%SYSTEMROOT%\system32\cacls.exe" "%SYSTEMROOT%\system32\config\system"
    
    REM --> If error flag set, we do not have admin.
    if '%errorlevel%' NEQ '0' (
        echo Requesting administrative privileges...
        goto UACPrompt
    ) else ( goto gotAdmin )
    
    :UACPrompt
        echo Set UAC = CreateObject^("Shell.Application"^) > "%temp%\getadmin.vbs"
        echo UAC.ShellExecute "%~s0", "", "", "runas", 1 >> "%temp%\getadmin.vbs"
    
        "%temp%\getadmin.vbs"
        exit /B
    
    :gotAdmin
        if exist "%temp%\getadmin.vbs" ( del "%temp%\getadmin.vbs" )
        pushd "%CD%"
        CD /D "%~dp0"
    :--------------------------------------
    
    
    
    
    
    Richard Wagner sagt Danke.
  3. DrSnuggles

    DrSnuggles Xanatos

    Registriert seit:
    31 Oktober 2004
    Beiträge:
    21.098
  4. Nummer Eins

    Nummer Eins Mitglied

    Registriert seit:
    19 November 2010
    Beiträge:
    124
    @DrSnuggles
    Ich weiß nicht, ob wir hier aneinander vorbeireden? Ich habe das SFX ja so gebastelt, daß es automatisch nach Adminrechten fragt, aber die Batchdatei, die das SFX am Schluß aufruft, läuft trotzdem nur mit eingeschränkten Rechten.

    Danke an @spamwerbung
    Der Tip ist gut, und ich habe das in meine Vorlage übernommen. Leider funktioniert es in Verbindung mit WinRAR nicht. Egal, ob das SFX mit Administratorrechten läuft oder nicht, der Batch führt anschließend in eine Endlosschleife!

    Ich habe es jetzt anders gelöst. Da muß man den Batch halt manuel aufrufen, und der fragt dann nach Adminrechten...
  5. Nostradamus

    Nostradamus Zensur besteht aus Frechheit und Angst.Tucholsky

    Registriert seit:
    1 Mai 2001
    Beiträge:
    9.436
    runas.cmd
    Inhalt:
    runas /env /user:administrator test.cmd <---Verlangt Admin Passwort

    test.cmd
    Inhalt:
    dir
    pause

    Die test.cmd wird als Admin ausgeführt

    ---------------------------
    Winrar ruft also die runas.cmd auf und diese dann die test.cmd wo der Rest der gewünschten Konsolenbefehle drin steht.
    Zuletzt bearbeitet: 16 Oktober 2019
    RichyZuHause sagt Danke.