Delphi-PRAXiS
Seite 2 von 3     12 3      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi problem mit createprocesswithlogonW (https://www.delphipraxis.net/122668-problem-mit-createprocesswithlogonw.html)

Luckie 21. Okt 2008 17:17

Re: problem mit createprocesswithlogonW
 
Zitat:

Zitat von 5etH
ja aber wie kann es denn sein das wenn ich als user mich (domainaccount) angebe es dann funzt, und bei dem domainadmin nicht ? ... finde ich seltsam

Du willst keine Hilfe oder? Denn genau das könnte uns der Rückgabeert von GetLastError verraten.

Also ich klinke mich hier aus. Ich bin ja bereit zu helfen, aber ich habe keine Lust um Informationen betteln zu müssen, nur um helfen zu können.

Dezipaitor 21. Okt 2008 19:04

Re: problem mit createprocesswithlogonW
 
Ich kann diese Funktion eh nicht empfehlen, da sie eine Menge Probleme hat.

ringli 21. Okt 2008 19:35

Re: problem mit createprocesswithlogonW
 
Welche würdest du denn für diesen Zweck empfehlen?

Dezipaitor 21. Okt 2008 19:47

Re: problem mit createprocesswithlogonW
 
Ab XP immer LogonUser und CreateProcessAsUser.

Luckie 21. Okt 2008 22:50

Re: problem mit createprocesswithlogonW
 
Warum kannst du sie nicht empfehlen? Deine Methode funktioniert aber unter 200 und NT nicht, da dem Benutzer die nötigen Privilegien fehlen, um LogonUser erfolgreich aufzurufen.

uwewo 22. Okt 2008 07:24

Re: problem mit createprocesswithlogonW
 
Zitat:

Zitat von Luckie
Du willst keine Hilfe oder? Denn genau das könnte uns der Rückgabeert von GetLastError verraten.

Hi Luckie,

es kann durchaus sein, dass er keinen Fehler durch GetLastError erhält, so war es damals bei mir.
In unserer Firma gibt es Domain Admins, aber auch Lokale Admins natürlich mit unterschiedlichen Rechten. Jedesmal wenn ich den Explorer über CreateProcessAsLogon gestarte habe, wurde der Explorer in der Tasklist zwar angezeigt, dieser Task wurde allerdings von Windows nach ein paar Sekunden einfach wieder entfernt. Vielleicht liegt es auch an den Policies im Active Directory, bin leider kein Domain Admin.

Erst als ich den Explorer in einem separaten Task gestartet habe(daher der Parameter /e,/separate,)
funktionierte das starten des Programms problemlos.

Das ganze hat allerdings auch einen Nachteil, man muss dieses Explorer Fenstet immer manuell aktualisieren nach kopieren, löschen etc. da es nicht automatisch geschieht.

Zitat:

Zitat von Dezipaitor
Ich kann diese Funktion eh nicht empfehlen, da sie eine Menge Probleme hat.

Ich kann mich Deiner Meinung leider nicht anschliessen, mein Programm wird derzeit in 46 Standorten
weltweit von den lokalen Admins seit ca. 1,5 Jahren eingesetzt, und ich hatte noch keine negative Resonanz.

Uwe

Dezipaitor 22. Okt 2008 09:02

Re: problem mit createprocesswithlogonW
 
Zitat:

Zitat von uwewo
es kann durchaus sein, dass er keinen Fehler durch GetLastError erhält, so war es damals bei mir.
In unserer Firma gibt es Domain Admins, aber auch Lokale Admins natürlich mit unterschiedlichen Rechten. Jedesmal wenn ich den Explorer über CreateProcessAsLogon gestarte habe, wurde der Explorer in der Tasklist zwar angezeigt, dieser Task wurde allerdings von Windows nach ein paar Sekunden einfach wieder entfernt. Vielleicht liegt es auch an den Policies im Active Directory, bin leider kein Domain Admin.

Erst als ich den Explorer in einem separaten Task gestartet habe(daher der Parameter /e,/separate,)
funktionierte das starten des Programms problemlos.

Ohne diese Parameter sendet der WindowsExplorer eine Nachricht, die dann im alten Prozess ein neues Fenster erstellt. Der neue Explorer beendet sich dann selbst. Es hat irgendetwas mit COM Rechten zu tun, die es verhindern, dass eine Nachricht empfangen werden kann (so oder so ähnolich). Der neue Explorer beendet sich dann erfolgreich. Daher kein Fehler.

Zitat:

Zitat von uwewo
Das ganze hat allerdings auch einen Nachteil, man muss dieses Explorer Fenstet immer manuell aktualisieren nach kopieren, löschen etc. da es nicht automatisch geschieht.

Das ist ein bekannter Fehler vom Explorer.

Zitat:

Zitat von uwewo
Ich kann mich Deiner Meinung leider nicht anschliessen, mein Programm wird derzeit in 46 Standorten
weltweit von den lokalen Admins seit ca. 1,5 Jahren eingesetzt, und ich hatte noch keine negative Resonanz.

Schau dir die Kommentare bei der Funktion der MSDN an. Besonders den von mir.

Dein Programm ist vom sekundären Anmeldedienst abhängig. Ist dieser abgeschaltet, funktioniert die Funktion nicht mehr.

Besonders heftig :
Wenn man den Dienst abstellt oder er abstürzt, dann werden die damit gestarteten Programme beim Abmelden (lokale Konsole) nicht geschlossen und stehen dem nächsten Benutzer zur Verfügung.

5etH 22. Okt 2008 09:05

Re: problem mit createprocesswithlogonW
 
ich werde es sobald ich wieder gesund und an der Arbeit bin mal ausprobieren ... kann es sein das ich das Problem dann auch mit anderen Programmen bekommen kann z.B. Internet Explorer?

gruß Manuel

Dezipaitor 22. Okt 2008 20:27

Re: problem mit createprocesswithlogonW
 
Das Problem existiert immer für alle Programme, die diese Funktion benutzen, z.B. auch für den Kontextmenüeintrag "Ausführen als..." im Explorer. Auch wenn man den Dienst deaktiviert, kann man diesen Menüeintrag nicht mehr verwenden.

Hier die Übersicht, was es für Probs mit CreateProcessWithLogonW gibt:
  • Diese Funktion funktioniert nicht in einem Service!
  • Sie funktioniert auch dann nicht, wenn der "Sekundäre Anmeldedienst deaktiviert ist".
  • Stürzt der Dienst ab, und der Benutzer meldet sich ab und einer Neuer meldet sich an (z.B. Gast), dann bleiben alle Anwendungen, die mit dieser Fkt gestartet wurde (vllt sogar als Administrator), für den neuen Benutzer zugänglich. Siehe auch "Warum Surun CreateProcessWithLogonW nicht mehr benutzt."
  • Sie umgeht Einschränkungen auferlegt durch einen Job für den aktuellen Prozess. (Out of the "Sandbox")
  • Anwendungen, die ihre Daten bei der Nachricht WM_QUERYENDSESSION oder WM_ENDSESSION, ihre Daten sichern oder sonstige wichtige Tätigkeiten machen wollen (z.B. Shutdown verhindern, wegen CD-Brennen), funktionieren nicht richtig, da diese Nachrichten nicht von diesen Apps empfangen werden.
  • Es gibt einige Probleme auf einigen Systemen mit dem lpDesktop in StartupInfo.

5etH 24. Okt 2008 06:54

Re: problem mit createprocesswithlogonW
 
Also... mit den Parametern funktioniert es jetzt trotzdem habe ich nun meine Bedenken bezüglich der von mir gewälten methode und ich werde anfangen es mit CreateProcessAsUser probieren, da wir keine systeme hier haben die älter als XP sind


Alle Zeitangaben in WEZ +1. Es ist jetzt 12:43 Uhr.
Seite 2 von 3     12 3      

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