runas mit dem c-builder ausführen



  • hallo
    habe ein kleines problem. ich habe seit einiger zeit nicht wirklich viel programmiert deswegen finde ich irgendwie keinen ansatz bzw einstieg.
    folgendes problem:
    windows 2000, 1 admin 1 benutzer
    es gibt verschiedene programme die admin rechte erfordern. der benutzer soll aber benutzer bleiben.

    lösung1: mit reg und filemon gucken welche rechte benötigt werden und manuell vergeben
    -> viel arbeit und später nicht nachvollziehbar wo welche veränderungen gemacht wurden
    lösung2: "ausführen als" hier muss allerdings das admin passwort übergeben werden und das soll eben nicht
    lösung3: tools die "ausführen als" mit verschlüsselter pw eingabe ausführen
    -> dies tools können oft nur ein prog ausführen sprich für jedes prog müsste man eine spezielle verknüpfung machen die es mit adminrechten aufruft
    klingt etwas wirr tut aber so erstmal nichts zur sache

    ich habe folgendes vor
    ein programm im borland builder 5 zu schreiben welches eine liste mit versch. programmen beinhaltet. wird ein prog dieser liste angwählt soll bcb mit oder ohne hilfe des windows-tools runas (zu finden unter %systemroot\system32) das programm aufrufen und das pw übergeben, damit man es mit admin rechten ausführen kann
    das das pw im klartext in der exe stehen würde wäre vorerst nicht all zu schlimm

    ich hoffe da man meine fragestellung so einigermaßen verstanden und das jemand nen lösungsansatz für mich hat
    gruß daniel



  • ShellExecute !? Siehe auch die FAQ unter "externes Programm starten".

    Wenn du ohne runas auskommen willst musst du dich wohl an das WinAPI-Forum wenden, bei Bedarf verschieben wir dich gern dorthin.



  • kewl danke
    wie gesagt ewig nix geprogt sicher bald n jahr nich
    hm .. mit shell execute is ja schonmal n ansatz ... aber ich kanns ja mal mit winapi versuchen ... wenn du das also verschieben würdest?? kenn mich zwar mit winapi nich wirklich aus aber.. learning by doing..danke schonmal
    gruß daniel



  • Dieser Thread wurde von Moderator/in Jansen aus dem Forum Borland C++ Builder (VCL/CLX) in das Forum WinAPI verschoben.

    Im Zweifelsfall bitte auch folgende Hinweise beachten:
    C/C++ Forum :: FAQ - Sonstiges :: Wohin mit meiner Frage?

    Dieses Posting wurde automatisch erzeugt.



  • daniel_nap schrieb:

    mit shell execute is ja schonmal n ansatz ... aber ich kanns ja mal mit winapi versuchen

    rofl 😃 😃 😃



  • audacia schrieb:

    daniel_nap schrieb:

    mit shell execute is ja schonmal n ansatz ... aber ich kanns ja mal mit winapi versuchen

    rofl 😃 😃 😃

    ok n bissl kaka ausgedrückt aber mir ist auch klar das winapi kein befehl oder ähnliches ist 🙄



  • daniel_nap schrieb:

    audacia schrieb:

    daniel_nap schrieb:

    mit shell execute is ja schonmal n ansatz ... aber ich kanns ja mal mit winapi versuchen

    rofl 😃 😃 😃

    ok n bissl kaka ausgedrückt aber mir ist auch klar das winapi kein befehl oder ähnliches ist 🙄

    doppelrofl 🙄
    ShellExecute ist Bestandteil der WinAPI!



  • anstatt mir ein paar tipps zu geben oder ähnliches sowas.. naja muss ich mich wohl woanders umschaun..



  • daniel_nap schrieb:

    anstatt mir ein paar tipps zu geben oder ähnliches sowas..

    OKOK 🙂 Schau dir mal CreateProcessAsUser an.

    Moritz



  • ok danke...
    hab mir das soweit durchgelesen ... kann auch prozesse ausführen aber das ist mir alles was hoch.. 😕 😕 😕 wie gesagt hab nich wirklich viel ahnung davon... trotzdem danke...



  • audacia schrieb:

    daniel_nap schrieb:

    anstatt mir ein paar tipps zu geben oder ähnliches sowas..

    OKOK 🙂 Schau dir mal CreateProcessAsUser an.

    Moritz

    Damnit wird er nicht weitkommen:
    Unter NT/2k benötigt man das SE_TCB_NAME Privilege um LogonUser erfolgreich aufrufen zu können. Diese Privilege besitzen allerdings nur Prozesse die in der System-LogonSession laufen - sprich Services. Ein Prozess eines normalen Benutzers bekommt per LogonUser also kein gültiges Token-Handle das er an CreateProcessAsUser übergeben kann. Bei CreateProcessWithLogonW erzeugt der "runas" Dienst das Token.



  • hab da mal was geschrieben, in dem du das pass im klartext weitergibst! Sollte allerdings kein Problem sein da zusätzlich noch ne verschlüsselung mit deinem eigenen Schlüssel hinzuzufügen, bzw du kannst dein pass ja auch gleich eintragen.

    //---------------------------------------------------------------------------
    
    #include <vcl.h>
    #include <iostream>
    #include <stdio.h>
    #include <stdlib.h>
    #include <windows.h>
    #pragma hdrstop
    
    //---------------------------------------------------------------------------
    
    #pragma argsused
    int main(int argc, char* argv[])
    {
           if(argc<4)
    	{       printf("\n\n");
    		printf("GHCIF.DE - Custom RunAS");
    		printf("\n\n");
            printf("############### Usage ###############\n");
            printf("#   CrAS.exe <user> <pass> <app>    #\n");
            printf("#                                   #\n");
            printf("#         made by peaceohm@ghcif.de #\n");
            printf("#####################################\n");
            return 0;
    
    	}
        else{
        STARTUPINFOW si;
        PROCESS_INFORMATION pi;
    
        memset(&si, 0, sizeof(si));
        memset(&pi, 0, sizeof(pi));
    
        if(!CreateProcessWithLogonW(WideString(argv[1]), WideString("."), WideString(argv[2]),LOGON_WITH_PROFILE, NULL, WideString(argv[3]), NULL, NULL, NULL, &si, &pi))
        printf("\nUser/Pass/Anwendungsangaben fehlerhaft!\n");
    
        CloseHandle(pi.hProcess);
        CloseHandle(pi.hThread);
    
      return 0;
      }
    }
    //---------------------------------------------------------------------------
    

    Mfg
    peaceohm


Anmelden zum Antworten