User ermöglichen Installer als Admin auszuführen...

  • Hi!

    kann mir jemand nen Tipp/die richtigen Stichworte geben, wie bzw. ob ich folgendes lösen kann?

    Ich möchte ein kleines Programm schreiben, mit dem ein User (ohne Adminrechte) einen Installer als Admin ausführt und die nötigen Benutzerangaben des Admin automatische übergeben werden.
    Geht das direkt oder muss ich in einem ersten Schritt dem Autoit-Programm zu höheren Rechten verhelfen.

    Hintergrund: Habe einen Laptop an User rausgegeben, die die Admin Passwörter nicht kennen sollen. Dummerweise ist in der Nähe kein Internet für Fernwartung und den Surfstick bekommt man ohne Adminrechte nicht installiert :D (*Die Katze beisst sich also selbt in den Schwanz*) :thumbdown:

    Dass es prinzipiell mit UAC geht weiss ich, da z.B. Teamviewer das so macht. Der Nutzer läd die Quicksupport-Version und startet mit Nutzerrechten und der Supporter kann dann wenn er Adminrechte zum Ausführen bestimmter Programme braucht die Vollversion aus der Ferne installieren und Teamviewer fragt dazu vor der Installation die Adnmin-Daten ab.

    Danke für eure Hilfe! 8o

    Edit: Das OS ist Windows7

    2 Mal editiert, zuletzt von Hakeem (8. Juli 2011 um 23:41)

  • Um etwas als Admin zu machen musst du das PW in Windows angeben soweit ich weiß.

    Damit ein Skript AdminRechte anfordert kann man #RequireAdmin benutzen.
    Dann braucht man aber glaube ich auch das PW wenn die Rechte nicht vorhanden sind.
    (kann ich nicht sagen. Ich bin Admin bei mir und hab kein PW^^)

    lg
    M

  • Stimmt wenn man nicht die nötigen Rechte hat muss man sich passend authentifizieren halt mit Benutzer/kennwort.

    Zitat


    Ich bin Admin bei mir und hab kein PW

    gib mal IP :)

    Achtung Anfänger! :whistling:

    Betrachten des Quellcodes auf eigene Gefahr, bei Übelkeit,Erbrechen,Kopfschmerzen übernehme ich keine Haftung. 8o

  • Ich hab ihn gerade gehackt... wenn du auch mal willst, seine IP ist die 127.0.0.1

    ----

    Stimmt wenn man nicht die nötigen Rechte hat muss man sich passend authentifizieren halt mit Benutzer/kennwort.

    und genau darum geht es... wie kann ich per script einen Installer so aufrufen, dass ich Benutzer und Kennwort mitgebe...
    Benutzer und Kennwort sind dabei in meinem Script hinterlegt. (Ich weiss: nicht perfekt sicher - von wegen Verschlüsselung - aber hierfür reicht es...)

  • Ja starte deine Install.exe mit dem passenden Benutzer, dann ergibt sich der Rest doch von selbst.

    [autoit]

    RunAs

    [/autoit]

    Achtung Anfänger! :whistling:

    Betrachten des Quellcodes auf eigene Gefahr, bei Übelkeit,Erbrechen,Kopfschmerzen übernehme ich keine Haftung. 8o

  • Ich hab ihn gerade gehackt... wenn du auch mal willst, seine IP ist die 127.0.0.1

    ----


    Hab ich jetzt so akut nix von gemerkt...^^
    :rofl:

  • Danke an alle die helfen wollten.
    Leider habe ich nicht herausgefunden, wie das Problem direkt mit AutoIt zu lösen ist. Am nächsten an der Lösung war noch ein DLLcall bzw. die "Elevation-Utilitys" von M$; aber auch das hat mich nicht wirklich weiter gebracht.

    Hab jetzt ein externes Tool (RunAsSPC) mit eingebunden und so erreicht was ich wollte. Evtl. sogar noch etwas sicherer, da username/passwort sowie das zu startende Programm in einer Datei verschlüsselt werden. Leider schreibt der Autor nicht genau mit welchem Verfahren bzw. wie gut.

    Der AutoIT-Code ist dann relativ einfach:

    Spoiler anzeigen
    [autoit]


    Dim $prog, $RunAsSPC, $dir_files, $Cryptfile_param

    [/autoit] [autoit][/autoit] [autoit]

    $dir_files="C:\Mein_Installer\" ; EDIT sagt: das wurde geändert

    [/autoit] [autoit][/autoit] [autoit]

    $prog=$dir_files & "proggie.exe"
    $RunAsSPC=$dir_files & "runasspc.exe"
    $Cryptfile_param="/cryptfile:" & $dir_files & "crypt.spc /quiet"

    [/autoit] [autoit][/autoit] [autoit]

    DirCreate($dir_files)
    FileInstall("D:\test\proggie.exe", $dir_files, 1)
    FileInstall("D:\test\RunasSpc\runasspc.exe", $dir_files, 1)
    FileInstall("D:\test\crypt.spc", $dir_files, 1)

    [/autoit] [autoit][/autoit] [autoit]

    ShellExecuteWait($RunAsSPC, $Cryptfile_param)

    [/autoit] [autoit][/autoit] [autoit]

    ProcessWaitClose("proggie.exe") ; EDIT sagt hier wurde was ergänzt.

    [/autoit] [autoit][/autoit] [autoit]

    ; EDIT sagt hier wurde was gelöscht

    [/autoit] [autoit][/autoit] [autoit]

    DirRemove($dir_files, 1)

    [/autoit]

    An zwei Dingen muss ich noch arbeiten.

    1) Das Cryptfile so erstellen, dass dieses auch den Installer auf dem Zielrechner sicher findet. Also z.B. schon beim Erstellen des Cryptfiles den Installer in %temp% hinterlegen. Werde gelich mal testen ob man das File auch mit Relativen Pfaden erstellen kann...
    >>> EDIT: Relative Pfade gehen nicht. Also erstelle ich die crypt mit dem proggie in "c:\Mein_Installer" und lass dort auch FileInstall auspacken. Alternativ kann man beim Erstellen des cryptfile auch sagen er soll unter dem gegebenen Ordnernamen auf allen Laufwerken suchen; dann gehen auch USB-Sticks etc.<<<

    2) DirRemove: ShellExecuteWait wartet vermutlich nur bis RunasSPC beendet ist und nicht bis der Installer gelaufen ist. Hat hier jemand ne Info?!
    >>> EDIT: ProcessWaitClose erfüllt hier meine Bedürfnisse.<<<

    Danke!

    Einmal editiert, zuletzt von Hakeem (8. Juli 2011 um 22:12)