Español
Stammtisch & Café

LsaEnumerateAccountRights

 


Descripción:

LsaEnumerateAccountRights Listet el a una Account hinzugefügten Privilegien. Lo voluntad no Privilegien gelistet, el por una Gruppenzugehörigkeit bestehen. Diese Función hay sólo bajo NT-basierten Windowssystemen.




Deklaration:

DEF @LsaEnumerateAccountRights(4) !advapi32,LsaEnumerateAccountRights




Parámetro:

1.Parámetro: Con el LSAOpenPolicy erhaltene Handle des Policy Objektes como Longint. Das Handle muß con POLICY_LOOKUP_NAMES geöffnet voluntad.
2.Parámetro: Bereichsvariable con el SID des Accounts, dessen Privilegien gelistet voluntad debería.
3.Parámetro: 4 Byte Bereichsvariable, el el Adresse des Speicherbereichs aufnimmt, en el el Privilegien como LSA_UNICODE_STRING-Array en folgender Form gespeichert voluntad: =>
·Byte 0-1 = El Lange des Cuerdas des ersten Privilegs en Bytes.
·Byte 2-3 = El Longitud des Bereichs en Bytes, en el Byte 4-7 verweist.
·Byte 4-7 = Adresse uno Cuerdas en el Unicode Formato con el Namen des ersten gefundenen Privilegs.
·Byte 8-9 = El Lange des Cuerdas des zweiten Privilegs en Bytes.
·Byte 10-11 = El Longitud des Bereichs en Bytes, en el Byte 12-15 verweist.
·Byte 12-15 = Adresse uno Cuerdas en el Unicode Formato con el Namen des zweiten gefundenen Privilegs.
·usw...
Wenn el Speicherbereich no mehr benötigt se, muß él con el Función LsaFreeMemory otra vez freigegeben voluntad.
4.Parámetro: 4 Byte Bereichsvariable, el el número el en Parámetro 3 enthaltenen Privilegien empfängt.



Rückgabewert:

0 en Erfolg, ansonsten una NT-Status Fehlercode (LongInt), el con LsaNtStatusToWinError en una Systemfehlercode umgewandelt voluntad kann.


Beispiele:

KompilierenMarcaSeparación
DEF @LsaOpenPolicy(4) !"advapi32","LsaOpenPolicy"
DEF @LsaClose(1) !"advapi32","LsaClose"
DEF @LsaNtStatusToWinError(1) !"advapi32","LsaNtStatusToWinError"
DEF @LsaEnumerateAccountRights(4) !"advapi32","LsaEnumerateAccountRights"
DEF @MultiByteToWideChar(6) !"kernel32","MultiByteToWideChar"
DEF @LookupAccountName(7) !"advapi32","LookupAccountNameA"
DEF @GetACP(0) !"kernel32","GetACP"
DEF @CopyMemory(3) !"kernel32","RtlMoveMemory"
DEF @WideCharToMultiByte(8) !"kernel32","WideCharToMultiByte"
DEF @LsaFreeMemory(1) !"advapi32","LsaFreeMemory"
Declare Fehler&,UNICODE#,Attribut#,POLICY_Handle#
Declare Policy_Handle&,PrivilegSET#,PRIVILEG#
Declare SID#,DOMAIN#,SID_TYPE_INDICATOR#,DOMAIN#,Attribut#,ALLPRIVS#,COUNT#,SID#,DOMAINNAME_SIZE_ADDR#
Declare SYSTEM$,DOMAIN$,SID_Size#,Account$
Declare PrivPointer#,ComparePriv#,Zähler%,Länge%,Zeiger&
Struct LSA_UNICODE_STRING=Length%,MaximumLength%,Buffer&
DIM UNICODE#,LSA_UNICODE_STRING
Clear UNICODE#
Struct LSA_OBJECT_ATTRIBUTES=Length&,RootDirectory&,Length%,MaximumLength%,Buffer&,Attributes&,SecurityDescriptor#(4),SecurityQualityOfService#(4)
DIM Attribut#,LSA_OBJECT_ATTRIBUTES
Clear Attribut#
Dim PrivPointer#,4
DIM ALLPRIVS#,2000
DIM COUNT#,4
DIM DOMAIN#,256
DIM SID#,800
DIM SID_Size#,4
DIM DOMAINNAME_SIZE_ADDR#,4
DIM SID_TYPE_INDICATOR#,256
DIM POLICY_Handle#,4
DIM PRIVILEG#,100
DIM PrivilegSET#,100
DIM ComparePriv#,100
Windowstyle 31
Windowtitle "Einem Account das Privileg zum Ändern der Systemzeit hinzufügen."
Window 0,0-640,440
CLEAR SID#,DOMAIN#,SID_TYPE_INDICATOR#,DOMAIN#,Attribut#,ALLPRIVS#,COUNT#,SID#,DOMAINNAME_SIZE_ADDR#
Long SID_Size#,0=800
LONG DOMAINNAME_SIZE_ADDR#,0=255
LET SYSTEM$=""
LET ACCOUNT$=@input$("Accountnamen eingeben (kein Alias):","Account","Gast")
LET Fehler&=@LookupAccountName(@ADDR(System$),@addr(ACCOUNT$),SID#,SID_Size#,DOMAIN#,DOMAINNAME_SIZE_ADDR#,SID_TYPE_INDICATOR#)
Print "Rückmeldung von LookupAccountName="+@STR$(Fehler&)

If Fehler&=1

    LET Fehler&=@LsaOpenPolicy(0,Attribut#,$10 | $0800,POLICY_Handle#)
    Print "Rückmeldung von LsaOpenPolicy="+@STR$(Fehler&)
    Let Fehler&=@LsaNtStatusToWinError(Fehler&)
    PRINT "LsaOpenPolicy Rückmeldung umgewandelt in Windows Fehlercode="+@STR$(Fehler&)
    LET Policy_Handle&=@LONG(POLICY_Handle#,0)
    Print "Geliefertes Handle="+@STR$(Policy_Handle&)

    IF Fehler&=0

        Clear PrivPointer#
        Clear ALLPRIVS#
        LET Fehler&=@LsaEnumerateAccountRights(Policy_Handle&,SID#,PrivPointer#,Count#)
        Print "Rückmeldung von LsaEnumerateAccountRights="+@STR$(Fehler&)
        Let Fehler&=@LsaNtStatusToWinError(Fehler&)
        PRINT "LsaEnumerateAccountRights Rückmeldung umgewandelt in Windows Fehlercode="+@STR$(Fehler&)
        PRINT "Anzahl der Privilegien: "+@str$(@long(COUNT#,0))
        Case FEHLER&=0 : @CopyMemory(ALLPRIVS#,@LONG(PrivPointer#,0),1998)

        WHILENOT Zähler%=@long(COUNT#,0)

            Clear PrivilegSet#
            Clear ComparePriv#
            Let Länge%=@Word(ALLPRIVS#,8*Zähler%)
            LET Zeiger&=@Long(ALLPRIVS#,8*Zähler%+4)
            @CopyMemory(ComparePriv#,Zeiger&,Länge%)
            Let Fehler&=@WideCharToMultiByte(@GetACP(),0,ComparePriv#,@INT(LÄnge%/2),PrivilegSet#,100,0,0)
            Print "Rückmeldung von WideCharToMultiByte="+@STR$(Fehler&)
            Addstring @String$(PrivilegSet#,0)
            inc Zähler%

        Wend

        LET FEHLER&=@LsaFreeMemory(@LONG(PrivPointer#,0))
        LET Fehler&=@LsaClose(Policy_Handle&,0)
        Print "Rückmeldung von LsaClose="+@STR$(Fehler&)
        Let Fehler&=@LsaNtStatusToWinError(Fehler&)
        PRINT "LsaClose Rückmeldung umgewandelt in Windows Fehlercode="+@STR$(Fehler&)
        @LISTBOX$("Gefundene Privilegien...",1)

    Endif

endif

Dispose PrivPointer#
Dispose POLICY_Handle#
Dispose ALLPRIVS#
Dispose COUNT#
Dispose DOMAIN#
Dispose SID#
Dispose SID_Size#
Dispose DOMAINNAME_SIZE_ADDR#
Dispose SID_TYPE_INDICATOR#
Dispose POLICY_Handle#
Dispose PRIVILEG#
Dispose PrivilegSET#
Dispose ComparePriv#

While 0=0

    Waitinput

Wend

 
08.04.2005  
 



Respuesta


Título del Tema, max. 100 Signo.
 

Systemprofile:

Kein Systemprofil creado. [anlegen]

XProfan:

 Contribución  Font  Smilies  ▼ 

Bitte registro en una Contribución a verfassen.
 

Tema opciones

2.453 Views

Untitledvor 0 min.

Themeninformationen

Dieses Thema ha 1 subscriber:

unbekannt (1x)


Admins  |  AGB  |  Applications  |  Autores  |  Chat  |  Política de Privacidad  |  Descargar  |  Entrance  |  Ayuda  |  Merchantportal  |  Pie de imprenta  |  Mart  |  Interfaces  |  SDK  |  Services  |  Juegos  |  Búsqueda  |  Support

Ein Projekt aller XProfan, el lo son!


Mi XProfan
Privado Noticias
Eigenes Ablageforum
Temas-Merkliste
Eigene Beiträge
Eigene Temas
Zwischenablage
Cancelar
 Deutsch English Français Español Italia
Traducciones

Política de Privacidad


Wir uso Cookies sólo como Session-Cookies wegen el technischen Notwendigkeit y en uns hay no Cookies de Drittanbietern.

Wenn du hier en unsere Webseite klickst oder navigierst, stimmst du unserer Erfassung de Informationen en unseren Cookies en XProfan.Net a.

Weitere Informationen a unseren Cookies y dazu, como du el Kontrolle darüber behältst, findest du en unserer nachfolgenden Datenschutzerklärung.


einverstandenDatenschutzerklärung
Yo möchte no Cookie