Einzelnen Beitrag anzeigen

Olli
(Gast)

n/a Beiträge
 
#2

Re: NetApi-Funktionen als beliebiger User Ausführen

  Alt 4. Aug 2005, 18:26
Zitat von Icydragon:
Bei einigen Funktionen muss man schon Domänen-Admin oder Sicherungs-Op sein, wenn man sie erfolgreich ausführen will.
Das ist korrekt und entspricht dem Sicherheitsmodell von Windows.

Zitat von Icydragon:
Wie kann ich diese Funktion in einem solchen Fall unter einem anderen Benutzer ausführen?
Das Problem dabei ist, daß, wie du schon selber feststellst MSDN-Library durchsuchenLogonUser() das Privileg SE_TCB_NAME haben muß. TCB steht für Trusted Computing Base und schließt im Prinzip nur das System selber ein. Ein Admin kann dieses Privileg aber ebenfalls ergattern. Das Token welches du aus dem Aufruf von LogonUser() bekommst, kannst du dann verwenden um einen Thread deines Prozesses als dieser Nutzer (also mit dessen Rechten) laufen zu lassen. Dementsprechend kann innerhalb eines Prozesses auch mehrere Threads mit jeweils verschiedenen Nutzerkontexten Aufgaben machen lassen, die sonst nicht möglich wären.

Das was du machen willst, schreit förmlich nach Delegation an einen Dienst. Dieser Dienst würde dann für dich alles übernehmen was mit Logons zu tun hat. Eine Alternative könnte ab W2K die Funktion MSDN-Library durchsuchenCreateProcessWithLogonW() bieten, die ohne besagtes Privileg auskommt. Allerdings müßtest du auch in diesem Fall zwischen den beiden Prozessen kommunizieren.
  Mit Zitat antworten Zitat