Deutsch
Stammtisch & Café

LookupAccountName.

 


Beschreibung:

Die API LookupAccountName ermittelt aus dem Accountnamen und dem Namen des Systems den dazugehörigen SID (Security Identifier).
Diese API gibt es nur unter NT-basierten Windowssystemen.




Deklaration:

DEF @LookupAccountName(7) !advapi32,LookupAccountNameA




Parameter:

1.Parameter: Adresse des Strings, der den Systemnamen enthält oder 0 für den aktuellen Computer.
2.Parameter: Adresse des Strings, der den Accountnamen enthält.
3.Parameter: Eine ausreichend große Bereichsvariable, die den SID aufnimmt.
4.Parameter: Eine vier Byte große Bereichsvariable, in der die Größe des in Parameter 3 angegebenen Bereichs steht.
5.Parameter: Eine ausreichend große Bereichsvariable, die den Domainnamen aufnimmt, auf dem der Accountname gelistet ist.
6.Parameter: Eine vier Byte große Bereichsvariable, in der die Größe des in Parameter 5 angegebenen Bereichs steht.
7.Parameter: SID_NAME_USE Struktur oder 4 Byte große Bereichsvariable, die einen Flag für die Art des Accounts aufnimmt, wenn die Funktion zurückkehrt..=>
$1 = Username (SidTypeUser)
$2 = Gruppenname (SidTypeGroup)
$3 = Domain (SidTypeDomain)
$4 = SidTypeAlias
$5 = SidTypeWellKnownGroup
$6 = Gelöschter Account (SidTypeDeletedAccount)
$7 = SidTypeInvalid
$8 = SidTypeUnknown



Rückgabewert:

1 Bei Erfolg, 0 bei Fehler.


Beispiele:

DEF @LookupAccountName(7) !"advapi32","LookupAccountNameA"
DEF @LogonUser(6) !"advapi32","LogonUserA"
DEF @CreateProcessAsUser(11) !"advapi32","CreateProcessAsUserA"
DEF @SetLastError(1) !"kernel32","SetLastError"
DEF @GetLastError(0) !"kernel32","GetLastError" Liefert letzten API Fehler.
DEF @ZeroMemory(2) ! "Kernel32","RtlZeroMemory"
DEF @CloseHandle(1) !"kernel32","CloseHandle" Schließt ein Handle (Programm).
DEF @CreateProcessWithLogonW(11) !"advapi32","CreateProcessWithLogonW"
DEF @MultiByteToWideChar(6) !"kernel32","MultiByteToWideChar"
DEF @GetACP(0) !"kernel32","GetACP"
Declare Protokoll&,FEHLER&,DOMAIN$,SID_Size#,lpStartupInfo#,lpProcessInformation#
Declare lpCommandLine#,DOMAINNAME_SIZE_ADDR#
Declare SID#,DOMAIN#,SID_TYPE_INDICATOR#,DOMAIN#,Attribut#,ALLPRIVS#,COUNT#,SID#
DIM DOMAIN#,256
DIM SID#,800
DIM SID_Size#,4
DIM DOMAINNAME_SIZE_ADDR#,4
DIM SID_TYPE_INDICATOR#,256

Proc StartWithUserRights

    @ADDSTRING(Protokoll&,"Start der Prozedur zum Impersonifizieren anderer User")
    Parameters PUSERNAME$,PPASSWORT$,PPROGRAMM$
    Declare PUSERNAME#,PPASSWORT#,PPROGRAMM#,Domainw#
    CLEAR SID#,DOMAIN#,SID_TYPE_INDICATOR#,DOMAIN#,SID#,DOMAINNAME_SIZE_ADDR#
    Long SID_Size#,0=800
    LONG DOMAINNAME_SIZE_ADDR#,0=255
    LET Fehler&=@LookupAccountName(0,@addr(PUSERNAME$),SID#,SID_Size#,DOMAIN#,DOMAINNAME_SIZE_ADDR#,SID_TYPE_INDICATOR#)
    @ADDSTRING(Protokoll&,"Fehler LookupAccountName: "+@str$(Fehler&))
    LET DOMAIN$=@STRING$(DOMAIN#,0)
    @ADDSTRING(Protokoll&,"Domain: "+DOMAIN$)
    LET PPROGRAMM$=@ShortName$(PPROGRAMM$)
    DIM PPROGRAMM#,(@LEN(PPROGRAMM$)*2)+1
    DIM PUSERNAME#,(@LEN(PUSERNAME$)*2)+1
    DIM PPASSWORT#,(@LEN(PPASSWORT$)*2)+1
    DIM Domainw#,(@LEN(Domain$)*2)+1
    LET Fehler&=@MultiByteToWideChar(@GetACP(),2,@addr(PPROGRAMM$),-1,PPROGRAMM#,(@LEN(PPROGRAMM$)*2)+1)
    @ADDSTRING(Protokoll&,"Rückgabe von MultiByteToWideChar: "+@STR$(Fehler&))
    LET Fehler&=@MultiByteToWideChar(@GetACP(),2,@addr(Domain$),-1,Domainw#,(@LEN(Domain$)*2)+1)
    @ADDSTRING(Protokoll&,"Rückgabe von MultiByteToWideChar: "+@STR$(Fehler&))
    LET Fehler&=@MultiByteToWideChar(@GetACP(),2,@addr(PUSERNAME$),-1,PUSERNAME#,(@LEN(PUSERNAME$)*2)+1)
    @ADDSTRING(Protokoll&,"Rückgabe von MultiByteToWideChar: "+@STR$(Fehler&))
    LET Fehler&=@MultiByteToWideChar(@GetACP(),2,@addr(PPASSWORT$),-1,PPASSWORT#,(@LEN(PPASSWORT$)*2)+1)
    @ADDSTRING(Protokoll&,"Rückgabe von MultiByteToWideChar: "+@STR$(Fehler&))
    @SetLastError(0)
    @ADDSTRING(Protokoll&,"Letzter API Fehler: "+@str$(@GetLastError()))
    Dim lpStartupInfo#,68
    ZeroMemory(lpStartupinfo#,68)
    Long lpStartupInfo#,0=68
    Dim lpProcessInformation#,16
    Dim lpCommandLine#,@len(PPROGRAMM$)+1
    ZeroMemory(lpProcessInformation#,16)
    String lpCommandLine#,0=PPROGRAMM$
    @CreateProcessWithLogonW(PUSERNAME#,Domainw#,PPASSWORT#,0,0,PPROGRAMM#,0,0,0,lpStartupInfo#,lpProcessInformation#)
    @ADDSTRING(Protokoll&,"Letzter API Fehler: "+@str$(@GetLastError()))
    Dispose Domainw#
    Dispose PPROGRAMM#
    Dispose PUSERNAME#
    Dispose PPASSWORT#
    Dispose lpStartupInfo#
    Dispose lpProcessInformation#
    Dispose lpCommandLine#
    @ADDSTRING(Protokoll&,"Ende der Prozedur zum Impersonifizieren anderer User")

ENDPROC

CLS
LET Protokoll&=@createlistbox(%HWND,"",10,10,600,400)
StartWithUserRights @INPUT$("Bitte einen Usernamen eingeben: ","Login Name?",""),@INPUT$("Bitte das Passwort dazu eingeben: ","Passwort?",""),,@LoadFile$("EXE auswählen","*.EXE")
Dispose DOMAIN#
Dispose SID_Size#
Dispose DOMAINNAME_SIZE_ADDR#
Dispose SID_TYPE_INDICATOR#
Dispose SID#
Waitinput

[keywords:9dad938fef]
SID Security Identifier Nutzer Benutzer Domain ermitteln herausbekommen erfahren Gruppe Gruppen Groups Usernamen Accountnamen Account User String Text
[/keywords:9dad938fef]
 
04.03.2005  
 



Antworten


Thementitel, max. 100 Zeichen.
 

Systemprofile:

Kein Systemprofil angelegt. [anlegen]

XProfan:

 Beitrag  Schrift  Smilies  ▼ 

Bitte anmelden um einen Beitrag zu verfassen.
 

Themenoptionen

2.736 Betrachtungen

Unbenanntvor 0 min.

Themeninformationen

Dieses Thema hat 1 Teilnehmer:

unbekannt (1x)


Admins  |  AGB  |  Anwendungen  |  Autoren  |  Chat  |  Datenschutz  |  Download  |  Eingangshalle  |  Hilfe  |  Händlerportal  |  Impressum  |  Mart  |  Schnittstellen  |  SDK  |  Services  |  Spiele  |  Suche  |  Support

Ein Projekt aller XProfaner, die es gibt!


Mein XProfan
Private Nachrichten
Eigenes Ablageforum
Themen-Merkliste
Eigene Beiträge
Eigene Themen
Zwischenablage
Abmelden
 Deutsch English Français Español Italia
Übersetzungen

Datenschutz


Wir verwenden Cookies nur als Session-Cookies wegen der technischen Notwendigkeit und bei uns gibt es keine Cookies von Drittanbietern.

Wenn du hier auf unsere Webseite klickst oder navigierst, stimmst du unserer Erfassung von Informationen in unseren Cookies auf XProfan.Net zu.

Weitere Informationen zu unseren Cookies und dazu, wie du die Kontrolle darüber behältst, findest du in unserer nachfolgenden Datenschutzerklärung.


einverstandenDatenschutzerklärung
Ich möchte keinen Cookie