Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Win32/Win64 API (native code) (https://www.delphipraxis.net/17-win32-win64-api-native-code/)
-   -   Delphi CreateProcessAsUser vs. CreateProcessWithLogonW (https://www.delphipraxis.net/37216-createprocessasuser-vs-createprocesswithlogonw.html)

Luckie 2. Jan 2005 15:21


CreateProcessAsUser vs. CreateProcessWithLogonW
 
Man kann ja ein Programm unter einem anderen Benutzeraccount mit CreateProcessAsUser oder CreateProcessWithLogonW ausführen. Worin liegen da die Unterschiede bzw. Vor- und/oder Nachteile?

Das PSDK sagt:
Zitat:

The CreateProcessWithLogonW function is similar to CreateProcessAsUser, except that the caller does not need to call the LogonUser function to authenticate the user and get a token.
Aber wo ist da jetzt der Vorteil / Nachteil?

Luckie 3. Jan 2005 23:39

Re: CreateProcessAsUser vs. CreateProcessWithLogonW
 
Ich darf es mal nach oben schieben: *schieb*

Dax 3. Jan 2005 23:55

Re: CreateProcessAsUser vs. CreateProcessWithLogonW
 
Wenn ich das Zitat so durchlese.. du musst eine Funktion weniger aufrufen, sonst anscheinend nichts..

Sprint 3. Jan 2005 23:58

Re: CreateProcessAsUser vs. CreateProcessWithLogonW
 
Zitat:

Zitat von Luckie
Man kann ja ein Programm unter einem anderen Benutzeraccount mit CreateProcessAsUser oder CreateProcessWithLogonW ausführen. Worin liegen da die Unterschiede bzw. Vor- und/oder Nachteile?

Ich denke mal der große Vorteil von CreateProcessWithLogonW ist, das du dir eine Menge an Zeilen sparen kannst.
Wenn man sich das Beispiel "Starting an Interactive Client Process" unter CreateProcessAsUser im Platform SDK anschaut, ist der Unterschied an der Tipparbeit enorm. Hinzu kommt noch, das man eventuell noch manuell LoadUserProfile aufrufen muss. Ich kann mir auch vorstellen, das es irgendetwas mit Service/Dienst-Programmierung zu tun hat.

Motzi 4. Jan 2005 00:05

Re: CreateProcessAsUser vs. CreateProcessWithLogonW
 
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 Windows den Token..

Assarbad 4. Jan 2005 14:59

Re: CreateProcessAsUser vs. CreateProcessWithLogonW
 
Zitat:

Zitat von Motzi
Bei CreateProcessWithLogonW erzeugt Windows den Token..

Sicher? Nach meinen Informationen tut dies der RunAs-Dienst. Wäre dieser also ausgeschalten, dann ginge es nicht mehr. Wenn sowieso jemand gerade Code testet, kann er das ja mal verifizieren - dazu einfach den RunAs-Dienst stoppen und auf deaktiviert setzen.

Marcel Gascoyne 4. Jan 2005 17:31

Re: CreateProcessAsUser vs. CreateProcessWithLogonW
 
Ich hatte es damals mit CreateProcessAsUser nicht hinbekommen und habe wie im SDK beschrieben die Funktion CreateProcessWithLogonW verwendet. Hintergrund: Wir müssen bei Benutzern ohne Admin-Rechte automatisiert Software installieren.

Siehe auch ein älterer Beitrag von mir: CreateProcessAsUser

Gruß,
Marcel

Assarbad 4. Jan 2005 18:56

Re: CreateProcessAsUser vs. CreateProcessWithLogonW
 
Zitat:

Zitat von Marcel Gascoyne
Hintergrund: Wir müssen bei Benutzern ohne Admin-Rechte automatisiert Software installieren.

Dazu existiert eigentlich MSI. Seit v2.0 hat es ja auch einen Service, an den man diese Aufgaben delegieren kann. Kann die Administration stark erleichtern ;)

Marcel Gascoyne 4. Jan 2005 19:02

Re: CreateProcessAsUser vs. CreateProcessWithLogonW
 
Zitat:

Zitat von Assarbad
Dazu existiert eigentlich MSI. Seit v2.0 hat es ja auch einen Service, an den man diese Aufgaben delegieren kann. Kann die Administration stark erleichtern ;)

Schon, aber wir haben eine Netware Umgebung wo aus dem Loginscript Batchdateien aufgerufen werden. Teilweise sind dies auch normale Anwendungen die einfach Adminrechte benötigen um z.b. eine Inventarisierung des Rechners vorzunehmen.

Gruß,
Marcel


Alle Zeitangaben in WEZ +1. Es ist jetzt 00:46 Uhr.

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz