FileCopy und RegWrite als Admin ausführen

  • Hallo zusammen,

    ich hab folgendes Script gebastelt, was auf den Arbeitsplatz als Admin ein Update ausführen soll. Bis zum Punkt "Run..." gehts noch, danach gehen dem Script offensichtlich die Adminrechte verloren?! Kann mir jemand helfen. Vielen Dank im Vorraus!

    [autoit]


    $admin = "..."
    $domain_admin = "..."
    $pwd_admin = "..."

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

    RunAsSet ( $admin, $domain_admin, $pwd_admin )
    Run ("\\Server\...\Update.EXE", "\\Server\...\")
    FileCopy ("\\Server\Arbeit\_test\Support.dat", "C:\Programme\Programmname\")
    regwrite ("HKEY_LOCAL_MACHINE\SOFTWARE\Softwarename\3.5\TK\", "Server", "REG_SZ", "10.2.129.69")
    RunAsSet ()

    [/autoit]
    • Offizieller Beitrag

    Hallo!

    Wenn man die Hilfe zu RunAsSet mal aufmerksam durchliest stellt man fest das sich RunAsSet nur auf die Befehle Run und RunWait auswirkt. Es ist also nicht möglich ein FileCopy mit RunAsSet unter einem anderen Benutzer auszuführen!

    Ich löse das Problem immer folgendermassen (funktioniert nur mit der Kompilierten Version):

    [autoit]


    $admin = "..."
    $domain_admin = "..."
    $pwd_admin = "..."

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

    ; Wenn das Programm nicht als Admin läuft nochma
    ; mit Adminrechten starten
    If Not IsAdmin() Then
    RunAsSet($admin, $domain_admin, $pwd_admin)
    Run(@ScriptFullPath, @ScriptDir, @SW_HIDE)
    RunAsSet()
    Exit
    EndIf

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

    Run ("\\Server\...\Update.EXE", "\\Server\...\")
    FileCopy ("\\Server\Arbeit\_test\Support.dat", "C:\Programme\Programmname\")
    regwrite ("HKEY_LOCAL_MACHINE\SOFTWARE\Softwarename\3.5\TK\", "Server", "REG_SZ", "10.2.129.69")

    [/autoit]
  • Hallo in die Runde,

    vielen Dank für die Info's.

    @1. Antwort: Über die Gruppenrichtlinie am Domaincontroller sind die Arbeitsstationen ohne Schreibrechte auf C: ausgestattet.

    @2.Antwort: ich bin durch ein bißchen tüffteln "vielleicht" einen Schritt weiter gekommen:

    1. Urdatei erstellen

    RunAsSet ( $admin, $domain_admin, $pwd_admin )
    RunWait ("\\Server\...\Update.EXE", "C:\Programme\Programmname\")
    RunWait("kopieren.exe")
    RunWait("registrieren.exe")
    RunAsSet ()

    2. Datei "kopieren.exe" erstellen

    FileCopy ("\\Server\Arbeit\_test\Support.dat", "C:\Programme\Programmname\") usw.

    3. Datei "registrieren.exe" erstellen
    regwrite ("HKEY_LOCAL_MACHINE\SOFTWARE\Softwarename\3.5\TK\", "Server", "REG_SZ", "10.2.129.69")

    Komisch ist nur, dass er bei Aufruf der 2. Datei sagt, er können den Pfad nicht finden. Obwohl alles korrekt eingestellt ist (Dateien liegen im Netzwerk). Wenn ich auf eine Arbeitsstation bin, die lokale Adminrechte hat, funktioniert alles tadellos. Sobald ich das Update unter einer Benutzer ohne Adminrechte ausführe, klappt zwar "Update.exe" aber danach ist ruhe... :(