skid
Goto Top

VB6 Kann man bestimmte Befehle eines Programms unter einem anderen Account ausführen ?

Hallo,

hoffe Ihr könnt mir bei meiner Frage / Problem weiterhelfen....!?

Ich habe ein VB6 Programm welches neue Benutzer im AD anlegt, einige Einträge in eine SQL-DB einträgt, Ordner anlegt usw.....
Das Programm wird mit einem Admin-Account aufgerufen da ein normaler Benutzer keine Rechte hat neue Benutzer im AD anzulegen.
D.h. alles was mit dem Programm gemacht wird läuft unter diesem Admin-Account.

Beim Eintragen von Daten in die SQL-DB wird dieses mitgelogt. Nur steht dann da als Ausführender der Admin-Account mit dem das VB Programm aufgerufen wurde.
Ich würde es jetzt gerne so haben das der Name des tatsächlich Ausführenden da steht.

Ist es möglich den Abschnitt wo die Verbinding zur SQL-DB gemacht und die Daten geschrieben werden unter dem normalen User-Account gemacht wird und es danach wieder mit dem Admin-Account weitergeht ?
Es wäre auch möglich das Programm mit dem normalen User aufzurufen und die Einträge im AD dann mit einem Admin-Account machen zu lassen.....

Vielleicht hat einer ja eine Idee....


Gruß
SKID

Content-Key: 161873

Url: https://administrator.de/contentid/161873

Printed on: April 16, 2024 at 07:04 o'clock

Member: Karo
Karo Mar 02, 2011 at 14:16:09 (UTC)
Goto Top
Hi,

wieso wertet das Proggie nicht die Umgebungsvariable USERNAME aus und trägt diesen in die LOG-Table?

bye
Karo
Member: SlainteMhath
SlainteMhath Mar 02, 2011 at 14:44:06 (UTC)
Goto Top
Moin,

oder wie wär's wenn Du dem richtigen User Verwaltungsrechte auf den/die entsprechenden OU's deligierst? M.E. die sauberste Methode

lg,
Slainte
Member: skid
skid Mar 03, 2011 at 07:26:08 (UTC)
Goto Top
Zitat von @Karo:
Hi,

wieso wertet das Proggie nicht die Umgebungsvariable USERNAME aus und trägt diesen in die LOG-Table?

bye
Karo


Hi,

das hatte ich mal probiert, aber da wird dann nur der USERNAME des Admin-Accounts genommen.

SKID
Member: skid
skid Mar 03, 2011 at 07:26:29 (UTC)
Goto Top
Zitat von @SlainteMhath:
Moin,

oder wie wär's wenn Du dem richtigen User Verwaltungsrechte auf den/die entsprechenden OU's deligierst? M.E. die
sauberste Methode

lg,
Slainte


Moin,

das wäre vielleicht schon eine saubere Methode - ist aber nicht erwünscht.
Dieses Proggi wird von mehreren Personen ausgeführt die auch noch Bundesweit verteilt sind.

SKID
Member: Karo
Karo Mar 03, 2011 at 09:07:41 (UTC)
Goto Top
Moin,

klar, das Prog wird schließlich im Admin-Kontext laufen, dann ist die Umgebung auch die seine.
Es gibt sicherlich mehrere Möglichkeiten. Allerdings müsste man den Code und Deine Umgebung kennen
Ein Beispiel:
Wenn das Prog per RUNAS aufgerufen wird, könntest Du zuvor den normalen %USERNAME% in der CMD in ein LOG schreiben, welches dann wiederum vom Prog eingelesen und der Wert in die SQL DB geschrieben wird.

Ansonsten wäre es, abgesehen von der OU Geschichte, am saubersten nur den Code der tatsächlich als Admin ausgeführt werden muss auch unter dessen Kontext laufen zu lassen und alles andere mit dem normalen Useraccount.

Karo
Member: skid
skid Mar 04, 2011 at 08:00:30 (UTC)
Goto Top
Moin,

habe es bisher so das ich eine "start.exe" habe die dann das eigentliche Programm als Admin-User aufruft. In der "start.exe" wird der Username des tatsächlichen Anwenders ermittelt und in eine
Textdatei geschrieben die ich dann an einer anderen Stelle wieder verwende.

Es ist wohl so das mit dem "Hauptprogramm", welches mit dem Adminaccount läuft und die Einträge in die SQL-DB macht, der Username des Adminaccounts autom. mit in die DB geschrieben wird.....ist wohl so im SQL eingestellt ?!
Daher wäre es wohl am besten wenn das Programm mit dem Account des tatsächlichen Users gestartet wird und nur die Teile, wo der User keine Rechte hat was zu machen, diese mit einem Admin-Account laufen würden.

Ich habe den ganzen Code in einer Datei. Also keine externen Module usw.....

Könnte man evtl. bestimmte Teile "Auslagern" die man dann als Admin aufruft ? ....Programm wird gestartet, wird von oben her abgearbeitet, kommt an einen Punkt wo etwas "Extenes" aufgerufen wird und dann wieder in den Hauptcode springt....

Kenne mich leider nicht so gut mit VB aus.....


SKID
Member: Karo
Karo Mar 04, 2011 at 15:17:28 (UTC)
Goto Top
Hi,

sicher kann man das mit dem auslagern machen, muss man den Code halt modifizieren und neu kompilieren.
Ansonsten liefert sehr wahrscheinlich Dein Prog die Daten an SQL, die DB wird von sich wohl weniger machen.

Karo