Français
Source/ Codesnippets

Listen Privilegien Procédure Prozedursammlung

 
allô Michael...

qui peux du aussi encore avec einbauen:
Globale_Defs.INC
KompilierenMarqueSéparation
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)

Procédure avec DEMO
KompilierenMarqueSéparation
************** Start qui Procédure zum Listen qui Privilegien de Usern et Gruppen ********************

PROC Rechte_Listen

    Clearlist
    Paramètres ACCOUNT$
    Déclarer Fehler&,Policy_Handle&,Gesammtlänge&
    Déclarer SID_TYPE_INDICATOR&,COUNT&,DOMAINNAME_SIZE&
    Déclarer SYSTEM$,DOMAIN$,SID_Size&,GETERROR_Buffer$
    Déclarer PrivPointer&,Zähler%,Longueur%,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
    Claire 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&=@Externe("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&=@Externe("advapi32.dll","LookupAccountNameA",@ADDR(System$),@addr(ACCOUNT$),SID#,@ADDR(SID_Size&),DOMAIN#,@ADDR(DOMAINNAME_SIZE&),@ADDR(SID_TYPE_INDICATOR&))

    IF Fehler&<>1

        LET FEHLER&=@Externe("KERNEL32.DLL","GetLastError")
        DIM GETERROR_Buffer#,32000
        @Externe("KERNEL32","FormatMessageA",$1000,0,Fehler&,0,GETERROR_Buffer#,32000,0)
        Laisser GETERROR_Buffer$=@STRING$(GETERROR_Buffer#,0)
        Dispose GETERROR_Buffer#
        @messagebox(GETERROR_Buffer$,"Ein faute ist aufgetreten!",16)

    endif

    Si Fehler&=1

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

        IF Fehler&<>0

            LET FEHLER&=@Externe("KERNEL32.DLL","GetLastError")
            DIM GETERROR_Buffer#,32000
            @Externe("KERNEL32","FormatMessageA",$1000,0,Fehler&,0,GETERROR_Buffer#,32000,0)
            Laisser GETERROR_Buffer$=@STRING$(GETERROR_Buffer#,0)
            Dispose GETERROR_Buffer#
            @messagebox(GETERROR_Buffer$,"Ein faute ist aufgetreten!",16)

        endif

        IF Fehler&=0

            Claire PrivPointer&,ALLPRIVS#
            LET Fehler&=@Externe("advapi32.dll","LsaEnumerateAccountRights",Policy_Handle&,SID#,@ADDR(PrivPointer&),@ADDR(Count&))
            Laisser Fehler&=@Externe("advapi32.DLL","LsaNtStatusToWinError",Fehler&)

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

                LET FEHLER&=@Externe("KERNEL32.DLL","GetLastError")
                DIM GETERROR_Buffer#,32000
                @Externe("KERNEL32","FormatMessageA",$1000,0,Fehler&,0,GETERROR_Buffer#,32000,0)
                Laisser GETERROR_Buffer$=@STRING$(GETERROR_Buffer#,0)
                Dispose GETERROR_Buffer#
                @messagebox(GETERROR_Buffer$,"Ein faute ist aufgetreten!",16)

            endif

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

            WHILENOT Zähler%=COUNT&

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

            Wend

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

            IF Fehler&<>0

                LET FEHLER&=@Externe("KERNEL32.DLL","GetLastError")
                DIM GETERROR_Buffer#,32000
                @Externe("KERNEL32","FormatMessageA",$1000,0,Fehler&,0,GETERROR_Buffer#,32000,0)
                Laisser GETERROR_Buffer$=@STRING$(GETERROR_Buffer#,0)
                Dispose GETERROR_Buffer#
                @messagebox(GETERROR_Buffer$,"Ein faute ist aufgetreten!",16)

            endif

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

        Endif

    endif

    Dispose ALLPRIVS#
    Dispose DOMAIN#
    Dispose SID#
    Dispose PRIVILEG#
    Dispose PrivilegSET#
    Dispose ComparePriv#

endproc

************** Ende qui Procédure zum Listen qui Privilegien de Usern et Gruppen ********************
Windowstyle 31
Windowtitle "Privilegien et Accountrechte listen"
Fenêtre 0,0-640,440
 $I GLOBALE_DEFS.INC
Rechte_Listen @input$("Gruppen- ou bien Usernamen eingeben (ne...aucune Alias):","Account","Administratoren")

Tandis que 0=0

    Waitinput

Wend


Privilegien enden sur -Privilege et Accountrechte sur -Right.
 
18.08.2005  
 




KompilierenMarqueSéparation
************** 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


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

2.820 Views

Untitledvor 0 min.

Themeninformationen

cet Thema hat 1 participant:

unbekannt (2x)


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