![]() |
Für svchost.exe(Dienst) den richtigen anmeldenamen erhalten
Guten tag!
Ich erhalte mit dieser Funktion für alle Prozesse den Domain und Benutzer- namen:
Delphi-Quellcode:
Ich habe auch die Privilegien 'SeSecurityPrivilege' und 'SeDebugPrivilege' aktiviert, jedoch
function GetUserAndDomain(ProcessId: DWORD):String;
var cbBuf : Cardinal; ptiUser : PTOKEN_USER; snu : SID_NAME_USE; ProcessHandle,hToken: THandle; UserSize, DomainSize: DWORD; bSuccess : Boolean; s,User,Domain : String; begin ProcessHandle := OpenProcess(PROCESS_QUERY_INFORMATION, False, ProcessId); if ProcessHandle <> 0 then begin //EnableProcessPrivilege(ProcessHandle, 'SeSecurityPrivilege', True); if OpenProcessToken(ProcessHandle, TOKEN_QUERY, hToken) then begin bSuccess := GetTokenInformation(hToken, TokenUser, nil, 0, cbBuf); ptiUser := nil; while (not bSuccess) and (GetLastError = ERROR_INSUFFICIENT_BUFFER) do begin ReallocMem(ptiUser, cbBuf); bSuccess := GetTokenInformation(hToken, TokenUser, ptiUser, cbBuf, cbBuf); end; CloseHandle(hToken); if not bSuccess then Exit; UserSize := 0; DomainSize := 0; LookupAccountSid(nil, ptiUser.User.Sid, nil, UserSize, nil, DomainSize, snu); if (UserSize <> 0) and (DomainSize <> 0) then begin SetLength(User, UserSize); SetLength(Domain, DomainSize); if LookupAccountSid(nil, ptiUser.User.Sid, PChar(User), UserSize, PChar(Domain), DomainSize, snu) then begin User := StrPas(PChar(User)); Domain := StrPas(PChar(Domain)); end; end; if bSuccess then begin FreeMem(ptiUser); end; end; CloseHandle(ProcessHandle); end; s := Domain +'\' + User; result:= s; end; erhalte ich nicht die richtigen Anmelde/Benutzer- namen für den Dienst svchost.exe, welcher ja 5-8 instanzen hat und unter anderen Benutzernamen startet. Für svchost.exe erhalte ich nur den "SYSTEM" Benutzernamen. Wie kann ich auch die anderen Benutzernamen wie "Nezwerkdienst"oder "Lokalerdienst" erhalten?? Danke für antworten. |
Re: Für svchost.exe(Dienst) den richtigen anmeldenamen erhal
SYSTEM ist ja auch richtig, denn das sind die Host-Anwendungen für die Dienste und diese laufen nun mal, wenn nicht anders angegeben unter dem Systemkonto.
|
Re: Für svchost.exe(Dienst) den richtigen anmeldenamen erhal
villeicht wird es an hand eines screenshots vom Process Explorer deutlicher:
![]() naja wie gesagt ich erhalte halt nicht die benutzernamen welche mit einem Pfeil markiert sind. Wie kann ich die erhalten, muß ich erst in der Registry durchstöbern? |
Re: Für svchost.exe(Dienst) den richtigen anmeldenamen erhal
Bitte sei so gut und füge das Bild als Anhang an. Dafür gibt es dieses Feature.
|
Re: Für svchost.exe(Dienst) den richtigen anmeldenamen erhal
Hat keiner ne idee?
Mir gehts einfach darum warum ich nicht die richtigen dienst-anmeldenamen erhalte. |
Re: Für svchost.exe(Dienst) den richtigen anmeldenamen erhal
Hallo zusammen,
ich stehe jetzt vor dem gleichen Problem. Hat jemand dafür eine Lösung ? |
DP-Maintenance
Dieses Thema wurde von "Matze" von "Programmieren allgemein" nach "Windows API / MS.NET Framework API" verschoben.
Das passt hier wohl besser hin. |
Re: Für svchost.exe(Dienst) den richtigen anmeldenamen erhal
Gibt es denn wirklich keine Möglichkeit den Prozessen svchost.exe und den anderen die Usernamen Lokaler Dienst oder Netzwerkdienst zuzuordnen ?
Edit: Ich weiß, das Lokaler Dienst und Netzwerkdienst keine Usernamen sind. |
Alle Zeitangaben in WEZ +1. Es ist jetzt 18:27 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