Español
Fuente/ Codesnippets

Listen Privilegien Procedimiento Prozedursammlung

 
¡Hola Michael...

El kannst du auch todavía con einbauen:
Globale_Defs.INC
KompilierenMarcaSeparación
Declare GU_BUFFER_P#,GU_BUFFER_A#,GU_BUFFER#,Entry_COUNT#
Declare GETERROR_Buffer#
Declare UNICODE#,Attribut#,PrivilegSET#,PRIVILEG#
Declare SID#,DOMAIN#,ALLPRIVS#,ComparePriv#
Struct LSA_UNICODE_STRING=Length%,MaximumLength%,Buffer&
Struct LSA_OBJECT_ATTRIBUTES=Length&,RootDirectory&,Length%,MaximumLength%,Buffer&,Attributes&,SecurityDescriptor#(4),SecurityQualityOfService#(4)

Procedimiento con DEMO
KompilierenMarcaSeparación
************** Start el Procedimiento para Listen el Privilegien de Usern y Gruppen ********************

PROC Rechte_Listen

    Clearlist
    Parámetros ACCOUNT$
    Declarar Fehler&,Policy_Handle&,Gesammtlänge&
    Declarar SID_TYPE_INDICATOR&,COUNT&,DOMAINNAME_SIZE&
    Declarar SYSTEM$,DOMAIN$,SID_Size&,GETERROR_Buffer$
    Declarar PrivPointer&,Zähler%,Longitud%,Zeiger&
    DIM UNICODE#,LSA_UNICODE_STRING
    DIM Attribut#,LSA_OBJECT_ATTRIBUTES
    DIM ALLPRIVS#,2000
    DIM DOMAIN#,256
    DIM SID#,1
    DIM PRIVILEG#,100
    DIM PrivilegSET#,100
    DIM ComparePriv#,100
    Claro Attribut#,UNICODE#
    CLEAR SID#,DOMAIN#,SID_TYPE_INDICATOR&,Attribut#,ALLPRIVS#,OUNT&,DOMAINNAME_SIZE&
    LET SID_Size&=1
    LET DOMAINNAME_SIZE&=255
    LET SYSTEM$=""
    LET Fehler&=@Externo("advapi32.dll","LookupAccountNameA",@ADDR(Sistema$),@addr(ACCOUNT$),SID#,@ADDR(SID_Size&),DOMAIN#,@ADDR(DOMAINNAME_SIZE&),@ADDR(SID_TYPE_INDICATOR&))
    Disponer SID#
    DIM SID#,SID_Size&
    CLEAR SID#,DOMAIN#,SID_TYPE_INDICATOR&,SYSTEM$
    LET DOMAINNAME_SIZE&=255
    LET Fehler&=@Externo("advapi32.dll","LookupAccountNameA",@ADDR(Sistema$),@addr(ACCOUNT$),SID#,@ADDR(SID_Size&),DOMAIN#,@ADDR(DOMAINNAME_SIZE&),@ADDR(SID_TYPE_INDICATOR&))

    IF Fehler&<>1

        LET FEHLER&=@Externo("KERNEL32.DLL","GetLastError")
        DIM GETERROR_Buffer#,32000
        @Externo("KERNEL32","FormatMessageA",$1000,0,Fehler&,0,GETERROR_Buffer#,32000,0)
        Let GETERROR_Buffer$=@STRING$(GETERROR_Buffer#,0)
        Disponer GETERROR_Buffer#
        @messagebox(GETERROR_Buffer$,"Ein Fehler es aufgetreten!",16)

    endif

    If Fehler&=1

        LET Fehler&=@Externo("advapi32.DLL","LsaOpenPolicy",0,Attribut#,$10 | $0800,@ADDR(POLICY_Handle&))
        Let Fehler&=@Externo("advapi32.DLL","LsaNtStatusToWinError",Fehler&)

        IF Fehler&<>0

            LET FEHLER&=@Externo("KERNEL32.DLL","GetLastError")
            DIM GETERROR_Buffer#,32000
            @Externo("KERNEL32","FormatMessageA",$1000,0,Fehler&,0,GETERROR_Buffer#,32000,0)
            Let GETERROR_Buffer$=@STRING$(GETERROR_Buffer#,0)
            Disponer GETERROR_Buffer#
            @messagebox(GETERROR_Buffer$,"Ein Fehler es aufgetreten!",16)

        endif

        IF Fehler&=0

            Claro PrivPointer&,ALLPRIVS#
            LET Fehler&=@Externo("advapi32.dll","LsaEnumerateAccountRights",Policy_Handle&,SID#,@ADDR(PrivPointer&),@ADDR(Count&))
            Let Fehler&=@Externo("advapi32.DLL","LsaNtStatusToWinError",Fehler&)

            IF @and(Fehler&<>0,Fehler&<>2)

                LET FEHLER&=@Externo("KERNEL32.DLL","GetLastError")
                DIM GETERROR_Buffer#,32000
                @Externo("KERNEL32","FormatMessageA",$1000,0,Fehler&,0,GETERROR_Buffer#,32000,0)
                Let GETERROR_Buffer$=@STRING$(GETERROR_Buffer#,0)
                Disponer GETERROR_Buffer#
                @messagebox(GETERROR_Buffer$,"Ein Fehler es aufgetreten!",16)

            endif

            LET Gesammtlänge&=@Externo("kernel32.dll","LocalSize",PrivPointer&)
            Case FEHLER&=0 : @Externo("kernel32.dll","RtlMoveMemory",ALLPRIVS#,PrivPointer&,Gesammtlänge&)

            WHILENOT Zähler%=COUNT&

                Claro PrivilegSet#
                Claro ComparePriv#
                Let Longitud%=@Word(ALLPRIVS#,8*Zähler%)
                LET Zeiger&=@Largo(ALLPRIVS#,8*Zähler%+4)
                @Externo("kernel32.dll","RtlMoveMemory",ComparePriv#,Zeiger&,Longitud%)
                Let Fehler&=@Externo("kernel32.dll","WideCharToMultiByte",0,0,ComparePriv#,@INT(LÄnge%/2),PrivilegSet#,100,0,0)
                Addstring @String$(PrivilegSet#,0)
                inc Zähler%

            Wend

            LET FEHLER&=@Externo("advapi32.dll","LsaFreeMemory",PrivPointer&)
            LET Fehler&=@Externo("advapi32.DLL","LsaClose",Policy_Handle&)
            Let Fehler&=@Externo("advapi32.DLL","LsaNtStatusToWinError",Fehler&)

            IF Fehler&<>0

                LET FEHLER&=@Externo("KERNEL32.DLL","GetLastError")
                DIM GETERROR_Buffer#,32000
                @Externo("KERNEL32","FormatMessageA",$1000,0,Fehler&,0,GETERROR_Buffer#,32000,0)
                Let GETERROR_Buffer$=@STRING$(GETERROR_Buffer#,0)
                Disponer GETERROR_Buffer#
                @messagebox(GETERROR_Buffer$,"Ein Fehler es aufgetreten!",16)

            endif

            @EDITBOX("Gefundene Privilegien...",1)

        Endif

    endif

    Disponer ALLPRIVS#
    Disponer DOMAIN#
    Disponer SID#
    Disponer PRIVILEG#
    Disponer PrivilegSET#
    Disponer ComparePriv#

ENDPROC

************** Ende el Procedimiento para Listen el Privilegien de Usern y Gruppen ********************
Windowstyle 31
Windowtitle "Privilegien y Accountrechte listen"
Ventana 0,0-640,440
 $I GLOBALE_DEFS.INC
Rechte_Listen @input$("Gruppen- oder Usernamen eingeben (kein Alias):","Account","Administratoren")

Mientras que 0=0

    Waitinput

Wend


Privilegien enden en -Privilege y Accountrechte en -Right.
 
18.08.2005  
 




KompilierenMarcaSeparación
************** Privilegien_listen.INC **************
************** Start der Prozedur zum Listen der Privilegien von Usern und Gruppen ********************

Proc Rechte_listen

    Clearlist
    Parameters Account$
    Declare Fehler&,Policy_handle&,Gesammtlänge&
    Declare Sid_type_indicator&,Count&,Domainname_size&
    Declare System$,Domain$,Sid_size&,Geterror_buffer$
    Declare Privpointer&,Zähler%,Länge%,Zeiger&
    Dim Unicode#,Lsa_unicode_string
    Dim Attribut#,Lsa_object_attributes
    Dim Allprivs#,2000
    Dim Domain#,256
    Dim Sid#,1
    Dim Privileg#,100
    Dim Privilegset#,100
    Dim Comparepriv#,100
    Clear Attribut#,Unicode#
    Clear Sid#,Domain#,Sid_type_indicator&,Attribut#,Allprivs#,Count&,Domainname_size&
    Let Sid_size&=1
    Let Domainname_size&=255
    Let System$=""
    Let Fehler&=@External("advapi32.dll","LookupAccountNameA",@Addr(System$),@Addr(Account$),Sid#,@Addr(Sid_size&),Domain#,@Addr(Domainname_size&),@Addr(Sid_type_indicator&))
    Dispose Sid#
    Dim Sid#,Sid_size&
    Clear Sid#,Domain#,Sid_type_indicator&,System$
    Let Domainname_size&=255
    Let Fehler&=@External("advapi32.dll","LookupAccountNameA",@Addr(System$),@Addr(Account$),Sid#,@Addr(Sid_size&),Domain#,@Addr(Domainname_size&),@Addr(Sid_type_indicator&))

    If Fehler&<>1

        Let Fehler&=@External("KERNEL32.DLL","GetLastError")
        Dim Geterror_buffer#,32000
        @External("KERNEL32","FormatMessageA",$1000,0,Fehler&,0,Geterror_buffer#,32000,0)
        Let Geterror_buffer$=@String$(Geterror_buffer#,0)
        Dispose Geterror_buffer#
        @Messagebox(Geterror_buffer$,"Ein Fehler ist aufgetreten!",16)

    Endif

    If Fehler&=1

        Let Fehler&=@External("advapi32.DLL","LsaOpenPolicy",0,Attribut#,$10 | $0800,@Addr(Policy_handle&))
        Let Fehler&=@External("advapi32.DLL","LsaNtStatusToWinError",Fehler&)

        If Fehler&<>0

            Let Fehler&=@External("KERNEL32.DLL","GetLastError")
            Dim Geterror_buffer#,32000
            @External("KERNEL32","FormatMessageA",$1000,0,Fehler&,0,Geterror_buffer#,32000,0)
            Let Geterror_buffer$=@String$(Geterror_buffer#,0)
            Dispose Geterror_buffer#
            @Messagebox(Geterror_buffer$,"Ein Fehler ist aufgetreten!",16)

        Endif

        If Fehler&=0

            Clear Privpointer&,Allprivs#
            Let Fehler&=@External("advapi32.dll","LsaEnumerateAccountRights",Policy_handle&,Sid#,@Addr(Privpointer&),@Addr(Count&))
            Let Fehler&=@External("advapi32.DLL","LsaNtStatusToWinError",Fehler&)

            If @And(Fehler&<>0,Fehler&<>2)

                Let Fehler&=@External("KERNEL32.DLL","GetLastError")
                Dim Geterror_buffer#,32000
                @External("KERNEL32","FormatMessageA",$1000,0,Fehler&,0,Geterror_buffer#,32000,0)
                Let Geterror_buffer$=@String$(Geterror_buffer#,0)
                Dispose Geterror_buffer#
                @Messagebox(Geterror_buffer$,"Ein Fehler ist aufgetreten!",16)

            Endif

            Let Gesammtlänge&=@External("kernel32.dll","LocalSize",Privpointer&)
            Case Fehler&=0 : @External("kernel32.dll","RtlMoveMemory",Allprivs#,Privpointer&,Gesammtlänge&)

            Whilenot Zähler%=Count&

                Clear Privilegset#
                Clear Comparepriv#
                Let Länge%=@Word(Allprivs#,8*Zähler%)
                Let Zeiger&=@Long(Allprivs#,8*Zähler%+4)
                @External("kernel32.dll","RtlMoveMemory",Comparepriv#,Zeiger&,Länge%)
                Let Fehler&=@External("kernel32.dll","WideCharToMultiByte",0,0,Comparepriv#,@Int(LÄnge%/2),Privilegset#,100,0,0)
                Addstring @String$(Privilegset#,0)
                Inc Zähler%

            Wend

            Let Fehler&=@External("advapi32.dll","LsaFreeMemory",Privpointer&)
            Let Fehler&=@External("advapi32.DLL","LsaClose",Policy_handle&)
            Let Fehler&=@External("advapi32.DLL","LsaNtStatusToWinError",Fehler&)

            If Fehler&<>0

                Let Fehler&=@External("KERNEL32.DLL","GetLastError")
                Dim Geterror_buffer#,32000
                @External("KERNEL32","FormatMessageA",$1000,0,Fehler&,0,Geterror_buffer#,32000,0)
                Let Geterror_buffer$=@String$(Geterror_buffer#,0)
                Dispose Geterror_buffer#
                @Messagebox(Geterror_buffer$,"Ein Fehler ist aufgetreten!",16)

            Endif

        Endif

    Endif

    Dispose Allprivs#
    Dispose Domain#
    Dispose Sid#
    Dispose Privileg#
    Dispose Privilegset#
    Dispose Comparepriv#
    Dispose Unicode#
    Dispose Attribut#

Endproc

************** Ende der Prozedur zum Listen der Privilegien von Usern und Gruppen ***************<
*****
 
21.08.2005  
 



Zum Quelltext


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.825 Views

Untitledvor 0 min.

Themeninformationen

Dieses Thema ha 1 subscriber:

unbekannt (2x)


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