AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Benutzer aus Dienst anmelden

Ein Thema von kuba · begonnen am 12. Sep 2009 · letzter Beitrag vom 12. Sep 2009
Antwort Antwort
Benutzerbild von kuba
kuba

Registriert seit: 26. Mai 2006
Ort: Arnsberg
588 Beiträge
 
Delphi 11 Alexandria
 
#1

Benutzer aus Dienst anmelden

  Alt 12. Sep 2009, 19:07
Hallo

ich verwende in meinem Programm CreateProcessWithLogonWrapper um einen Benutzer am System anzumelden um dessen Registry zu lesen. Das funktioniert prima, nur aus einem Systemdienst heraus funktioniert es nicht. Kann mir jemand sagen warum ? Und wie man es anstellt einen Benutzer aus einem Dienst anzumelden ?

kuba
Stefan Kubatzki
E=mc2
  Mit Zitat antworten Zitat
Benutzerbild von Luckie
Luckie

Registriert seit: 29. Mai 2002
37.621 Beiträge
 
Delphi 2006 Professional
 
#2

Re: Benutzer aus Dienst anmelden

  Alt 12. Sep 2009, 19:31
Damit meldest du keinen Benutzer angemeldet, sondern nur ein Prozess im Kontext eines bestimmten Benutzers gestartet. Willst du in einem Dienst einen Prozess unter einem anderem Benutzerkontex starten, kannst du MSDN-Library durchsuchenCreateProcessAsUser benutzen.
Michael
Ein Teil meines Codes würde euch verunsichern.
  Mit Zitat antworten Zitat
Benutzerbild von kuba
kuba

Registriert seit: 26. Mai 2006
Ort: Arnsberg
588 Beiträge
 
Delphi 11 Alexandria
 
#3

Re: Benutzer aus Dienst anmelden

  Alt 12. Sep 2009, 19:45
Hy,

und wie benutzt man das ? Wie komme ich an das usertoken ?

Habe createprocessasuser schon in Benutzung:

Delphi-Quellcode:
                            CreateProcessAsUser(
                            hUserToken,
                            nil,
                            PChar(CmdLine), // pointer to command line string
                            nil, // pointer to process security attributes
                            nil, // pointer to thread security attributes
                            True, // handle inheritance
                            0, // creation flags
                            nil, // pointer to new environment block
                            nil, // pointer to current directory name
                            SI, // STARTUPINFO
                            PI); // PROCESS_INFORMATION
Momentan erhalte ich das Usertoken aus der aktiven Session des Benutzers:

Delphi-Quellcode:
        if not f_WTSQueryUserToken(ActiveSessionID, hUserToken) then
        begin
            ShowMessage('WTSQueryUserToken error ' + SysErrorMessage(GetLastError));
            Exit;
        end;
Mein Benutzer soll aber nicht am Desktop angemeldet sein...

Ich hab auch mal CreateLogonAsUser ausprobiert, unter XP erhalte ich jedoch die Meldung "Zugriff verweigert"

kuba
Stefan Kubatzki
E=mc2
  Mit Zitat antworten Zitat
Benutzerbild von kuba
kuba

Registriert seit: 26. Mai 2006
Ort: Arnsberg
588 Beiträge
 
Delphi 11 Alexandria
 
#4

Re: Benutzer aus Dienst anmelden

  Alt 12. Sep 2009, 21:59
ich habs !


Delphi-Quellcode:
if not LogonUser(
           PChar('user'),
           PChar('localhost'),
           PChar('passwort'),
           LOGON32_LOGON_INTERACTIVE,
           LOGON32_PROVIDER_DEFAULT,
           token) then exit;

  ZeroMemory( @si, sizeof(si) );
  si.lpDesktop:=PChar('MyOwnDesktop');
  si.cb := sizeof(si);
  ZeroMemory( @pi, sizeof(pi) );
  //cf:=CREATE_NEW or CREATE_NEW_CONSOLE;
  command:='notepad.exe';

try
  if not CreateProcessAsUser(
    token,
    nil,
    PChar(command),
    nil,
    nil,
    False,
    CREATE_NEW_CONSOLE, //cf,
    nil,
    PChar(ExtractFilePath(command)),
    si,
    pi )then exit;
except
  exit;
  end;
Ich bekomme die Anwendung zwar jetzt im Taskmanager zu sehen und sie wir auch unter dem gewünschten User ausgeführt, aber ich kann in der Registry leider keine SID des Benutzers entdecken. Was läuft denn noch falsch ??

Muss es vielleicht CreateProcessInSession sein ?

kuba
Stefan Kubatzki
E=mc2
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 09:35 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz