Bat Datei als Admin ausführen

  • Hi Leuts,
    Ich will ein kleines Programm schreiben mit dem sich bestimmte Aktionen umsetzen lassen(beispielsweise Defragmentierung oder so) von denen nur manche Adminrechte brauchen.Ich will aber nicht das der Nutzer jedesmal beim Programmstart nach Rechten gefragt wird sondern nur wenn bestimmte Aktionen gestartet werden,da es ziemlich nervig ist immer UAC Zeugs zu beantworten.Deshalb bin ich auf die Idee gekommen das man einfach die Batch als Admin ausführen kann ohne das sofort am Anfang gefragt wird.Ist das irgendwie realisierbar?
    mfg masterplc

    Einmal editiert, zuletzt von masterplc (21. September 2013 um 21:46)

  • Entwender du startest das Skript direkt als Admin mit #RequireAdmin oder du verwendest

    [autoit]

    RunAs

    [/autoit]

    There's a joke that C has the speed and efficieny of assembly language combined with readability of....assembly language. In other words, it's just a glorified assembly language. - Teh Interwebz

    C makes it easy to shoot yourself in the foot; C++ makes it harder, but when you do, you blow off your whole leg. - Bjarne Stroustrup
    Genie zu sein, bedeutet für mich, alles zu tun, was ich will. - Klaus Kinski

  • Naja das Problem mit RunAs ist das dafür das Userpasswort erfordert wird und ausserdem der Nutzername.Das Skript soll ja auch auf anderen PCs laufen können ohne das ich den Nutzernamen weiß oder das der Nutzer das PW einem Programm geben muss das ohne jegliche Probleme das PW übermitteln könnte und sich dann selbst schrottet.Also ich würde nem Programm net so einfach über den Weg trauen.Es muss doch universell möglich sein zur Laufzeit Adminrechte zu erfragen oder eine Batch oder whatever mit Adminrechten zu starten oder?

  • Wie gesagt, wenn das Skript mit #RequireAdmin mit Admin-Rechten gestartet wird, haben alle anderen Programme, welche dann mit Run etc. gestarteten werden, genauso Admin-Rechte.

    Das heißt, #RequireAdmin bewirkt, dass beim Start des Skriptes das UAC-Fenster kommt.

    There's a joke that C has the speed and efficieny of assembly language combined with readability of....assembly language. In other words, it's just a glorified assembly language. - Teh Interwebz

    C makes it easy to shoot yourself in the foot; C++ makes it harder, but when you do, you blow off your whole leg. - Bjarne Stroustrup
    Genie zu sein, bedeutet für mich, alles zu tun, was ich will. - Klaus Kinski

  • Naja das Problem mit RunAs ist das dafür das Userpasswort erfordert wird und ausserdem der Nutzername.Das Skript soll ja auch auf anderen PCs laufen können ohne das ich den Nutzernamen weiß oder das der Nutzer das PW einem Programm geben muss das ohne jegliche Probleme das PW übermitteln könnte und sich dann selbst schrottet.Also ich würde nem Programm net so einfach über den Weg trauen.Es muss doch universell möglich sein zur Laufzeit Adminrechte zu erfragen oder eine Batch oder whatever mit Adminrechten zu starten oder?


    Ja was denn nun? Du hast (zu Recht) Bedenken bzw. Probleme damit einem Programm das du nicht kennst Accountdaten anzuvertrauen, damit es die Rechte bekommt die es nunmal braucht (oder gerne hätte...), aber andererseits wünscht du dir Programme die ohne die Interaktion mit dem Anwender (nach Erlaubnis / PW fragen...) einfach mal so Administrator Rechte erlangen können. Das widerspricht sich doch, meinst du nicht?

    UAC wurde eben genau deshalb eingeführt, damit nicht mehr jeder Hobbyprogrammierer volle Administratorrechte auf fremden Systemen erlangen kann. Wenn dir das nicht gefällt kannst du UAC auch abschalten und wieder wie zu XP Zeiten jeder Malware Tür und Tor öffnen.

    Wie schon erwähnt bleibt dir "#requireadmin" um die UAC Abfrage zu starten und dadurch jedesmal bei Programmstart nach Erlaubnis zu fragen oder aber du fragst einmal nach Administrator Daten speicherst diese irgendwo verschlüsselt (z.B. in einer ini) und verwendest sie für alle zukünftigen Programmstarts in deinen runas Aufrufen. Alternativ muss UAC eben auf dem System deaktiviert werden oder zumindestens eine Ausnahme für dein Programm eingerichtet werden, aber auch dafür brauchst du einmalig Administratorrechte, welche du erstmal erfragen musst.

  • Du hast wohl nicht kapiert was ich machen will oder?Ich will das die UAC nicht immer bei jedem start erscheint.Deshalb erfrage ich wie man eine Batch Datei mit Adminrechten MIT UAC starten kann.Ich will das die UAC nur dann auftritt wenn es umbedingt nötig ist da nur eine Handvoll Funktionen Adminrechte benötigen.Das wollte ich erfragen.

  • Du könntest ja auch deine .bat Datei in eine AutoIt-Exe unschreiben, welche ein #RequireAdmin am Anfang hat. :D

    There's a joke that C has the speed and efficieny of assembly language combined with readability of....assembly language. In other words, it's just a glorified assembly language. - Teh Interwebz

    C makes it easy to shoot yourself in the foot; C++ makes it harder, but when you do, you blow off your whole leg. - Bjarne Stroustrup
    Genie zu sein, bedeutet für mich, alles zu tun, was ich will. - Klaus Kinski

  • [autoit]

    #RequireAdmin

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

    Run()

    [/autoit]

    Du startest das Script einmal und es startet die Bats automatisch mit Admin-Rechten. Einmal UAC bestätigen, danach nicht mehr.

    Das hatte ich ihm auch schon vorgeschlagen.
    Er will aber, das seine Batch-Datei dann nach Admin-Rechten fragt, ohne das das Skript welche besitzt


    Du hast wohl nicht kapiert was ich machen will oder?Ich will das die UAC nicht immer bei jedem start erscheint.Deshalb erfrage ich wie man eine Batch Datei mit Adminrechten MIT UAC starten kann.Ich will das die UAC nur dann auftritt wenn es umbedingt nötig ist da nur eine Handvoll Funktionen Adminrechte benötigen.Das wollte ich erfragen.

    There's a joke that C has the speed and efficieny of assembly language combined with readability of....assembly language. In other words, it's just a glorified assembly language. - Teh Interwebz

    C makes it easy to shoot yourself in the foot; C++ makes it harder, but when you do, you blow off your whole leg. - Bjarne Stroustrup
    Genie zu sein, bedeutet für mich, alles zu tun, was ich will. - Klaus Kinski

  • Ok danke Leute ich habe eine Methode gefunden ;)
    Macht zwar einen 2. Thread und braucht die Aut2Exe aber macht ja auch nichts.
    Danke Leute


    EDIT:Die Methode von Krabat funzt perfekt!!
    Danke


    Dann setze bitte den Thread-Präfix auf "gelöst".

    There's a joke that C has the speed and efficieny of assembly language combined with readability of....assembly language. In other words, it's just a glorified assembly language. - Teh Interwebz

    C makes it easy to shoot yourself in the foot; C++ makes it harder, but when you do, you blow off your whole leg. - Bjarne Stroustrup
    Genie zu sein, bedeutet für mich, alles zu tun, was ich will. - Klaus Kinski