#RequireAdmin und runaswait

  • Hallo zusammen, vielleicht kann mir einer von euch auf die Sprünge helfen.
    Ich möchte einen ganz simplen Command-Befehl mit Adminrechten absetzen.
    Unter Windows XP war das mit runas oder runaswait ja kein Problem, mit Windows 7 und UAC gibts aber nur Probleme.

    Wie schaffe ich es, ein Programm als Administrator zu starten, ohne das der User ein Administratorpasswort eingeben muss?

    Folgenes Beispiel:

    [autoit]

    #RequireAdmin
    $cmd = 'netsh advfirewall set allprofiles state off'
    RunWait('"' & @ComSpec & '" /k ' & $CMD, @SystemDir)

    [/autoit]

    Das funktioniert als Adminstrator ja problemlos.

    Ändere ich das Skript nun auf:

    [autoit]

    #RequireAdmin
    $cmd = 'netsh advfirewall set allprofiles state off'
    RunAsWait("username","domain","password","",'"' & @ComSpec & '" /k ' & $CMD, @SystemDir)

    [/autoit]

    Erhalte ich die Fehlermeldung, dass erhöhte Rechte notwendig sind. ;(
    Wie komme ich nun mit einem anderen User zu erhöhten Rechten?

    glg,
    Flo

  • Moin,

    die Lösung hast du da quasi stehen - du startest im 2. Skript mit runaswait als Admin (= mit Adminrechten)
    dann lass doch das "#RequireAdmin" weg - das brauchst du dann ja eben nicht (und das löst die UAC aus)

    Du startest IN deinem Skript etwas mit Adminrechten - aber dein Skript selbst braucht keine.

    BLinz

  • Guten Morgen,

    das war auch meine erste Überlegung, allerdings funktioniert das nicht.
    Denn selbst wenn ich als Administrator ein Command-Fenster öffne und den Befehl eingebe, verlangt Windows 7 bei einigen Befehlen,
    dass diese explizit mit der Funktion "Als Administrator ausführen" gestartet werden

    In meinem Beispiel möchte ich z.B. die Windows-Firewall deaktivieren.


    Ich benötige also eine Kombination aus runaswait und #RequireAdmin
    Das scheint aber im AutoIT nich vorgesehen zu sein. :S

    lg,
    Flo

  • mhh stimmt - macht er aber auch wenn ich das lokal mit dem Windows RunAs ausführe - selber Fehler.

    dann müsste es Problem das auf Domänenrechner nicht geben .... aber du willst das ausführen bevor der Rechner in der Domäne ist?

    auf Anhieb hätte ich nur die Lösung, UAC zu deaktiveren .... mal nachdenken ....

  • So, zwischenstand: Wenn das lokale Administratorenkonto aktiviert ist und ein Kennwort hat kann du dieses nehmen ohne Fehler.

    Nur ist es bei Windows 7 ab Werk deaktiviert .... ich suche noch ...

    Mien andere ösung im moment würde 2 Neustarts erfordern , also auch mist

  • Herzlichen Dank!

    Mit dem lokalen Administrator funktioniert es einwandfrei. :)
    Dieser wird bei uns zum Glück immer aktiviert und mit einem Passwort versehen.
    Mit dem Domain-Admin bin ich verzweifelt doch auf die Idee den lokalen zu nehmen bin ich nicht gekommen.

    lg und ein schöne WE,
    Flo