Français
Stammtisch & le café

GetTokenInformation.

 


Beschreibung:

GetTokenInformation liest aus dem Access Token eines eingelogten Users Informationen aus (u.a. sur cette User). cet Funktion gibt es seulement sous NT-basierten Windowssystemen.




Deklaration:

DEF @GetTokenInformation(5) !advapi32,GetTokenInformation




paramètre:

1.paramètre: Handle des Access Token. cela Handle doit TOKEN_QUERY ($8) Zugriffrechte avons. Soll qui source des Tokens ermittelt volonté, ist aussi TOKEN_QUERY_SOURCE Access nötig ($10).
2.paramètre: un TOKEN_INFORMATION_CLASS Flag, qui angibt quelle Informationen ausgelesen volonté devoir. =>
-$1 = Ermittelt den Usernamen (den SID des Users) aus dem Token (TokenUser)
-$2 = Ermittelt qui Gruppen (SID’s qui Gruppen), dans denen qui User Mitglied ist (TokenGroups).
-$3 = Ermittelt qui Privilegien (LUID’s) et en Attribute, sur qui qui User verfügt (TokenPrivileges).
-$4 = Ermittelt den User ou bien qui Gruppe (SID), qui beim Erstellen de Objekten comme propriétaire eingetragen wird (TokenOwner).
-$5 = Ermittelt qui Primäre Gruppe (SID) des Users (TokenPrimaryGroup).
-$6 = Ermittelt den DACL, qui beim Erzeugen de Objekten par den User comme Standard verwendet wird (TokenDefaultDacl).
-$7 = Ermittelt qui source eines Token (TokenSource).
-$8 = Ermittelt den Typ des Token (TokenType).
-$9 = Ermittelt den Security Impersonation Level eines Impersonation Token (TokenImpersonationLevel).).
-$10 = Ermittelt données sur qui ID des Token (TokenId), qui ID qui Session (AuthenticationId), den Typ des Token, den Impersonation Level eines Imoersonation Token (ImpersonationLevel), den verwendeten Speicherplatz (DynamicCharged), le nombre qui Gruppen im Token (GroupCount), le nombre qui Privilegien im Token (PrivilegeCount) et sur qui dernier Veränderung des Token (ModifiedId).
3.paramètre: une Bereichsvariable, qui qui angefragten données aufnimmt:
si paramètre 2 $1 ist, ist cette paramètre une 8 Byte grand TOKEN_USER Struktur.=>
-Bytes 0-3 = Adresse des SID des Users, den qui Token personifiziert.
-Bytes 4-7 = Flags pour qui Attribute des SID’s des Users, zur Zeit pas genutzt.
si paramètre 2 $2 ist, ist cette paramètre une TOKEN_GROUPS Struktur, qui aus einem Array aus SID_AND_ATTRIBUTES Strukturen et qui Nombre de Gruppen besteht:
-Byte 0-3 = Nombre de Gruppen dans dem Array.
-Byte 4-7 = Adresse des SID’s qui 1.Gruppe.
-Byte 8-11 = Flags pour qui Attribute des SID’s qui 1. Gruppe:
$1 = Gruppe peux pas gelöscht volonté (SE_GROUP_MANDATORY).
$2 = Gruppe ist standardmäßig aktiviert (SE_GROUP_ENABLED_BY_DEFAULT).
$4 = Gruppe ist aktiv (SE_GROUP_ENABLED).
$8 = Gruppe peux un propriétaire de Objekten son (SE_GROUP_OWNER).
$C0000000 = Gruppe est un Logonname (SE_GROUP_LOGON_ID).
-Byte 12-15 = Adresse des SID’s qui 2.Gruppe.
-Byte 16-19 = Flags pour qui Attribute des SID’s qui 2. Gruppe
-....
si paramètre 2 $3 ist, ist cette paramètre une 4 Byte grand TOKEN_Owner Struktur.=>
-Byte 0-3 = Nombre de Privilegien dans dem Array.
-Byte 4-11 = LUID des 1.Privilegs.
-Byte 12-15 = Flags pour qui Attribute des 1.Privilegs:
$0 = Privileg ist deaktiviert.
$1 = Privileg ist standardmäßig aktiviert.
$2 = Privileg ist aktiviert.
$80000000 = Privileg wurde zum Zugriff benutzt.
-Byte 16-23 = LUID des 2.Privilegs.
-Byte 24-27 = Flags pour qui Attribute des 2.Privilegs:
-....
si paramètre 2 $4 ist, ist cette paramètre une 4 Byte grand TOKEN_OWNER Struktur.=>
-Byte 0-3 = Adresse des SID’s des Users ou bien qui Gruppe, qui beim Erstellen de Objekten comme propriétaire eingetragen wird.
si paramètre 2 $5 ist, ist cette paramètre une 4 Byte grand TOKEN_PRIMARY_GROUP Struktur.=>
-Byte 0-3 = Adresse des SID’s qui Primären Gruppe des Users.
si paramètre 2 $6 ist, ist cette paramètre une 4 Byte grand TOKEN_DEFAULT_DACL Struktur.=>
-Byte 0-3 = Adresse des DACL’s, qui beim Erzeugen de Objekten par den User comme Standard verwendet wird.
si paramètre 2 $7 ist, ist cette paramètre une 16 Byte grand TOKEN_SOURCE Struktur.=>
-Byte 0-7 = 8 Byte großer Charakterstring, qui qui source des Token angibt.
-Byte 8-15 = LUID qui source des Token.
si paramètre 2 $8 ist, ist cette paramètre une 4 Byte grand TOKEN_TYPE Struktur, en LongInt Wert qui Art des Token angibt.=>
-$1 = Primärer Token (TokenPrimary).
-$2 = Impersonation Token (TokenImpersonation)
si paramètre 2 $9 ist, ist cette paramètre une 4 Byte grand SECURITY_IMPERSONATION_LEVEL Struktur, en LongInt Wert den Impersonation Level des Token angibt, si cette un Impersonation Token ist. =>
-$1 = SecurityAnonymous
-$2 = SecurityIdentification
-$3 = SecurityImpersonation
-$4 = SecurityDelegation
si paramètre 2 $10 ist, ist cette paramètre une 52 Byte grand TOKEN_STATISTICS Struktur.=>
-Byte 0-7 = LUID, qui deie ID des Token repräsentiert.
-Byte 8-15 = LUID, qui qui Session repräsentiert.
-Byte 16-19 = Ablaufzeit des Token. Zur Zeit pas soutenu.
-Byte 20-23 = Flag pour qui Art des Token.
$1 = Primärer Token (TokenPrimary).
$2 = Impersonation Token (TokenImpersonation)
-Byte 24-27 = Impersonation Level des Token, si cette un Impersonation Token ist.
$1 = SecurityAnonymous
$2 = SecurityIdentification
$3 = SecurityImpersonation
$4 = SecurityDelegation
-Byte 28-31 = qui Nombre de Bytes, qui zum Sauver de Primärer Gruppe et DACL reserviert sommes.
-Byte 32-35 = qui Nombre de Bytes, qui im reservierten Speicherbereich de Primärer Gruppe et DACL encore libre sommes.
-Byte 36-39 = Nombre de Gruppen im Token comme LongInt.
-Byte 40-43 = Nombre de Privilegien im Token comme LongInt.
-Byte 44-51 = LUID qui sich chaque la fois ändert, si sich quelque chose im Token modifié.
4.paramètre: la taille dans Bytes des Bereichs aus paramètre 3.
5.paramètre: 4 Byte Bereichsvariable, qui le nombre qui pour paramètre 3 nécessaire Bytes aufnimmt. Ist cet numéro größer comme paramètre 4, volonté aucun données dans paramètre 3 übertragen et qui Funktion schlägt fehl.



Rückgabewert:

1 chez Erfolg, 0 chez faute.


Beispiele:

KompilierenMarqueSéparation
DEF @OpenProcessToken(3) !"advapi32","OpenProcessToken"
DEF @GetTokenInformation(5) !"advapi32","GetTokenInformation"
DEF @GetCurrentProcess(0) !"kernel32","GetCurrentProcess" Ermittel das Handle des aktiven Prozesses.
DEF @CloseHandle(1) !"kernel32","CloseHandle" Schließt ein Handle (Programm).
DEF @GetLastError(0) !"kernel32","GetLastError" Liefert letzten API Fehler.
DEF @LookupAccountSid(7) !"ADVAPI32","LookupAccountSidA"
DEF @IsValidSid(1) !"ADVAPI32","IsValidSid"
DEF @LookupPrivilegeName(4) !"advapi32","LookupPrivilegeNameA" Ermittelt aus dem Luid eines Privilegs dessen Namen.
DEF @CopyMemory(3) !"kernel32","RtlMoveMemory"
DEF @GetLengthSid(1) !"advapi32","GetLengthSid"
Declare Token#,Token&,PSID#,Erforderlich#,Zähler2&,SIDFlags&
Declare Erforderlich&,Fehler&,PSID&,System$,Zähler&,Attribute$
Declare ACCOUNT_NAME#,SIZE_ACCOUNT#,Domain#,SIZE_DOMAIN#,SID_NAME_USE#
Declare User$,PRIVLUID#,SID_STRUC#
Windowstyle 31
WindowTitle "Informationen im aktuellen Token"
Window 0,0-%MAXX,%MAXY-40
DIM Token#,4
ADDSTRING "Letzter API Fehler="+@STR$(Fehler&)
LET Fehler&=@OpenProcessToken(@GetCurrentProcess(),$8,Token#)
ADDSTRING "Fehlercode OpenProcessToken="+@STR$(Fehler&)
Let Fehler&=@GetLastError()
ADDSTRING "Letzter API Fehler="+@STR$(Fehler&)
Let Token&=@LONG(Token#,0)
Dispose Token#
ADDSTRING "Handle des Token="+@STR$(Token&)
DIM Erforderlich#,4
DIM PSID#,1
Clear PSID#
Clear Erforderlich#
Let Fehler&=@GetTokenInformation(Token&,1,PSID#,1,Erforderlich#)
ADDSTRING "Fehlercode GetTokenInformation="+@STR$(Fehler&)
Let Fehler&=@GetLastError()
ADDSTRING "Letzter API Fehler="+@STR$(Fehler&)
Addstring "Erforderliche Bufferlänge="+@STR$(@LONG(Erforderlich#,0))
Let Erforderlich&=@LONG(Erforderlich#,0)
Dispose PSID#
DIM PSID#,Erforderlich&
Clear PSID#
Clear Erforderlich#
Let Fehler&=@GetTokenInformation(Token&,1,PSID#,Erforderlich&,Erforderlich#)
ADDSTRING "Fehlercode GetTokenInformation="+@STR$(Fehler&)
Let Fehler&=@GetLastError()
ADDSTRING "Letzter API Fehler="+@STR$(Fehler&)
DIM ACCOUNT_NAME#,256
DIM SIZE_ACCOUNT#,4
DIM Domain#,256
DIM SIZE_DOMAIN#,4
DIM SID_NAME_USE#,4
Clear SID_NAME_USE#
Clear ACCOUNT_NAME#
Clear Domain#
Long SIZE_ACCOUNT#,0=255
LONG SIZE_DOMAIN#,0=255
LET System$=""
LET FEHLER&=@LookupAccountSid(@ADDR(System$),@LONG(PSID#,0),ACCOUNT_NAME#,SIZE_ACCOUNT#,Domain#,SIZE_DOMAIN#,SID_NAME_USE#)
ADDSTRING "Fehlercode LookupAccountSid="+@STR$(Fehler&)
Let Fehler&=@GetLastError()
ADDSTRING "Letzter API Fehler="+@STR$(Fehler&)
ADDSTRING "Eigentümer des Token="+@String$(ACCOUNT_NAME#,0)
Print "Eigentümer des Token="+@String$(ACCOUNT_NAME#,0)
LET USER$=@String$(ACCOUNT_NAME#,0)
Dispose PSID#
DIM PSID#,1
Clear PSID#
Clear Erforderlich#
Let Fehler&=@GetTokenInformation(Token&,1,PSID#,1,Erforderlich#)
ADDSTRING "Fehlercode GetTokenInformation="+@STR$(Fehler&)
Let Fehler&=@GetLastError()
ADDSTRING "Letzter API Fehler="+@STR$(Fehler&)
Addstring "Erforderliche Bufferlänge="+@STR$(@LONG(Erforderlich#,0))
Let Erforderlich&=@LONG(Erforderlich#,0)
Dispose PSID#
DIM PSID#,Erforderlich&
Clear PSID#
Clear Erforderlich#
Let Fehler&=@GetTokenInformation(Token&,1,PSID#,Erforderlich&,Erforderlich#)
ADDSTRING "Fehlercode GetTokenInformation="+@STR$(Fehler&)
Let Fehler&=@GetLastError()
ADDSTRING "Letzter API Fehler="+@STR$(Fehler&)
Clear SID_NAME_USE#
Clear ACCOUNT_NAME#
Clear Domain#
Long SIZE_ACCOUNT#,0=255
LONG SIZE_DOMAIN#,0=255
LET System$=""
LET FEHLER&=@LookupAccountSid(@ADDR(System$),@LONG(PSID#,0),ACCOUNT_NAME#,SIZE_ACCOUNT#,Domain#,SIZE_DOMAIN#,SID_NAME_USE#)
ADDSTRING "Fehlercode LookupAccountSid="+@STR$(Fehler&)
Let Fehler&=@GetLastError()
ADDSTRING "Letzter API Fehler="+@STR$(Fehler&)
ADDSTRING "Durch den Token personifizierter User="+@String$(ACCOUNT_NAME#,0)
Print "Durch den Token personifizierter User="+@String$(ACCOUNT_NAME#,0)
Dispose PSID#
DIM PSID#,1
Clear PSID#
Clear Erforderlich#
Let Fehler&=@GetTokenInformation(Token&,8,PSID#,1,Erforderlich#)
ADDSTRING "Fehlercode GetTokenInformation="+@STR$(Fehler&)
Let Fehler&=@GetLastError()
ADDSTRING "Letzter API Fehler="+@STR$(Fehler&)
Addstring "Erforderliche Bufferlänge="+@STR$(@LONG(Erforderlich#,0))
Let Erforderlich&=@LONG(Erforderlich#,0)
Dispose PSID#
DIM PSID#,Erforderlich&
Clear PSID#
Clear Erforderlich#
Let Fehler&=@GetTokenInformation(Token&,8,PSID#,Erforderlich&,Erforderlich#)
ADDSTRING "Fehlercode GetTokenInformation="+@STR$(Fehler&)
Let Fehler&=@GetLastError()
ADDSTRING "Letzter API Fehler="+@STR$(Fehler&)

IF @Long(PSID#,0)=$1

    ADDSTRING "Art des Token=Primärer Token"

elseif @Long(PSID#,0)=$2

    ADDSTRING "Art des Token=Impersonation Token"

endif

Dispose PSID#
DIM PSID#,1
Clear PSID#
Clear Erforderlich#
Let Fehler&=@GetTokenInformation(Token&,4,PSID#,1,Erforderlich#)
ADDSTRING "Fehlercode GetTokenInformation="+@STR$(Fehler&)
Let Fehler&=@GetLastError()
ADDSTRING "Letzter API Fehler="+@STR$(Fehler&)
Addstring "Erforderliche Bufferlänge="+@STR$(@LONG(Erforderlich#,0))
Let Erforderlich&=@LONG(Erforderlich#,0)
Dispose PSID#
DIM PSID#,Erforderlich&
Clear PSID#
Clear Erforderlich#
Let Fehler&=@GetTokenInformation(Token&,4,PSID#,Erforderlich&,Erforderlich#)
ADDSTRING "Fehlercode GetTokenInformation="+@STR$(Fehler&)
Let Fehler&=@GetLastError()
ADDSTRING "Letzter API Fehler="+@STR$(Fehler&)
Clear SID_NAME_USE#
Clear ACCOUNT_NAME#
Clear Domain#
Long SIZE_ACCOUNT#,0=255
LONG SIZE_DOMAIN#,0=255
LET System$=""
LET FEHLER&=@LookupAccountSid(@ADDR(System$),@LONG(PSID#,0),ACCOUNT_NAME#,SIZE_ACCOUNT#,Domain#,SIZE_DOMAIN#,SID_NAME_USE#)
ADDSTRING "Fehlercode LookupAccountSid="+@STR$(Fehler&)
Let Fehler&=@GetLastError()
ADDSTRING "Letzter API Fehler="+@STR$(Fehler&)
ADDSTRING "Beim Erstellen von Objekten als Besitzer eingetragen="+@String$(ACCOUNT_NAME#,0)
Print "Beim Erstellen von Objekten als Besitzer eingetragen="+@String$(ACCOUNT_NAME#,0)
Dispose PSID#
DIM PSID#,1
Clear PSID#
Clear Erforderlich#
Let Fehler&=@GetTokenInformation(Token&,3,PSID#,1,Erforderlich#)
ADDSTRING "Fehlercode GetTokenInformation="+@STR$(Fehler&)
Let Fehler&=@GetLastError()
ADDSTRING "Letzter API Fehler="+@STR$(Fehler&)
Addstring "Erforderliche Bufferlänge="+@STR$(@LONG(Erforderlich#,0))
Let Erforderlich&=@LONG(Erforderlich#,0)
Dispose PSID#
DIM PSID#,Erforderlich&
Clear PSID#
Clear Erforderlich#
Let Fehler&=@GetTokenInformation(Token&,3,PSID#,Erforderlich&,Erforderlich#)
ADDSTRING "Fehlercode GetTokenInformation="+@STR$(Fehler&)
Let Fehler&=@GetLastError()
ADDSTRING "Letzter API Fehler="+@STR$(Fehler&)
Clear SID_NAME_USE#
Clear ACCOUNT_NAME#
Clear Domain#
Long SIZE_ACCOUNT#,0=255
LONG SIZE_DOMAIN#,0=255
LET System$=""
LET FEHLER&=@LookupAccountSid(@ADDR(System$),PSID#,ACCOUNT_NAME#,SIZE_ACCOUNT#,Domain#,SIZE_DOMAIN#,SID_NAME_USE#)
ADDSTRING "Fehlercode LookupAccountSid="+@STR$(Fehler&)
Let Fehler&=@GetLastError()
ADDSTRING "Letzter API Fehler="+@STR$(Fehler&)
ADDSTRING "Anzahl der Privilegien für "+User$+"="+@STR$(@LONG(PSID#,0))
LET Zähler&=0
Long SIZE_ACCOUNT#,0=255
lET System$=""
DIM PRIVLUID#,8

While @LONG(PSID#,0)>Zähler&

    Long SIZE_ACCOUNT#,0=255
    Clear ACCOUNT_NAME#,PRIVLUID#
    LET PSID&=PSID#
    Let Attribute$="("
    @CopyMemory(PRIVLUID#,PSID&+Zähler&*12+4,8)
    LET Fehler&=@LookupPrivilegeName(@ADDR(System$),PRIVLUID#,ACCOUNT_NAME#,SIZE_ACCOUNT#)
    ADDSTRING "Fehlercode LookupPrivilegeName="+@STR$(Fehler&)
    Let Fehler&=@GetLastError()
    ADDSTRING "Letzter API Fehler="+@STR$(Fehler&)
    ADDSTRING "Flags der Attribute des "+@STR$(@INT(Zähler&+1))+".Privilegs=$"+@Hex$(@LONG(PSID#,Zähler&*12+12))

    IF @OR(@LONG(PSID#,Zähler&*12+12),$1)=@LONG(PSID#,Zähler&*12+12)

        LET Attribute$=Attribute$+"sofort aktiv,"

    endif

    IF @OR(@LONG(PSID#,Zähler&*12+12),$2)=@LONG(PSID#,Zähler&*12+12)

        LET Attribute$=Attribute$+"aktiv,"

    endif

    IF @OR(@LONG(PSID#,Zähler&*12+12),$80000000)=@LONG(PSID#,Zähler&*12+12)

        LET Attribute$=Attribute$+"zum Zugriff benutzt,"

    endif

    IF @LONG(PSID#,Zähler&*12+12)=$0

        LET Attribute$=Attribute$+"deaktiviert,"

    endif

    IF @LEN(Attribute$)>1

        LET ATTRIBUTE$=@LEFT$(Attribute$,@LEN(Attribute$)-1)+")"

    Else

        LET ATTRIBUTE$=Attribute$+")"

    endif

    ADDSTRING User$+"s "+@STR$(@INT(Zähler&+1))+".Privileg="+@String$(ACCOUNT_NAME#,0)+" "+Attribute$
    PRINT User$+"s "+@STR$(@INT(Zähler&+1))+".Privileg="+@String$(ACCOUNT_NAME#,0)+" "+Attribute$
    Let Zähler&=Zähler&+1

wend

Dispose PRIVLUID#
Clear PSID#
Clear Erforderlich#
Let Fehler&=@GetTokenInformation(Token&,2,PSID#,1,Erforderlich#)
ADDSTRING "Fehlercode GetTokenInformation="+@STR$(Fehler&)
Let Fehler&=@GetLastError()
ADDSTRING "Letzter API Fehler="+@STR$(Fehler&)
Addstring "Erforderliche Bufferlänge="+@STR$(@LONG(Erforderlich#,0))
Let Erforderlich&=@LONG(Erforderlich#,0)
Dispose PSID#
DIM PSID#,Erforderlich&
Clear PSID#
Clear Erforderlich#
Let Fehler&=@GetTokenInformation(Token&,2,PSID#,Erforderlich&,Erforderlich#)
ADDSTRING "Fehlercode GetTokenInformation="+@STR$(Fehler&)
Let Fehler&=@GetLastError()
ADDSTRING "Letzter API Fehler="+@STR$(Fehler&)
ADDSTRING "Anzahl der Gruppen im Token="+@STR$(@LONG(PSID#,0))
LET Zähler&=0
LET Zähler2&=1

While @LONG(PSID#,0)>Zähler&

    Clear SID_NAME_USE#
    Clear ACCOUNT_NAME#
    Clear Domain#
    Long SIZE_ACCOUNT#,0=255
    LONG SIZE_DOMAIN#,0=255
    LET System$=""
    ADDSTRING "Länge des SIDs der "+@STR$(Zähler&)+".Gruppe="+@STR$(@GetLengthSid(@LONG(PSID#,Zähler&*8+4)))
    DIM SID_STRUC#,@GetLengthSid(@LONG(PSID#,Zähler&*8+4))
    @CopyMemory(SID_STRUC#,@LONG(PSID#,Zähler&*8+4),@GetLengthSid(@LONG(PSID#,Zähler&*8+4)))
    LET FEHLER&=@IsValidSid(SID_STRUC#)
    ADDSTRING "Fehlercode IsValidSid="+@STR$(Fehler&)
    LET FEHLER&=@LookupAccountSid(@ADDR(System$),SID_STRUC#,ACCOUNT_NAME#,SIZE_ACCOUNT#,Domain#,SIZE_DOMAIN#,SID_NAME_USE#)
    Dispose SID_STRUC#
    ADDSTRING "Fehlercode LookupAccountSid="+@STR$(Fehler&)
    Let Fehler&=@GetLastError()
    ADDSTRING "Letzter API Fehler="+@STR$(Fehler&)
    ADDSTRING @Str$(Zähler2&)+".Gruppe im Token="+@String$(ACCOUNT_NAME#,0)
    ADDSTRING "Flags der Attribute der "+@Str$(Zähler2&)+".Gruppe im Token=$"+@HEX$(@LONG(PSID#,Zähler&*8+8))
    LET Attribute$="("
    LET SIDFlags&=@LONG(PSID#,Zähler&*8+8)

    IF @OR(@LONG(PSID#,Zähler&*8+8),$1)=@LONG(PSID#,Zähler&*8+8)

        LET Attribute$=Attribute$+"nicht löschbar,"
        LET SIDFlags&=SIDFlags&-$1

    endif

    IF @OR(@LONG(PSID#,Zähler&*8+8),$2)=@LONG(PSID#,Zähler&*8+8)

        LET Attribute$=Attribute$+"standardmäßig aktiviert,"
        LET SIDFlags&=SIDFlags&-$2

    endif

    IF @OR(@LONG(PSID#,Zähler&*8+8),$4)=@LONG(PSID#,Zähler&*8+8)

        LET Attribute$=Attribute$+"aktiviert,"
        LET SIDFlags&=SIDFlags&-$4

    endif

    IF @OR(@LONG(PSID#,Zähler&*8+8),$8)=@LONG(PSID#,Zähler&*8+8)

        LET Attribute$=Attribute$+"kann Eigentümer sein,"
        LET SIDFlags&=SIDFlags&-$8

    endif

    IF @OR(@LONG(PSID#,Zähler&*8+8),$C0000000)=@LONG(PSID#,Zähler&*8+8)

        LET Attribute$=Attribute$+"Logon ID,"
        LET SIDFlags&=SIDFlags&-$C0000000

    endif

    IF SIDFlags&>0

        ADDSTRING "Nicht berechnete Attribute=$"+@HEX$(SIDFlags&)

    endif

    IF @LEN(Attribute$)>1

        LET ATTRIBUTE$=@LEFT$(Attribute$,@LEN(Attribute$)-1)+")"

    Else

        LET ATTRIBUTE$=Attribute$+")"

    endif

    Addstring "Attribute der "+@Str$(Zähler2&)+".Gruppe im Token="+Attribute$
    Print @Str$(Zähler2&)+".Gruppe im Token="+@String$(ACCOUNT_NAME#,0)+" "+Attribute$
    Let Zähler2&=Zähler2&+1
    Let Fehler&=@GetLastError()
    ADDSTRING "Letzter API Fehler="+@STR$(Fehler&)
    Let Zähler&=Zähler&+1

Wend

Dispose ACCOUNT_NAME#
Dispose SIZE_ACCOUNT#
Dispose Domain#
Dispose SIZE_DOMAIN#
Dispose SID_NAME_USE#
Dispose PSID#
Dispose Erforderlich#
LET FEHLER&=@CloseHandle(Token&)
ADDSTRING "Fehlercode Clo
le="+@STR$(Fehler&) @EDITBOX("Rückgaben",1)

[keywords:787e66d1bf]
Security Token Access User données Informationen Benutzer Gruppen Primäre Gruppe propriétaire Owner Privileg Privilegien Art Informationen Gruppe Login eingelogt eingelogter
[/keywords:787e66d1bf]
 
14.05.2005  
 



répondre


Topictitle, max. 100 marque.
 

Systemprofile:

ne...aucune Systemprofil angelegt. [anlegen]

XProfan:

 Posting  Font  Smilies  ▼ 

s'il te plaît s'inscrire um une Beitrag trop verfassen.
 

Options du sujet

1.076 Views

Untitledvor 0 min.

Themeninformationen

cet Thema hat 1 participant:

unbekannt (1x)


Admins  |  AGB  |  Applications  |  Auteurs  |  Chat  |  protection des données  |  Télécharger  |  Entrance  |  Aider  |  Merchantportal  |  Empreinte  |  Mart  |  Interfaces  |  SDK  |  Services  |  Jeux  |  cherche  |  Support

un projet aller XProfaner, qui il y a!


Mon XProfan
Privé Nouvelles
Eigenes Ablageforum
Sujets-La liste de voeux
Eigene Posts
Eigene Sujets
Zwischenablage
Annuler
 Deutsch English Français Español Italia
Traductions

protection des données


Wir verwenden Cookies seulement comme Session-Cookies à cause de qui technischen Notwendigkeit et chez uns gibt es aucun Cookies de Drittanbietern.

si du ici sur unsere Webseite klickst ou bien navigierst, stimmst du unserer Erfassung de Informationen dans unseren Cookies sur XProfan.Net trop.

Weitere Informationen trop unseren Cookies et en supplément, comment du qui Kontrolle par-dessus behältst, findest du dans unserer nachfolgenden Datenschutzerklärung.


d'accordDatenschutzerklärung
je voudrais keinen Cookie