|  | 
|   | 
 | 
  | Ich denke mal im Endeffekt sollten nur User und globale Gruppen zur Bearbeitung freigegeben und angezeigt werden... KompilierenMarkierenSeparieren************** Members_Lokaler_Gruppen_auslesen.INC **************
******* Start der Prozedur zum Auslesen der Mitglieder lokaler Gruppen *******
Proc Lese_Mitglieder_lokaler_Gruppe
    Parameters Gruppenname$
    Declare Fehler&,Buffer_Adresse&,Einträge&,Gesammteinträge&,Zähler&,GU_NAME$,GU_ART$
    Declare Geterror_buffer$
    Clearlist
    DIM ACCOUNT_NAME#,256
    DIM Gu_buffer_a#,261
    DIM Gu_buffer#,16
    LET Fehler&=@EXTERNAL("KERNEL32.DLL","MultiByteToWideChar",0,0,@ADDR(Gruppenname$),-1,ACCOUNT_NAME#,255)
    LET FEHLER&=@External("Netapi32.DLL","NetLocalGroupGetMembers",0,ACCOUNT_NAME#,1,@ADDR(Buffer_Adresse&),-1,@ADDR(Einträge&),@ADDR(Gesammteinträge&),0)
    If fehler&<>0
        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)
    else
        While Zähler&<Einträge&
            CLEAR Gu_buffer#,Gu_buffer_a#
            @External("KERNEL32.DLL","RtlMoveMemory",Gu_buffer#,Buffer_Adresse&+(12*Zähler&),12)
            @External("KERNEL32.DLL","WideCharToMultiByte",0,0,@Long(Gu_buffer#,8),-1,Gu_buffer_a#,261,0,0)
            LET GU_NAME$=@String$(Gu_buffer_a#,0)
            IF @Long(Gu_buffer#,4)=1
                LET GU_ART$="User"
            Elseif @Long(Gu_buffer#,4)=2
                LET GU_ART$="Globale Gruppe"
            Elseif @Long(Gu_buffer#,4)=3
                LET GU_ART$="Well-Known Gruppe"
            Elseif @Long(Gu_buffer#,4)=4
                LET GU_ART$="Gelöschter Account"
            Elseif @Long(Gu_buffer#,4)=5
                LET GU_ART$="Unspezifiziert"
            endif
            ADDSTRING GU_NAME$+","+GU_Art$
            LET Zähler&=Zähler&+1
        wend
    endif
    LET FEHLER&=@External("Netapi32.DLL","NetApiBufferFree",Buffer_Adresse&)
    DISPOSE ACCOUNT_NAME#
    DISPOSE Gu_buffer#
    DISPOSE Gu_buffer_a#
Endproc
******* Ende der Prozedur zum Auslesen der Mitglieder lokaler Gruppen *******
 |  
  | 
|   | 
 |  | 
|   | 
 
 
  |