Italia
Fonte/ Codesnippets

Listen Privilegien Prozedur Prozedursammlung

 
Hallo Michael...

Die kannst du auch noch mit einbauen:
Globale_Defs.INC
KompilierenMarkierenSeparieren
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)

Prozedur mit DEMO
KompilierenMarkierenSeparieren
************** 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#,OUNT&,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

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

        Endif

    endif

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

endproc

************** Ende der Prozedur zum Listen der Privilegien von Usern und Gruppen ********************
Windowstyle 31
Windowtitle "Privilegien und Accountrechte listen"
Window 0,0-640,440
 $I GLOBALE_DEFS.INC
Rechte_Listen @input$("Gruppen- oder Usernamen eingeben (kein Alias):","Account","Administratoren")

While 0=0

    Waitinput

Wend


Privilegien enden auf -Privilege und Accountrechte auf -Right.
 
18.08.2005  
 




KompilierenMarkierenSeparieren
************** 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 characters.
 

Systemprofile:

Kein Systemprofil angelegt. [anlegen]

XProfan:

 Posting  Font  Smilies  ▼ 

Bitte anmelden um einen Beitrag zu verfassen.
 

Topic-Options

2.822 Views

Untitledvor 0 min.

Themeninformationen

Dieses Thema hat 1 subscriber:

unbekannt (2x)


Admins  |  AGB  |  Applications  |  Autori  |  Chat  |  Informativa sulla privacy  |  Download  |  Entrance  |  Aiuto  |  Merchantportal  |  Impronta  |  Mart  |  Interfaces  |  SDK  |  Services  |  Giochi  |  Cerca  |  Support

Ein Projekt aller XProfaner, die es gibt!


Il mio XProfan
Private Notizie
Eigenes Ablageforum
Argomenti-Merkliste
Eigene Beiträge
Eigene Argomenti
Zwischenablage
Annullare
 Deutsch English Français Español Italia
Traduzioni

Informativa sulla privacy


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