English
Forum

Filesecurity settle: View source

 
- Page 1 -


Hello Profaner...

once more what to that testing NT/2000/XP:
CompileMarkSeparation
DEF @LookupAccountSid(7) !"ADVAPI32","LookupAccountSidA"
DEF @GetLastError(0) !"KERNEL32","GetLastError"
DEF @IsValidSid(1) !"ADVAPI32","IsValidSid"
Declare Fehler&

Proc GET_JEDER

    Declare SYS$,SEC_ID#,CBNAME_SIZE#,CBNAME#,ReferencedDomainName#,RDN_SIZE#
    Declare SID_NAME_USE#
    DIM SEC_ID#,12
    DIM CBNAME_SIZE#,4
    DIM CBNAME#,256
    DIM ReferencedDomainName#,256
    DIM RDN_SIZE#,4
    DIM SID_NAME_USE#,4
    Clear SYS$,SID_NAME_USE#,CBNAME#,ReferencedDomainName#,SEC_ID#
    LONG SEC_ID#,0=257
    LONG SEC_ID#,4=16777216
    LONG SEC_ID#,8=0
    LONG CBNAME_SIZE#,0=255
    LONG RDN_SIZE#,0=255
    LET Fehler&=@IsValidSid(SEC_ID#)
    ADDSTRING "Fehlercode IsValidSid="+@STR$(FEHLER&)
    ADDSTRING "Letzter API Fehler="+@STR$(@GetLastError())
    LET FEHLER&=@LookupAccountSid(@ADDR(SYS$),SEC_ID#,CBNAME#,CBNAME_SIZE#,ReferencedDomainName#,RDN_SIZE#,SID_NAME_USE#)
    ADDSTRING "Fehlercode LookupAccountSid="+@STR$(FEHLER&)
    ADDSTRING "Letzter API Fehler="+@STR$(@GetLastError())
    ADDSTRING @STRING$(CBNAME#,0)
    Dispose SID_NAME_USE#
    Dispose RDN_SIZE#
    Dispose ReferencedDomainName#
    Dispose CBNAME#
    DISPOSE SEC_ID#
    DISPOSE CBNAME_SIZE#

endproc

GET_JEDER
@Editbox("Rückgaben",>1)

becomes everywhere one String zurückgegeben? How see it with US-Systemen from?
 
05/15/05  
 



 
- Page 1 -



Rolf
Koch
Hi AH,
[quote:cba7059298]
Error Code IsValidSid=1
last API Fehler=0
Error Code LookupAccountSid=1
last API Fehler=997
eachone
****PROZEDUR launched****
chosen Datei=C:pressure.txt
Gruppenname/Username=Jeder
To Addierende Rechte=F_DELETE
last API-Fehler=997
Return of GetVolumeInformation=1
last API-Fehler=997
Laufwerksflags=1110000000011111111
Ausgelesene Partition=NTFS
grabbed is einschränkbar
Return of GetFileSecurity=0
last API-Fehler=122
Erforderliche length the Security Descriptor=188
Return of GetFileSecurity=1
last API-Fehler=0
Return of IsValidSecurityDescriptor=1
last API-Fehler=0
Return of GetSecurityDescriptorDacl=1
last API-Fehler=0
Return of IsValidAcl for DACL=1
last API-Fehler=0
DACL is present!
Return of GetAclInformation=1
last API-Fehler=0
amount uses Bytes in DACL=112
amount suitor Bytes in DACL=0
ACEs in DACL=4
Size the 1.ACEs=24
ACE type the 1.ACEs=ACCESS_ALLOWED_ACE_TYPE
Return of LookupAccountSid=1
last API-Fehler=997
Reset the API-Fehlers becomes implemented
Return of ConvertSidToStringSid=1
last API-Fehler=0
Return of LocalFree for String-SID=0
last API-Fehler=0
String-SID the 1. ACEs=S-1-5-32-544
1. ACE related on SID=Administratoren
1. ACE related on Domainname=VORDEFINIERT
Accessrechte the 1. ACEs=$1F01FF
right in the 1. ACE=FILE_ALL_ACCESS (Vollzugriff)
Size the 2.ACEs=20
ACE type the 2.ACEs=ACCESS_ALLOWED_ACE_TYPE
Return of LookupAccountSid=1
last API-Fehler=997
Reset the API-Fehlers becomes implemented
Return of ConvertSidToStringSid=1
last API-Fehler=0
Return of LocalFree for String-SID=0
last API-Fehler=0
String-SID the 2. ACEs=S-1-5-18
2. ACE related on SID=SYSTEM
2. ACE related on Domainname=NT-AUTORITÄT
Accessrechte the 2. ACEs=$1F01FF
right in the 2. ACE=FILE_ALL_ACCESS (Vollzugriff)
Size the 3.ACEs=36
ACE type the 3.ACEs=ACCESS_ALLOWED_ACE_TYPE
Return of LookupAccountSid=1
last API-Fehler=997
Reset the API-Fehlers becomes implemented
Return of ConvertSidToStringSid=1
last API-Fehler=0
Return of LocalFree for String-SID=0
last API-Fehler=0
String-SID the 3. ACEs=S-1-5-21-1708537768-1644491937-839522115-1003
3. ACE related on SID=Rolf
3. ACE related on Domainname=ROCKNROLF
Accessrechte the 3. ACEs=$1F01FF
right in the 3. ACE=FILE_ALL_ACCESS (Vollzugriff)
Size the 4.ACEs=24
ACE type the 4.ACEs=ACCESS_ALLOWED_ACE_TYPE
Return of LookupAccountSid=1
last API-Fehler=997
Reset the API-Fehlers becomes implemented
Return of ConvertSidToStringSid=1
last API-Fehler=0
Return of LocalFree for String-SID=0
last API-Fehler=0
String-SID the 4. ACEs=S-1-5-32-545
4. ACE related on SID=Benutzer
4. ACE related on Domainname=VORDEFINIERT
Accessrechte the 4. ACEs=$1200A9
right in the 4. ACE=FILE_READ_DATA (allows Data from one File To reading)
right in the 4. ACE=FILE_READ_EA (allows erweiterte Attibute To reading)
right in the 4. ACE=FILE_EXECUTE (allows a File to execute)
right in the 4. ACE=FILE_READ_ATTRIBUTES (reading the Fileattribute)
right in the 4. ACE=READ_CONTROL (reading the DACL Entries and owner)
right in the 4. ACE=SYNCHRONIZE (allows one FileHandle on one Complitition I/O To Waiting)
Return of LookupAccountName for Jeder=0
last API-Fehler=122
length the SIDs=12
Return of LookupAccountName for Jeder=1
last API-Fehler=997
length the SIDs=12
Bytes for ACL=28
Return of InitializeAcl=1
last API-Fehler=997
Return of GetSecurityDescriptorDacl=1
last API-Fehler=997
Return of IsValidAcl for DACL=1
last API-Fehler=997
DACL is present!
Return of GetAclInformation=1
last API-Fehler=997
amount uses Bytes in DACL=112
amount suitor Bytes in DACL=0
ACEs in DACL=4
Size the 1.ACEs=24
ACE type the 1.ACEs=ACCESS_ALLOWED_ACE_TYPE
Vererbung=0
Return of LookupAccountSid=1
last API-Fehler=997
Reset the API-Fehlers becomes implemented
1. ACE related on SID=Administratoren
Accessrechte the 1. ACEs=$1F01FF
Size the 2.ACEs=20
ACE type the 2.ACEs=ACCESS_ALLOWED_ACE_TYPE
Vererbung=0
Return of LookupAccountSid=1
last API-Fehler=997
Reset the API-Fehlers becomes implemented
2. ACE related on SID=SYSTEM
Accessrechte the 2. ACEs=$1F01FF
Size the 3.ACEs=36
ACE type the 3.ACEs=ACCESS_ALLOWED_ACE_TYPE
Vererbung=0
Return of LookupAccountSid=0
last API-Fehler=1332
Reset the API-Fehlers becomes implemented
3. ACE related on SID=
Accessrechte the 3. ACEs=$1F01FF
Size the 4.ACEs=24
ACE type the 4.ACEs=ACCESS_ALLOWED_ACE_TYPE
Vererbung=0
Return of LookupAccountSid=1
last API-Fehler=997
Reset the API-Fehlers becomes implemented
4. ACE related on SID=Benutzer
Accessrechte the 4. ACEs=$1200A9
with DENIED_ACE...
...To addierende Rechte=$10000
Return of AddAce=1
last API-Fehler=0
Return of IsValidAcl for selbsterzeugten DACL=1
last API-Fehler=0
Return of InitializeSecurityDescriptor=1
last API-Fehler=0
Return of SetSecurityDescriptorDacl=1
last API-Fehler=0
Return of SetFileSecurity=1
last API-Fehler=0
Error Code IsValidSid=1
last API Fehler=0
Error Code LookupAccountSid=1
last API Fehler=997
eachone
****PROZEDUR launched****
chosen Datei=C:pressure.txt
Gruppenname/Username=Jeder
To Addierende Rechte=SYNCHRONIZE FILE_WRITE_EA FILE_READ_EA FILE_READ_DATA FILE_WRITE_DATA FILE_APPEND_DATA FILE_EXECUTE FILE_READ_ATTRIBUTES FILE_WRITE_ATTRIBUTES F_DELETE
last API-Fehler=997
Return of GetVolumeInformation=1
last API-Fehler=997
Laufwerksflags=1110000000011111111
Ausgelesene Partition=NTFS
grabbed is einschränkbar
Return of GetFileSecurity=0
last API-Fehler=122
Erforderliche length the Security Descriptor=104
Return of GetFileSecurity=1
last API-Fehler=0
Return of IsValidSecurityDescriptor=1
last API-Fehler=0
Return of GetSecurityDescriptorDacl=1
last API-Fehler=0
Return of IsValidAcl for DACL=1
last API-Fehler=0
DACL is present!
Return of GetAclInformation=1
last API-Fehler=0
amount uses Bytes in DACL=28
amount suitor Bytes in DACL=0
ACEs in DACL=1
Size the 1.ACEs=20
ACE type the 1.ACEs=ACCESS_DENIED_ACE_TYPE
Return of LookupAccountSid=1
last API-Fehler=997
Reset the API-Fehlers becomes implemented
Return of ConvertSidToStringSid=1
last API-Fehler=0
Return of LocalFree for String-SID=0
last API-Fehler=0
String-SID the 1. ACEs=S-1-1-0
1. ACE related on SID=Jeder
1. ACE related on Domainname=
Accessrechte the 1. ACEs=$10000
right in the 1. ACE=_DELETE (File delete)
Return of LookupAccountName for Jeder=0
last API-Fehler=122
length the SIDs=12
Return of LookupAccountName for Jeder=1
last API-Fehler=997
length the SIDs=12
Bytes for ACL=48
Return of InitializeAcl=1
last API-Fehler=997
Return of GetSecurityDescriptorDacl=1
last API-Fehler=997
Return of IsValidAcl for DACL=1
last API-Fehler=997
DACL is present!
Return of GetAclInformation=1
last API-Fehler=997
amount uses Bytes in DACL=28
amount suitor Bytes in DACL=0
ACEs in DACL=1
Size the 1.ACEs=20
ACE type the 1.ACEs=ACCESS_DENIED_ACE_TYPE
Vererbung=0
Return of LookupAccountSid=1
last API-Fehler=997
Reset the API-Fehlers becomes implemented
1. ACE related on SID=Jeder
Accessrechte the 1. ACEs=$10000
with DENIED_ACE To addierende Rechte=$0
Return of AddAce=1
last API-Fehler=0
Return of IsValidAcl for selbsterzeugten DACL=1
last API-Fehler=0
with ALLOWED_ACE...
...To addierende Rechte=$1101BF
Return of AddAce=1
last API-Fehler=0
Return of IsValidAcl for selbsterzeugten DACL=1
last API-Fehler=0
Return of InitializeSecurityDescriptor=1
last API-Fehler=0
Return of SetSecurityDescriptorDacl=1
last API-Fehler=0
Return of SetFileSecurity=1
last API-Fehler=0
Error Code IsValidSid=1
last API Fehler=0
Error Code LookupAccountSid=1
last API Fehler=997
Administratoren
****PROZEDUR launched****
chosen Datei=C:pressure.txt
Gruppenname/Username=Administratoren
To Addierende Rechte=FILE_DELETE_CHILD READ_CONTROL ACCESS_SYSTEM_SECURITY WRITE_OWNER WRITE_DAC F_DELETE SYNCHRONIZE FILE_WRITE_EA FILE_READ_EA FILE_READ_DATA FILE_WRITE_DATA FILE_APPEND_DATA FILE_EXECUTE FILE_READ_ATTRIBUTES FILE_WRITE_ATTRIBUTES F_DELETE
last API-Fehler=997
Return of GetVolumeInformation=1
last API-Fehler=997
Laufwerksflags=1110000000011111111
Ausgelesene Partition=NTFS
grabbed is einschränkbar
Return of GetFileSecurity=0
last API-Fehler=122
Erforderliche length the Security Descriptor=124
Return of GetFileSecurity=1
last API-Fehler=0
Return of IsValidSecurityDescriptor=1
last API-Fehler=0
Return of GetSecurityDescriptorDacl=1
last API-Fehler=0
Return of IsValidAcl for DACL=1
last API-Fehler=0
DACL is present!
Return of GetAclInformation=1
last API-Fehler=0
amount uses Bytes in DACL=48
amount suitor Bytes in DACL=0
ACEs in DACL=2
Size the 1.ACEs=20
ACE type the 1.ACEs=ACCESS_DENIED_ACE_TYPE
Return of LookupAccountSid=1
last API-Fehler=997
Reset the API-Fehlers becomes implemented
Return of ConvertSidToStringSid=1
last API-Fehler=0
Return of LocalFree for String-SID=0
last API-Fehler=0
String-SID the 1. ACEs=S-1-1-0
1. ACE related on SID=Jeder
1. ACE related on Domainname=
Accessrechte the 1. ACEs=$0
Size the 2.ACEs=20
ACE type the 2.ACEs=ACCESS_ALLOWED_ACE_TYPE
Return of LookupAccountSid=1
last API-Fehler=997
Reset the API-Fehlers becomes implemented
Return of ConvertSidToStringSid=1
last API-Fehler=0
Return of LocalFree for String-SID=0
last API-Fehler=0
String-SID the 2. ACEs=S-1-1-0
2. ACE related on SID=Jeder
2. ACE related on Domainname=
Accessrechte the 2. ACEs=$1101BF
right in the 2. ACE=FILE_READ_DATA (allows Data from one File To reading)
right in the 2. ACE=FILE_WRITE_DATA (allows data To Scheiben)
right in the 2. ACE=FILE_APPEND_DATA (allows data anzuhängen)
right in the 2. ACE=FILE_READ_EA (allows erweiterte Attibute To reading)
right in the 2. ACE=FILE_WRITE_EA (allows erweiterte attributes To write)
right in the 2. ACE=FILE_EXECUTE (allows a File to execute)
right in the 2. ACE=FILE_READ_ATTRIBUTES (reading the Fileattribute)
right in the 2. ACE=FILE_WRITE_ATTRIBUTES (Change the Fileattribute)
right in the 2. ACE=SYNCHRONIZE (allows one FileHandle on one Complitition I/O To Waiting)
right in the 2. ACE=_DELETE (File delete)
Return of LookupAccountName for Administratoren=0
last API-Fehler=122
length the SIDs=16
Return of LookupAccountName for Administratoren=1
last API-Fehler=997
length the SIDs=16
Bytes for ACL=72
Return of InitializeAcl=1
last API-Fehler=997
Return of GetSecurityDescriptorDacl=1
last API-Fehler=997
Return of IsValidAcl for DACL=1
last API-Fehler=997
DACL is present!
Return of GetAclInformation=1
last API-Fehler=997
amount uses Bytes in DACL=48
amount suitor Bytes in DACL=0
ACEs in DACL=2
Size the 1.ACEs=20
ACE type the 1.ACEs=ACCESS_DENIED_ACE_TYPE
Vererbung=0
Return of LookupAccountSid=1
last API-Fehler=997
Reset the API-Fehlers becomes implemented
1. ACE related on SID=Jeder
Accessrechte the 1. ACEs=$0
Return of AddAce=1
last API-Fehler=0
Return of IsValidAcl for selbsterzeugten DACL=1
last API-Fehler=0
Size the 2.ACEs=20
ACE type the 2.ACEs=ACCESS_ALLOWED_ACE_TYPE
Vererbung=0
Return of LookupAccountSid=1
last API-Fehler=997
Reset the API-Fehlers becomes implemented
2. ACE related on SID=Jeder
Accessrechte the 2. ACEs=$1101BF
Return of AddAce=1
last API-Fehler=0
Return of IsValidAcl for selbsterzeugten DACL=1
last API-Fehler=0
with ALLOWED_ACE...
...To addierende Rechte=$11F01FF
Return of AddAce=1
last API-Fehler=0
Return of IsValidAcl for selbsterzeugten DACL=1
last API-Fehler=0
Return of InitializeSecurityDescriptor=1
last API-Fehler=0
Return of SetSecurityDescriptorDacl=1
last API-Fehler=0
Return of SetFileSecurity=1
last API-Fehler=0
[/quote:cba7059298]
Rolf
 
05/21/05  
 



Hello Rolf...

sees on the first look integrally well from. Hauts there or Gibts Problems? is correct with the whom Values in the Explorer uberein?
 
05/21/05  
 




Rolf
Koch
so How I it on the first look see, is everything OK.
will be but certainly weitertesten. go same but first time on one IN EXTREMO Konzert here in Koblenz *freu*

Rolf
 
05/21/05  
 



Have at play with the PROC another couple Error discover.
CompileMarkSeparation
DEF @SetFileSecurity(3) !"ADVAPI32","SetFileSecurityA"
DEF @InitializeSecurityDescriptor(2) !"ADVAPI32","InitializeSecurityDescriptor"
DEF @SetSecurityDescriptorDacl(4) !"ADVAPI32","SetSecurityDescriptorDacl"
DEF @AddAce(5) !"ADVAPI32","AddAce"
DEF @LookupAccountName(7) !"advapi32","LookupAccountNameA"
DEF @GetFileSecurity(5) !"ADVAPI32","GetFileSecurityA"
DEF @GetLastError(0) !"KERNEL32","GetLastError"
DEF @SetLastError(1) !"KERNEL32","SetLastError"
DEF @LookupPrivilegeName(4)!"advapi32","LookupPrivilegeNameA" Ermittelt aus dem Luid eines Privilegs dessen Namen.
DEF @LookupPrivilegeValue(3) !"advapi32","LookupPrivilegeValueA" Ermittelt aus dem Namen eines Privilegs dessen Luid.
DEF @OpenProcessToken(3) !"advapi32","OpenProcessToken" Öffnet Einstellprozess.
DEF @AdjustTokenPrivileges(6) !"advapi32","AdjustTokenPrivileges" Stellt Privilegien ein.
DEF @GetCurrentProcess(0) !"kernel32","GetCurrentProcess" Ermittel das Handle des aktiven Prozesses.
DEF @CloseHandle(1) !"kernel32","CloseHandle" Schließt ein Handle (Programm).
Def @GetVolumeInformation(8) !"KERNEL32","GetVolumeInformationA"
DEF @GetSecurityDescriptorOwner(3) !"ADVAPI32","GetSecurityDescriptorOwner"
DEF @GetSecurityDescriptorGroup(3) !"ADVAPI32","GetSecurityDescriptorGroup"
DEF @GetSecurityDescriptorDACL(4) !"ADVAPI32","GetSecurityDescriptorDacl"
DEF @GetSecurityDescriptorSACL(4) !"ADVAPI32","GetSecurityDescriptorSacl"
DEF @LookupAccountSid(7) !"ADVAPI32","LookupAccountSidA"
DEF @IsValidSecurityDescriptor(1) !"ADVAPI32","IsValidSecurityDescriptor"
DEF @IsValidSid(1) !"ADVAPI32","IsValidSid"
DEF @IsValidAcl(1) !"ADVAPI32","IsValidAcl"
DEF @GetAclInformation(4) !"ADVAPI32","GetAclInformation"
DEF @CopyMemory(3) !"kernel32","RtlMoveMemory"
DEF @GetAce(3) !"ADVAPI32","GetAce"
DEF @ConvertSidToStringSid(2) !"ADVAPI32","ConvertSidToStringSidA"
DEF @LocalFree(1) !"KERNEL32","LocalFree"
DEF @InitializeAcl(3) !"ADVAPI32","InitializeAcl"
Declare Fehler&

Proc GET_Group_Name

    Parameters Name$
    Declare SYS$,SEC_ID#,CBNAME_SIZE#,CBNAME#,ReferencedDomainName#,RDN_SIZE#
    Declare SID_NAME_USE#,CBNAME$
    SID wird erstellt.

    IF @UPPER$(Name$)="JEDER"

        DIM SEC_ID#,12

    ElseIF @UPPER$(Name$)="ADMINISTRATOREN"

        DIM SEC_ID#,16

    else

        DIM SEC_ID#,12
        @Messagebox("Falscher Parameter!","Fehler",16)

    endif

    DIM CBNAME_SIZE#,4
    DIM CBNAME#,256
    DIM ReferencedDomainName#,256
    DIM RDN_SIZE#,4
    DIM SID_NAME_USE#,4
    Clear SYS$,SID_NAME_USE#,CBNAME#,ReferencedDomainName#,SEC_ID#

    IF @UPPER$(Name$)="JEDER"

        LONG SEC_ID#,0=257
        LONG SEC_ID#,4=16777216
        LONG SEC_ID#,8=0

    elseIF @UPPER$(Name$)="ADMINISTRATOREN"

        LONG SEC_ID#,0=513
        LONG SEC_ID#,4=83886080
        LONG SEC_ID#,8=32
        LONG SEC_ID#,12=544

    endif

    LONG CBNAME_SIZE#,0=255
    LONG RDN_SIZE#,0=255
    LET Fehler&=@IsValidSid(SEC_ID#)
    ADDSTRING "Fehlercode IsValidSid="+@STR$(FEHLER&)
    ADDSTRING "Letzter API Fehler="+@STR$(@GetLastError())
    CASE FEHLER&=1 : LET FEHLER&=@LookupAccountSid(@ADDR(SYS$),SEC_ID#,CBNAME#,CBNAME_SIZE#,ReferencedDomainName#,RDN_SIZE#,SID_NAME_USE#)
    ADDSTRING "Fehlercode LookupAccountSid="+@STR$(FEHLER&)
    ADDSTRING "Letzter API Fehler="+@STR$(@GetLastError())
    ADDSTRING @STRING$(CBNAME#,0)
    LET CBNAME$=@STRING$(CBNAME#,0)
    Dispose SID_NAME_USE#
    Dispose RDN_SIZE#
    Dispose ReferencedDomainName#
    Dispose CBNAME#
    DISPOSE SEC_ID#
    DISPOSE CBNAME_SIZE#
    Return CBNAME$

endproc

Proc Set_ACE_IN_DACL

    Parameters FileName$,User$,Hinzu_entfernen$,FSFlags$
    1.Parameter= Dateiname
    2.Parameter= Username
    3.Parameter= +;-;0 (+=Rechte entfernen, -=hinzufügen, 0=alles vorhandene löschen)
    4.Parameter= Flags als String
    Mögliche Flags
    FILE_READ_DATA (Erlaubt Daten aus einem File zu lesen)
    FILE_WRITE_DATA (Erlaubt Daten zu Scheiben)
    FILE_APPEND_DATA (Erlaubt Daten anzuhängen)
    FILE_READ_EA (Erlaubt erweiterte Attibute zu lesen)
    FILE_WRITE_EA (Erlaubt erweiterte Attribute zu schreiben)
    FILE_EXECUTE (Erlaubt eine Datei auszuführen)
    FILE_READ_ATTRIBUTES (Lesen der Fileattribute)
    FILE_WRITE_ATTRIBUTES (Ändern der Fileattribute)
    WRITE_DAC (Ändern der DACL Einträge)
    READ_CONTROL (Lesen der DACL Einträge und Besitzer)
    SYNCHRONIZE (Erlaubt einem FileHandle auf ein Complitition I/O zu warten)
    File_Delete_CHILD (Erlaubt einen Unterordner zu löschen - für Dateien keine Bedeutung)
    ACCESS_SYSTEM_SECURITY (Erlaubt den Zugriff auf den SACL)
    WRITE_OWNER (Eigentümer ändern)
    F_DELETE (Datei löschen)
    ADDSTRING "****PROZEDUR gestartet****"

    IF @AND(Filename$<>"",@AND(USER$<>"",@OR(@INSTR("+",Hinzu_entfernen$)>0,@INSTR("-",Hinzu_entfernen$)>0)))

        Declare NEW_ACL1#,SIDA#
        Declare PSECURITY_DESCRIPTOR#,Needed#,Needed&
        Declare Laufwerk$,Label#,LFLAGS#,DAT#
        DEclare SID#,GFLAG#,System$,FSFlags&
        DEclare ACCOUNT_NAME#,SIZE_ACCOUNT#,Domain#,SIZE_DOMAIN#,SID_NAME_USE#
        Declare Test&,ANZAHL_BYTES&
        Declare ACL_PRESENT#,P_ACL#,ACL_D#
        Declare ACL_INFO#,Zähler&,ACE#,P_ACE#,ACE_SIZE&,STRSID#,P_STRSID#
        Declare SID2#,IO%,SecFlag&,ACCESS_MASK&
        Declare Vorhanden&,Needed#,SecFlag&,NEEDED&
        Declare PSECURITY_DESCRIPTOR#,ACL_PRESENT#,P_ACL#,ACL_D#
        DEclare ACCOUNT_NAME#,SIZE_ACCOUNT#,Domain#,SIZE_DOMAIN#,SID_NAME_USE#
        Declare ACE_ZÄHLER&,SIZE_ACCOUNT&
        Clear Needed&
        Clear Laufwerk$
        Clear System$,FSFlags&
        Clear Test&,ANZAHL_BYTES&
        Clear Zähler&,ACE_SIZE&
        Clear SecFlag&,ACCESS_MASK&
        Clear Vorhanden&,SecFlag&,NEEDED&
        Clear ACE_ZÄHLER&,SIZE_ACCOUNT&
        LET FSFlags&=0
        LET LAUFWERK$=@LEFT$(Filename$,3)
        DIM Label#,256
        DIM LFLAGS#,4
        DIM DAT#,256
        DIM STRSID#,256
        DIM P_STRSID#,4
        DIM Needed#,4
        ADDSTRING "Gewählte Datei="+Filename$
        ADDSTRING "Gruppenname/Username="+USER$
        ADDSTRING "Zu Addierende Rechte=..."
        ADDSTRING FSFLAGS$
        ADDSTRING "Letzter API-Fehler="+@STR$(@GetLastError())
        LET FEHLER&=@GetVolumeInformation(@ADDR(Laufwerk$),Label#,256,0,0,LFlags#,DAT#,256)
        ADDSTRING "Rückgabe von GetVolumeInformation="+@STR$(Fehler&)
        ADDSTRING "Letzter API-Fehler="+@STR$(@GetLastError())
        ADDSTRING "Laufwerksflags="+@BIN$(@LONG(LFLAGS#,0))
        ADDSTRING "Ausgelesene Partition="+@String$(Dat#,0)

        IF @LONG(LFLAGS#,0) | $8 = @LONG(LFLAGS#,0)

            DIM SIDa#,1
            ADDSTRING "Zugriff ist einschränkbar"
            LET SECFLAG&=$1 | $2 | $4
            Clear Needed#
            LET Fehler&=@GetFileSecurity(@ADDR(Filename$),SecFlag&,0,0,Needed#)
            ADDSTRING "Rückgabe von GetFileSecurity="+@STR$(Fehler&)
            ADDSTRING "Letzter API-Fehler="+@STR$(@GetLastError())
            LET NEEDED&=@LONG(Needed#,0)
            ADDSTRING "Erforderliche Länge des Security Descriptor="+@STR$(Needed&)
            CASE NEEDED&=0 : LET NEEDED&=1024
            DIM PSECURITY_DESCRIPTOR#,Needed&
            Clear PSECURITY_DESCRIPTOR#
            @SetLastError(0)
            LET Fehler&=@GetFileSecurity(@ADDR(Filename$),SECFLAG&,PSECURITY_DESCRIPTOR#,NEEDED&,Needed#)
            ADDSTRING "Rückgabe von GetFileSecurity="+@STR$(Fehler&)
            ADDSTRING "Letzter API-Fehler="+@STR$(@GetLastError())
            LET Fehler&=@IsValidSecurityDescriptor(PSECURITY_DESCRIPTOR#)
            ADDSTRING "Rückgabe von IsValidSecurityDescriptor="+@STR$(Fehler&)
            ADDSTRING "Letzter API-Fehler="+@STR$(@GetLastError())
            DIM ACL_PRESENT#,1
            DIM P_ACL#,4
            DIM ACL_D#,4
            Clear ACL_PRESENT#,P_ACL#,ACL_D#
            Let Fehler&=@GetSecurityDescriptorDacl(PSECURITY_DESCRIPTOR#,ACL_PRESENT#,P_ACL#,ACL_D#)
            ADDSTRING "Rückgabe von GetSecurityDescriptorDacl="+@STR$(Fehler&)
            ADDSTRING "Letzter API-Fehler="+@STR$(@GetLastError())
            LET Fehler&=@IsValidAcl(@long(P_ACL#,0))
            ADDSTRING "Rückgabe von IsValidAcl für den DACL="+@STR$(Fehler&)
            ADDSTRING "Letzter API-Fehler="+@STR$(@GetLastError())

            IF @LONG(ACL_PRESENT#,0)=1

                ADDSTRING "DACL ist vorhanden!"

            else

                ADDSTRING "DACL ist nicht vorhanden!"

            endif

            LET ANZAHL_BYTES&=8 Für ACL HEADER 8 Bytes veranschlagt

            IF @AND(Fehler&=1,@LONG(ACL_PRESENT#,0)=1)

                DIM ACL_INFO#,12
                DIM P_ACE#,4
                CLEAR ACL_INFO#,P_ACE#
                Let Fehler&=@GetAclInformation(@long(P_ACL#,0),ACL_INFO#,12,2)
                ADDSTRING "Rückgabe von GetAclInformation="+@STR$(Fehler&)
                ADDSTRING "Letzter API-Fehler="+@STR$(@GetLastError())
                ADDSTRING "Anzahl benutzter Bytes in DACL="+@STR$(@LONG(ACL_INFO#,4))
                ADDSTRING "Anzahl freier Bytes in DACL="+@STR$(@LONG(ACL_INFO#,8))
                ADDSTRING "ACEs in DACL="+@STR$(@LONG(ACL_INFO#,0))
                LET Zähler&=0
                DIM ACCOUNT_NAME#,256
                DIM SIZE_ACCOUNT#,4
                DIM Domain#,256
                DIM SIZE_DOMAIN#,4
                DIM SID_NAME_USE#,4

                IF @STR$(@LONG(ACL_INFO#,0))<>0

                    While Zähler&<@LONG(ACL_INFO#,0)

                        Clear P_ACE#
                        Let Fehler&=@GetAce(@long(P_ACL#,0),Zähler&,P_ACE#)
                        DIM ACE#,4
                        Clear ACE#
                        @CopyMemory(ACE#,@LONG(P_ACE#,0),4)
                        LET ACE_SIZE&=@Word(ACE#,2) Die Größen aller ACEs werden addiert.
                        ADDSTRING "Größe des "+@STR$(@INT(Zähler&+1))+".ACEs="+@STR$(@Word(ACE#,2))
                        LET ANZAHL_BYTES&=ANZAHL_BYTES&+ACE_SIZE&
                        Dispose ACE#
                        DIM ACE#,ACE_SIZE&
                        Clear SID_NAME_USE#
                        Clear ACCOUNT_NAME#
                        Clear Domain#
                        Clear ACE#
                        Long SIZE_ACCOUNT#,0=255
                        LONG SIZE_DOMAIN#,0=255
                        @CopyMemory(ACE#,@LONG(P_ACE#,0),ACE_SIZE&)

                        IF @BYTE(ACE#,0)=0

                            ADDSTRING "ACE Typ des "+@STR$(@INT(Zähler&+1))+".ACEs=ACCESS_ALLOWED_ACE_TYPE"

                        ElseIF @BYTE(ACE#,0)=1

                            ADDSTRING "ACE Typ des "+@STR$(@INT(Zähler&+1))+".ACEs=ACCESS_DENIED_ACE_TYPE"

                        ElseIF @BYTE(ACE#,0)=2

                            ADDSTRING "ACE Typ des "+@STR$(@INT(Zähler&+1))+".ACEs=SYSTEM_AUDIT_ACE_TYPE"

                        ElseIF @BYTE(ACE#,0)=3

                            ADDSTRING "ACE Typ des "+@STR$(@INT(Zähler&+1))+".ACEs=SYSTEM_ALARM_ACE"

                        endif

                        DIM SID2#,ACE_SIZE&-8
                        @CopyMemory(SID2#,@LONG(P_ACE#,0)+8,ACE_SIZE&-8)
                        LET Fehler&=@IsValidSid(SID2#)
                        ADDSTRING "Fehlercode IsValidSid="+@STR$(FEHLER&)
                        ADDSTRING "Letzter API Fehler="+@STR$(@GetLastError())
                        LET FEHLER&=@LookupAccountSid(@ADDR(SYSTEM$),SID2#,ACCOUNT_NAME#,SIZE_ACCOUNT#,Domain#,SIZE_DOMAIN#,SID_NAME_USE#)
                        ADDSTRING "Rückgabe von LookupAccountSid="+@STR$(Fehler&)
                        ADDSTRING "Letzter API-Fehler="+@STR$(@GetLastError())
                        ADDSTRING "Reset des API-Fehlers wird durchgeführt"
                        @SetLastError(0)
                        LET IO%=%IORESULT
                        Clear STRSID#

                        IF @VAL(@LEFT$($WINVER,3))>=5.0

                            LET FEHLER&=@ConvertSidToStringSid(SID2#,P_STRSID#)
                            @CopyMemory(STRSID#,@LONG(P_STRSID#,0),255)
                            ADDSTRING "Rückgabe von ConvertSidToStringSid="+@STR$(Fehler&)
                            ADDSTRING "Letzter API-Fehler="+@STR$(@GetLastError())
                            LET Fehler&=@LocalFree(@LONG(P_STRSID#,0))
                            ADDSTRING "Rückgabe von LocalFree für den String-SID="+@STR$(Fehler&)
                            ADDSTRING "Letzter API-Fehler="+@STR$(@GetLastError())
                            ADDSTRING "String-SID des "+@STR$(@int(Zähler&+1))+". ACEs="+@STRING$(STRSID#,0)

                        endif

                        ADDSTRING @STR$(@int(Zähler&+1))+". ACE Bezogen auf SID="+@String$(ACCOUNT_NAME#,0)

                        IF @UPPER$(@String$(ACCOUNT_NAME#,0))=@UPPER$(USER$)

                            IF @AND(@BYTE(ACE#,0)=0,@INSTR("+",Hinzu_entfernen$)>0)

                                LET VORHANDEN&=@or(VORHANDEN&,1)

                            endif

                            IF @AND(@BYTE(ACE#,0)=1,@INSTR("-",Hinzu_entfernen$)>0)

                                LET VORHANDEN&=@or(VORHANDEN&,2)

                            endif

                        endif

                        ADDSTRING @STR$(@int(Zähler&+1))+". ACE Bezogen auf Domainname="+@String$(Domain#,0)
                        ADDSTRING "Accessrechte des "+@STR$(@int(Zähler&+1))+". ACEs=$"+@HEX$(@LONG(ACE#,4))
                        LET ACCESS_MASK&=@LONG(ACE#,4)

                        IF @or(ACCESS_MASK&,$1F01FF)=ACCESS_MASK&

                            ADDSTRING "Recht im "+@STR$(@int(Zähler&+1))+". ACE=FILE_ALL_ACCESS (Vollzugriff)"
                            LET ACCESS_MASK&=ACCESS_MASK&-$1F01FF

                        endif

                        IF @or(ACCESS_MASK&,$1)=ACCESS_MASK&

                            ADDSTRING "Recht im "+@STR$(@int(Zähler&+1))+". ACE=FILE_READ_DATA (Erlaubt Daten aus einem File zu lesen)"
                            LET ACCESS_MASK&=ACCESS_MASK&-$1

                        endif

                        IF @or(ACCESS_MASK&,$2)=ACCESS_MASK&

                            ADDSTRING "Recht im "+@STR$(@int(Zähler&+1))+". ACE=FILE_WRITE_DATA (Erlaubt Daten zu Scheiben)"
                            LET ACCESS_MASK&=ACCESS_MASK&-$2

                        endif

                        IF @or(ACCESS_MASK&,$4)=ACCESS_MASK&

                            ADDSTRING "Recht im "+@STR$(@int(Zähler&+1))+". ACE=FILE_APPEND_DATA (Erlaubt Daten anzuhängen)"
                            LET ACCESS_MASK&=ACCESS_MASK&-$4

                        endif

                        IF @or(ACCESS_MASK&,$8)=ACCESS_MASK&

                            ADDSTRING "Recht im "+@STR$(@int(Zähler&+1))+". ACE=FILE_READ_EA (Erlaubt erweiterte Attibute zu lesen)"
                            LET ACCESS_MASK&=ACCESS_MASK&-$8

                        endif

                        IF @or(ACCESS_MASK&,$10)=ACCESS_MASK&

                            ADDSTRING "Recht im "+@STR$(@int(Zähler&+1))+". ACE=FILE_WRITE_EA (Erlaubt erweiterte Attribute zu schreiben)"
                            LET ACCESS_MASK&=ACCESS_MASK&-$10

                        endif

                        IF @or(ACCESS_MASK&,$20)=ACCESS_MASK&

                            ADDSTRING "Recht im "+@STR$(@int(Zähler&+1))+". ACE=FILE_EXECUTE (Erlaubt eine Datei auszuführen)"
                            LET ACCESS_MASK&=ACCESS_MASK&-$20

                        endif

                        IF @or(ACCESS_MASK&,$80)=ACCESS_MASK&

                            ADDSTRING "Recht im "+@STR$(@int(Zähler&+1))+". ACE=FILE_READ_ATTRIBUTES (Lesen der Fileattribute)"
                            LET ACCESS_MASK&=ACCESS_MASK&-$80

                        endif

                        IF @or(ACCESS_MASK&,$100)=ACCESS_MASK&

                            ADDSTRING "Recht im "+@STR$(@int(Zähler&+1))+". ACE=FILE_WRITE_ATTRIBUTES (Ändern der Fileattribute)"
                            LET ACCESS_MASK&=ACCESS_MASK&-$100

                        endif

                        IF @or(ACCESS_MASK&,$00040000)=ACCESS_MASK&

                            ADDSTRING "Recht im "+@STR$(@int(Zähler&+1))+". ACE=WRITE_DAC (Ändern der DACL Einträge)"
                            LET ACCESS_MASK&=ACCESS_MASK&-$00040000

                        endif

                        IF @or(ACCESS_MASK&,$00020000)=ACCESS_MASK&

                            ADDSTRING "Recht im "+@STR$(@int(Zähler&+1))+". ACE=READ_CONTROL (Lesen der DACL Einträge und Besitzer)"
                            LET ACCESS_MASK&=ACCESS_MASK&-$00020000

                        endif

                        IF @or(ACCESS_MASK&,$00100000)=ACCESS_MASK&

                            ADDSTRING "Recht im "+@STR$(@int(Zähler&+1))+". ACE=SYNCHRONIZE (Erlaubt einem FileHandle auf ein Complitition I/O zu warten)"
                            LET ACCESS_MASK&=ACCESS_MASK&-$00100000

                        endif

                        IF @or(ACCESS_MASK&,$40)=ACCESS_MASK&

                            ADDSTRING "Recht im "+@STR$(@int(Zähler&+1))+". ACE=File_Delete_Child (Erlaubt einen Unterordner zu löschen - für Dateien keine Bedeutung)"
                            LET ACCESS_MASK&=ACCESS_MASK&-$40

                        endif

                        IF @or(ACCESS_MASK&,$01000000)=ACCESS_MASK&

                            ADDSTRING "Recht im "+@STR$(@int(Zähler&+1))+". ACE=ACCESS_SYSTEM_SECURITY (Erlaubt den Zugriff auf den SACL)"
                            LET ACCESS_MASK&=ACCESS_MASK&-$01000000

                        endif

                        IF @or(ACCESS_MASK&,$10000000)=ACCESS_MASK&

                            ADDSTRING "Recht im "+@STR$(@int(Zähler&+1))+". ACE=GENERIC_ALL"
                            LET ACCESS_MASK&=ACCESS_MASK&-$10000000

                        endif

                        IF @or(ACCESS_MASK&,$20000000)=ACCESS_MASK&

                            ADDSTRING "Recht im "+@STR$(@int(Zähler&+1))+". ACE=GENERIC_EXECUTE"
                            LET ACCESS_MASK&=ACCESS_MASK&-$20000000

                        endif

                        IF @or(ACCESS_MASK&,$40000000)=ACCESS_MASK&

                            ADDSTRING "Recht im "+@STR$(@int(Zähler&+1))+". ACE=GENERIC_WRITE"
                            LET ACCESS_MASK&=ACCESS_MASK&-$40000000

                        endif

                        IF @or(ACCESS_MASK&,$80000000)=ACCESS_MASK&

                            ADDSTRING "Recht im "+@STR$(@int(Zähler&+1))+". ACE=GENERIC_READ"
                            LET ACCESS_MASK&=ACCESS_MASK&-$80000000

                        endif

                        IF @or(ACCESS_MASK&,$80000)=ACCESS_MASK&

                            ADDSTRING "Recht im "+@STR$(@int(Zähler&+1))+". ACE=WRITE_OWNER (Eigentümer ändern)"
                            LET ACCESS_MASK&=ACCESS_MASK&-$80000

                        endif

                        IF @or(ACCESS_MASK&,$00010000)=ACCESS_MASK&

                            ADDSTRING "Recht im "+@STR$(@int(Zähler&+1))+". ACE=_DELETE (Datei löschen)"
                            LET ACCESS_MASK&=ACCESS_MASK&-$00010000

                        endif

                        IF ACCESS_MASK&>0

                            ADDSTRING "Nicht berechnete Rechte="+@STR$(ACCESS_MASK&)+" ($"+@HEX$(ACCESS_MASK&)+")"

                        endif

                        LET Zähler&=Zähler&+1
                        Dispose SID2#
                        Dispose ACE#

                    wend

                Endif

                Clear SID_NAME_USE#,ACCOUNT_NAME#,Domain#,SIDa#,System$
                Long SIZE_ACCOUNT#,0=1
                LONG SIZE_DOMAIN#,0=255
                LET Fehler&=@LookupAccountName(@ADDR(SYSTEM$),@addr(USER$),SIDa#,SIZE_ACCOUNT#,DOMAIN#,SIZE_DOMAIN#,SID_NAME_USE#)
                ADDSTRING "Rückgabe von LookupAccountName für "+User$+"="+@STR$(Fehler&)
                ADDSTRING "Letzter API-Fehler="+@STR$(@GetLastError())
                ADDSTRING "Länge des SIDs="+@STR$(@LONG(SIZE_ACCOUNT#,0))
                LET SIZE_ACCOUNT&=@LONG(SIZE_ACCOUNT#,0)
                Clear SID_NAME_USE#
                Clear ACCOUNT_NAME#
                Clear Domain#
                Long SIZE_ACCOUNT#,0=SIZE_ACCOUNT&
                LONG SIZE_DOMAIN#,0=255
                Dispose SIDa#
                DIM SIDa#,SIZE_ACCOUNT&
                Clear SIDa#
                LET Fehler&=@LookupAccountName(@ADDR(SYSTEM$),@addr(USER$),SIDa#,SIZE_ACCOUNT#,DOMAIN#,SIZE_DOMAIN#,SID_NAME_USE#)
                ADDSTRING "Rückgabe von LookupAccountName für "+User$+"="+@STR$(Fehler&)
                ADDSTRING "Letzter API-Fehler="+@STR$(@GetLastError())
                ADDSTRING "Länge des SIDs="+@STR$(@LONG(SIZE_ACCOUNT#,0))

                IF VORHANDEN&=0

                    LET Anzahl_Bytes&=Anzahl_Bytes&+@LONG(SIZE_ACCOUNT#,0)+8 Alle ACEs+SID+ACCESS_MASK+ACE_HEADER

                endif

                IF @INSTR("0",Hinzu_entfernen$)>0

                    LET Anzahl_Bytes&=@LONG(SIZE_ACCOUNT#,0)+8+8 SID+ACCESS_MASK+ACE_HEADER+ACL_HEADER

                endif

                Dispose ACCOUNT_NAME#
                Dispose SIZE_ACCOUNT#
                Dispose Domain#
                Dispose SIZE_DOMAIN#
                Dispose SID_NAME_USE#
                Dispose P_ACE#
                Dispose ACL_INFO#

            Endif

            ADDSTRING "Bytes für ACL="+@STR$(Anzahl_Bytes&)
            DIM NEW_ACL1#,Anzahl_Bytes&
            LET FEHLER&=@InitializeAcl(NEW_ACL1#,Anzahl_Bytes&,$2)
            ADDSTRING "Rückgabe von InitializeAcl="+@STR$(Fehler&)
            ADDSTRING "Letzter API-Fehler="+@STR$(@GetLastError())
            Clear ACL_PRESENT#,P_ACL#,ACL_D#
            Let Fehler&=@GetSecurityDescriptorDacl(PSECURITY_DESCRIPTOR#,ACL_PRESENT#,P_ACL#,ACL_D#)
            ADDSTRING "Rückgabe von GetSecurityDescriptorDacl="+@STR$(Fehler&)
            ADDSTRING "Letzter API-Fehler="+@STR$(@GetLastError())
            LET Fehler&=@IsValidAcl(@long(P_ACL#,0))
            ADDSTRING "Rückgabe von IsValidAcl für den DACL="+@STR$(Fehler&)
            ADDSTRING "Letzter API-Fehler="+@STR$(@GetLastError())

            IF @LONG(ACL_PRESENT#,0)=1

                ADDSTRING "DACL ist vorhanden!"

            else

                ADDSTRING "DACL ist nicht vorhanden!"

            endif

            IF @INSTR("-",Hinzu_entfernen$)>0

                LET ACE_ZÄHLER&=1

            else

                LET ACE_ZÄHLER&=0

            endif

            IF @AND(Fehler&=1,@LONG(ACL_PRESENT#,0)=1)

                DIM ACL_INFO#,12
                DIM P_ACE#,4
                CLEAR ACL_INFO#,P_ACE#
                Let Fehler&=@GetAclInformation(@long(P_ACL#,0),ACL_INFO#,12,2)
                ADDSTRING "Rückgabe von GetAclInformation="+@STR$(Fehler&)
                ADDSTRING "Letzter API-Fehler="+@STR$(@GetLastError())
                ADDSTRING "Anzahl benutzter Bytes in DACL="+@STR$(@LONG(ACL_INFO#,4))
                ADDSTRING "Anzahl freier Bytes in DACL="+@STR$(@LONG(ACL_INFO#,8))
                ADDSTRING "ACEs in DACL="+@STR$(@LONG(ACL_INFO#,0))
                LET Zähler&=0
                DIM ACCOUNT_NAME#,256
                DIM SIZE_ACCOUNT#,4
                DIM Domain#,256
                DIM SIZE_DOMAIN#,4
                DIM SID_NAME_USE#,4

                IF @STR$(@LONG(ACL_INFO#,0))<>0

                    While Zähler&<@LONG(ACL_INFO#,0)

                        Clear P_ACE#
                        Let Fehler&=@GetAce(@long(P_ACL#,0),Zähler&,P_ACE#)
                        DIM ACE#,4
                        Clear ACE#
                        @CopyMemory(ACE#,@LONG(P_ACE#,0),4)
                        ADDSTRING "Größe des "+@STR$(@INT(Zähler&+1))+".ACEs="+@STR$(@Word(ACE#,2))
                        LET ANZAHL_BYTES&=ANZAHL_BYTES&+ACE_SIZE&
                        Dispose ACE#
                        DIM ACE#,ACE_SIZE&
                        Clear SID_NAME_USE#
                        Clear ACCOUNT_NAME#
                        Clear Domain#
                        Clear ACE#
                        Long SIZE_ACCOUNT#,0=255
                        LONG SIZE_DOMAIN#,0=255
                        @CopyMemory(ACE#,@LONG(P_ACE#,0),ACE_SIZE&)

                        IF @BYTE(ACE#,0)=0

                            ADDSTRING "ACE Typ des "+@STR$(@INT(Zähler&+1))+".ACEs=ACCESS_ALLOWED_ACE_TYPE"

                        ElseIF @BYTE(ACE#,0)=1

                            ADDSTRING "ACE Typ des "+@STR$(@INT(Zähler&+1))+".ACEs=ACCESS_DENIED_ACE_TYPE"

                        ElseIF @BYTE(ACE#,0)=2

                            ADDSTRING "ACE Typ des "+@STR$(@INT(Zähler&+1))+".ACEs=SYSTEM_AUDIT_ACE_TYPE"

                        ElseIF @BYTE(ACE#,0)=3

                            ADDSTRING "ACE Typ des "+@STR$(@INT(Zähler&+1))+".ACEs=SYSTEM_ALARM_ACE"

                        endif

                        ADDSTRING "Vererbung="+@STR$(@BYTE(ACE#,1))
                        DIM SID2#,ACE_SIZE&-8
                        @CopyMemory(SID2#,@LONG(P_ACE#,0)+8,ACE_SIZE&-8)
                        LET Fehler&=@IsValidSid(SID2#)
                        ADDSTRING "Fehlercode IsValidSid="+@STR$(FEHLER&)
                        ADDSTRING "Letzter API Fehler="+@STR$(@GetLastError())
                        LET FEHLER&=@LookupAccountSid(@ADDR(System$),SID2#,ACCOUNT_NAME#,SIZE_ACCOUNT#,Domain#,SIZE_DOMAIN#,SID_NAME_USE#)
                        ADDSTRING "Rückgabe von LookupAccountSid="+@STR$(Fehler&)
                        ADDSTRING "Letzter API-Fehler="+@STR$(@GetLastError())
                        ADDSTRING "Reset des API-Fehlers wird durchgeführt"
                        @SetLastError(0)
                        LET IO%=%IORESULT
                        Clear STRSID#
                        ADDSTRING @STR$(@int(Zähler&+1))+". ACE Bezogen auf SID="+@String$(ACCOUNT_NAME#,0)
                        ADDSTRING "Accessrechte des "+@STR$(@int(Zähler&+1))+". ACEs=$"+@HEX$(@LONG(ACE#,4))
                        LET ACCESS_MASK&=@LONG(ACE#,4)

                        IF @UPPER$(@String$(ACCOUNT_NAME#,0))=@UPPER$(USER$)

                            IF @BYTE(ACE#,0)=0

                                IF @INSTR("+",Hinzu_entfernen$)>0

                                    CASE @INSTR("0",Hinzu_entfernen$)=0 : LET FSFlags&=ACCESS_MASK&

                                ElseIF @INSTR("-",Hinzu_entfernen$)>0

                                    if @INSTR("0",Hinzu_entfernen$)=0

                                        IF @AND(@or(ACCESS_MASK&,$1)=ACCESS_MASK&,@INSTR("FILE_READ_DATA",@UPPER$(FSFLAGS$))>0)

                                            LET ACCESS_MASK&=ACCESS_MASK&-$1

                                        endif

                                        IF @AND(@or(ACCESS_MASK&,$2)=ACCESS_MASK&,@INSTR("FILE_WRITE_DATA",@UPPER$(FSFLAGS$))>0)

                                            LET ACCESS_MASK&=ACCESS_MASK&-$2

                                        endif

                                        IF @AND(@or(ACCESS_MASK&,$4)=ACCESS_MASK&,@INSTR("FILE_APPEND_DATA",@UPPER$(FSFLAGS$))>0)

                                            LET ACCESS_MASK&=ACCESS_MASK&-$4

                                        endif

                                        IF @AND(@or(ACCESS_MASK&,$8)=ACCESS_MASK&,@INSTR("FILE_READ_EA",@UPPER$(FSFLAGS$))>0)

                                            LET ACCESS_MASK&=ACCESS_MASK&-$8

                                        endif

                                        IF @AND(@or(ACCESS_MASK&,$10)=ACCESS_MASK&,@INSTR("FILE_WRITE_EA",@UPPER$(FSFLAGS$))>0)

                                            LET ACCESS_MASK&=ACCESS_MASK&-$10

                                        endif

                                        IF @AND(@or(ACCESS_MASK&,$20)=ACCESS_MASK&,@INSTR("FILE_EXECUTE",@UPPER$(FSFLAGS$))>0)

                                            LET ACCESS_MASK&=ACCESS_MASK&-$20

                                        endif

                                        IF @AND(@or(ACCESS_MASK&,$80)=ACCESS_MASK&,@INSTR("FILE_READ_ATTRIBUTES",@UPPER$(FSFLAGS$))>0)

                                            LET ACCESS_MASK&=ACCESS_MASK&-$80

                                        endif

                                        IF @AND(@or(ACCESS_MASK&,$100)=ACCESS_MASK&,@INSTR("FILE_WRITE_ATTRIBUTES",@UPPER$(FSFLAGS$))>0)

                                            LET ACCESS_MASK&=ACCESS_MASK&-$100

                                        endif

                                        IF @AND(@or(ACCESS_MASK&,$00040000)=ACCESS_MASK&,@INSTR("WRITE_DAC",@UPPER$(FSFLAGS$))>0)

                                            LET ACCESS_MASK&=ACCESS_MASK&-$00040000

                                        endif

                                        IF @AND(@or(ACCESS_MASK&,$00020000)=ACCESS_MASK&,@INSTR("READ_CONTROL",@UPPER$(FSFLAGS$))>0)

                                            LET ACCESS_MASK&=ACCESS_MASK&-$00020000

                                        endif

                                        IF @AND(@or(ACCESS_MASK&,$00100000)=ACCESS_MASK&,@INSTR("SYNCHRONIZE",@UPPER$(FSFLAGS$))>0)

                                            LET ACCESS_MASK&=ACCESS_MASK&-$00100000

                                        endif

                                        IF @AND(@or(ACCESS_MASK&,$40)=ACCESS_MASK&,@INSTR("FILE_DELETE_CHILD",@UPPER$(FSFLAGS$))>0)

                                            LET ACCESS_MASK&=ACCESS_MASK&-$40

                                        endif

                                        IF @AND(@or(ACCESS_MASK&,$01000000)=ACCESS_MASK&,@INSTR("ACCESS_SYSTEM_SECURITY",@UPPER$(FSFLAGS$))>0)

                                            LET ACCESS_MASK&=ACCESS_MASK&-$01000000

                                        endif

                                        IF @AND(@or(ACCESS_MASK&,$80000)=ACCESS_MASK&,@INSTR("WRITE_OWNER",@UPPER$(FSFLAGS$))>0)

                                            LET ACCESS_MASK&=ACCESS_MASK&-$80000

                                        endif

                                        IF @AND(@or(ACCESS_MASK&,$00010000)=ACCESS_MASK&,@INSTR("F_DELETE",@UPPER$(FSFLAGS$))>0)

                                            LET ACCESS_MASK&=ACCESS_MASK&-$00010000

                                        endif

                                        ADDSTRING "Bei ALLOWED_ACE zu addierende Rechte=$"+@HEX$(ACCESS_MASK&)
                                        LONG ACE#,4=ACCESS_MASK&
                                        LET FEHLER&=@AddAce(NEW_ACL1#,$2,ACE_ZÄHLER&,ACE#,ACE_SIZE&)
                                        ADDSTRING "Rückgabe von AddAce an Punkt "+@STR$(ACE_ZÄHLER&)+"="+@STR$(Fehler&)
                                        ADDSTRING "Letzter API-Fehler="+@STR$(@GetLastError())
                                        ADDSTRING "Rückgabe von IsValidAcl für den selbsterzeugten DACL="+@STR$(Fehler&)
                                        ADDSTRING "Letzter API-Fehler="+@STR$(@GetLastError())
                                        LET ACE_ZÄHLER&=ACE_ZÄHLER&+1

                                    ENDIF

                                endif

                            Elseif @BYTE(ACE#,0)=1

                                IF @INSTR("+",Hinzu_entfernen$)>0

                                    IF @INSTR("0",Hinzu_entfernen$)=0

                                        IF @AND(@or(ACCESS_MASK&,$1)=ACCESS_MASK&,@INSTR("FILE_READ_DATA",@UPPER$(FSFLAGS$))>0)

                                            LET ACCESS_MASK&=ACCESS_MASK&-$1

                                        endif

                                        IF @AND(@or(ACCESS_MASK&,$2)=ACCESS_MASK&,@INSTR("FILE_WRITE_DATA",@UPPER$(FSFLAGS$))>0)

                                            LET ACCESS_MASK&=ACCESS_MASK&-$2

                                        endif

                                        IF @AND(@or(ACCESS_MASK&,$4)=ACCESS_MASK&,@INSTR("FILE_APPEND_DATA",@UPPER$(FSFLAGS$))>0)

                                            LET ACCESS_MASK&=ACCESS_MASK&-$4

                                        endif

                                        IF @AND(@or(ACCESS_MASK&,$8)=ACCESS_MASK&,@INSTR("FILE_READ_EA",@UPPER$(FSFLAGS$))>0)

                                            LET ACCESS_MASK&=ACCESS_MASK&-$8

                                        endif

                                        IF @AND(@or(ACCESS_MASK&,$10)=ACCESS_MASK&,@INSTR("FILE_WRITE_EA",@UPPER$(FSFLAGS$))>0)

                                            LET ACCESS_MASK&=ACCESS_MASK&-$10

                                        endif

                                        IF @AND(@or(ACCESS_MASK&,$20)=ACCESS_MASK&,@INSTR("FILE_EXECUTE",@UPPER$(FSFLAGS$))>0)

                                            LET ACCESS_MASK&=ACCESS_MASK&-$20

                                        endif

                                        IF @AND(@or(ACCESS_MASK&,$80)=ACCESS_MASK&,@INSTR("FILE_READ_ATTRIBUTES",@UPPER$(FSFLAGS$))>0)

                                            LET ACCESS_MASK&=ACCESS_MASK&-$80

                                        endif

                                        IF @AND(@or(ACCESS_MASK&,$100)=ACCESS_MASK&,@INSTR("FILE_WRITE_ATTRIBUTES",@UPPER$(FSFLAGS$))>0)

                                            LET ACCESS_MASK&=ACCESS_MASK&-$100

                                        endif

                                        IF @AND(@or(ACCESS_MASK&,$00040000)=ACCESS_MASK&,@INSTR("WRITE_DAC",@UPPER$(FSFLAGS$))>0)

                                            LET ACCESS_MASK&=ACCESS_MASK&-$00040000

                                        endif

                                        IF @AND(@or(ACCESS_MASK&,$00020000)=ACCESS_MASK&,@INSTR("READ_CONTROL",@UPPER$(FSFLAGS$))>0)

                                            LET ACCESS_MASK&=ACCESS_MASK&-$00020000

                                        endif

                                        IF @AND(@or(ACCESS_MASK&,$00100000)=ACCESS_MASK&,@INSTR("SYNCHRONIZE",@UPPER$(FSFLAGS$))>0)

                                            LET ACCESS_MASK&=ACCESS_MASK&-$00100000

                                        endif

                                        IF @AND(@or(ACCESS_MASK&,$40)=ACCESS_MASK&,@INSTR("FILE_DELETE_CHILD",@UPPER$(FSFLAGS$))>0)

                                            LET ACCESS_MASK&=ACCESS_MASK&-$40

                                        endif

                                        IF @AND(@or(ACCESS_MASK&,$01000000)=ACCESS_MASK&,@INSTR("ACCESS_SYSTEM_SECURITY",@UPPER$(FSFLAGS$))>0)

                                            LET ACCESS_MASK&=ACCESS_MASK&-$01000000

                                        endif

                                        IF @AND(@or(ACCESS_MASK&,$80000)=ACCESS_MASK&,@INSTR("WRITE_OWNER",@UPPER$(FSFLAGS$))>0)

                                            LET ACCESS_MASK&=ACCESS_MASK&-$80000

                                        endif

                                        IF @AND(@or(ACCESS_MASK&,$00010000)=ACCESS_MASK&,@INSTR("F_DELETE",@UPPER$(FSFLAGS$))>0)

                                            LET ACCESS_MASK&=ACCESS_MASK&-$00010000

                                        endif

                                        ADDSTRING "Bei DENIED_ACE zu addierende Rechte=$"+@HEX$(ACCESS_MASK&)
                                        LONG ACE#,4=ACCESS_MASK&
                                        LET FEHLER&=@AddAce(NEW_ACL1#,$2,ACE_ZÄHLER&,ACE#,ACE_SIZE&)
                                        ADDSTRING "Rückgabe von AddAce an Punkt "+@STR$(ACE_ZÄHLER&)+"="+@STR$(Fehler&)
                                        ADDSTRING "Letzter API-Fehler="+@STR$(@GetLastError())
                                        ADDSTRING "Rückgabe von IsValidAcl für den selbsterzeugten DACL="+@STR$(Fehler&)
                                        ADDSTRING "Letzter API-Fehler="+@STR$(@GetLastError())
                                        LET ACE_ZÄHLER&=ACE_ZÄHLER&+1

                                    endif

                                ElseIF @INSTR("-",Hinzu_entfernen$)>0

                                    IF @INSTR("0",Hinzu_entfernen$)=0

                                        LONG ACE#,4=ACCESS_MASK&
                                        LET FEHLER&=@AddAce(NEW_ACL1#,$2,ACE_ZÄHLER&,ACE#,ACE_SIZE&)
                                        ADDSTRING "Bei DENIED_ACE zu addierende Rechte=$"+@HEX$(ACCESS_MASK&)
                                        ADDSTRING "Rückgabe von AddAce an Punkt "+@STR$(ACE_ZÄHLER&)+"="+@STR$(Fehler&)
                                        ADDSTRING "Letzter API-Fehler="+@STR$(@GetLastError())
                                        ADDSTRING "Rückgabe von IsValidAcl für den selbsterzeugten DACL="+@STR$(Fehler&)
                                        ADDSTRING "Letzter API-Fehler="+@STR$(@GetLastError())
                                        LET ACE_ZÄHLER&=ACE_ZÄHLER&+1

                                    endif

                                endif

                            endif

                        else

                            IF @INSTR(&quot;0",Hinzu_entfernen$)=0

                                LET FEHLER&=@AddAce(NEW_ACL1#,$2,ACE_ZÄHLER&,ACE#,ACE_SIZE&)
                                ADDSTRING "Rückgabe von AddAce an Punkt "+@STR$(ACE_ZÄHLER&)+"="+@STR$(Fehler&)
                                ADDSTRING "Letzter API-Fehler="+@STR$(@GetLastError())
                                ADDSTRING "Rückgabe von IsValidAcl für den selbsterzeugten DACL="+@STR$(Fehler&)
                                ADDSTRING "Letzter API-Fehler="+@STR$(@GetLastError())
                                LET ACE_ZÄHLER&=ACE_ZÄHLER&+1

                            endif

                        endif

                        LET Zähler&=Zähler&+1
                        Dispose SID2#
                        Dispose ACE#

                    wend

                Endif

                DIM ACE#,SIZE_ACCOUNT&+8

                IF @INSTR("+",Hinzu_entfernen$)>0

                    Byte ACE#,0=0
                    ADDSTRING "Bei ALLOWED_ACE..."

                ELSEIF @INSTR("-",Hinzu_entfernen$)>0

                    Byte ACE#,0=1
                    ADDSTRING "Bei DENIED_ACE..."

                endif

                IF @INSTR("FILE_READ_DATA",@UPPER$(FSFlags$))>0

                    LET FSFlags&=@OR(FSFLAGS&,$1)

                endif

                IF @INSTR("FILE_WRITE_DATA",@UPPER$(FSFLAGS$))>0

                    LET FSFlags&=@OR(FSFLAGS&,$2)

                endif

                IF @INSTR("FILE_APPEND_DATA",@UPPER$(FSFLAGS$))>0

                    LET FSFlags&=@OR(FSFLAGS&,$4)

                endif

                IF @INSTR("FILE_READ_EA",@UPPER$(FSFLAGS$))>0

                    LET FSFlags&=@OR(FSFLAGS&,$8)

                endif

                IF @INSTR("FILE_WRITE_EA",@UPPER$(FSFLAGS$))>0

                    LET FSFlags&=@OR(FSFLAGS&,$10)

                endif

                IF @INSTR("FILE_EXECUTE",@UPPER$(FSFLAGS$))>0

                    LET FSFlags&=@OR(FSFLAGS&,$20)

                endif

                IF @INSTR("FILE_DELETE_CHILD",@UPPER$(FSFLAGS$))>0

                    LET FSFlags&=@OR(FSFLAGS&,$40)

                endif

                IF @INSTR("FILE_READ_ATTRIBUTES",@UPPER$(FSFLAGS$))>0

                    LET FSFlags&=@OR(FSFLAGS&,$80)

                endif

                IF @INSTR("FILE_WRITE_ATTRIBUTES",@UPPER$(FSFLAGS$))>0

                    LET FSFlags&=@OR(FSFLAGS&,$100)

                endif

                IF @INSTR("F_DELETE",@UPPER$(FSFLAGS$))>0

                    LET FSFlags&=@OR(FSFLAGS&,$10000)

                endif

                IF @INSTR("READ_CONTROL",@UPPER$(FSFLAGS$))>0

                    LET FSFlags&=@OR(FSFLAGS&,$20000)

                endif

                IF @INSTR("WRITE_DAC",@UPPER$(FSFLAGS$))>0

                    LET FSFlags&=@OR(FSFLAGS&,$40000)

                endif

                IF @INSTR("SYNCHRONIZE",@UPPER$(FSFLAGS$))>0

                    LET FSFlags&=@OR(FSFLAGS&,$100000)

                endif

                IF @INSTR("ACCESS_SYSTEM_SECURITY",@UPPER$(FSFLAGS$))>0

                    LET FSFlags&=@OR(FSFLAGS&,$1000000)

                endif

                IF @INSTR("WRITE_OWNER",@UPPER$(FSFLAGS$))>0

                    LET FSFlags&=@OR(FSFLAGS&,$80000)

                endif

                Byte ACE#,1=0
                WORD ACE#,2=SIZE_ACCOUNT&+8
                LONG ACE#,4=FSFlags&
                LET ZÄHLER&=0
                ADDSTRING "...zu addierende Rechte=$"+@HEX$(FSFlags&)

                WHILE ZÄHLER&<>SIZE_ACCOUNT&

                    BYTE ACE#,8+Zähler&=@BYTE(SIDa#,Zähler&)
                    LET ZÄHLER&=ZÄHLER&+1

                WEND

                IF @INSTR("-",Hinzu_entfernen$)>0

                    LET ACE_ZÄHLER&=0

                endif

                LET FEHLER&=@AddAce(NEW_ACL1#,$2,ACE_ZÄHLER&,ACE#,SIZE_ACCOUNT&+8)
                ADDSTRING "Rückgabe von AddAce an Punkt "+@STR$(ACE_ZÄHLER&)+"="+@STR$(Fehler&)
                ADDSTRING "Letzter API-Fehler="+@STR$(@GetLastError())
                LET Fehler&=@IsValidAcl(NEW_ACL1#)
                ADDSTRING "Rückgabe von IsValidAcl für den selbsterzeugten DACL="+@STR$(Fehler&)
                ADDSTRING "Letzter API-Fehler="+@STR$(@GetLastError())
                LET TEST&=NEW_ACL1#
                LET FEHLER&=@InitializeSecurityDescriptor(PSECURITY_DESCRIPTOR#,$1)
                ADDSTRING "Rückgabe von InitializeSecurityDescriptor="+@STR$(Fehler&)
                ADDSTRING "Letzter API-Fehler="+@STR$(@GetLastError())
                LET FEHLER&=@SetSecurityDescriptorDacl(PSECURITY_DESCRIPTOR#,1,NEW_ACL1#,0)
                ADDSTRING "Rückgabe von SetSecurityDescriptorDacl="+@STR$(Fehler&)
                ADDSTRING "Letzter API-Fehler="+@STR$(@GetLastError())
                LET FEHLER&=@SetFileSecurity(@ADDR(FileName$),$4,PSECURITY_DESCRIPTOR#)
                ADDSTRING "Rückgabe von SetFileSecurity="+@STR$(Fehler&)
                ADDSTRING "Letzter API-Fehler="+@STR$(@GetLastError())
                DISPOSE ACE#
                Dispose ACCOUNT_NAME#
                Dispose SIZE_ACCOUNT#
                Dispose Domain#
                Dispose SIZE_DOMAIN#
                Dispose SID_NAME_USE#
                Dispose P_ACE#
                Dispose ACL_INFO#

            endif

            Dispose PSECURITY_DESCRIPTOR#
            Dispose Needed#
            Dispose NEW_ACL1#
            Dispose ACL_PRESENT#
            Dispose P_ACL#
            Dispose ACL_D#
            Dispose SIDa#

        else

            ADDSTRING "Zugriff ist nicht einschränkbar"
            @Messagebox("Der Zugriff auf die angegebene Datei ist nicht einschränkbar!","Zugriff nicht einschränkbar!",16)

        endif

        Dispose Label#
        Dispose LFlags#
        DISPOSE DAT#
        Dispose STRSID#
        Dispose P_STRSID#

    else

        CASE FILENAME$="" : @Messagebox("DIe Prozedur benötigt einen Dateinamen!","Fehler beim 1.Parametern",16)
        CASE USER$="" : @Messagebox("DIe Prozedur benötigt einen User- oder Gruppennamen!","Fehler beim 2.Parametern",16)
        CASE @AND(@INSTR("+",Hinzu_entfernen$)=0,@INSTR("-",Hinzu_entfernen$)=0) : @Messagebox("DIe Prozedur benötigt ein + oder ein - als dritten Parameter!","Fehler beim 3.Parametern",16)

    endif

Endproc

Declare Datei$
LET DATEI$=@LoadFile$("Datei auswählen","*.*")
Set_ACE_IN_DACL Datei$,"Andreas","+0","SYNCHRONIZE FILE_WRITE_EA FILE_READ_EA FILE_READ_DATA FILE_WRITE_DATA FILE_APPEND_DATA FILE_EXECUTE FILE_READ_ATTRIBUTES FILE_WRITE_ATTRIBUTES F_DELETE"
Get_Group_Name "Jeder"
Set_ACE_IN_DACL Datei$,@$(0),"+","SYNCHRONIZE FILE_WRITE_EA FILE_READ_EA FILE_READ_DATA FILE_WRITE_DATA FILE_APPEND_DATA FILE_EXECUTE FILE_READ_ATTRIBUTES FILE_WRITE_ATTRIBUTES F_DELETE"
Get_Group_Name "Jeder&
/span> Set_ACE_IN_DACL File$,@$(0),"-","F_DELETE" Get_Group_Name "Administratoren" Set_ACE_IN_DACL File$,@$(0),"+","FILE_DELETE_CHILD,READ_CONTROL,ACCESS_SYSTEM_SECURITY,WRITE_OWNER,WRITE_DAC,F_DELETE,SYNCHRONIZE,FILE_WRITE_EA,FILE_READ_EA,FILE_READ_DATA,FILE_WRITE_DATA,FILE_APPEND_DATA,FILE_EXECUTE,FILE_READ_ATTRIBUTES,FILE_WRITE_ATTRIBUTES,F_DELETE" @Editbox("API Rückgaben",1)

 
05/21/05  
 



so?[quote:3d16bd5b50]Error Code IsValidSid=1
last API Fehler=0
Error Code LookupAccountSid=1
last API Fehler=997
eachone
****PROZEDUR launched****
Gewaehlte Datei=Cokumente and EinstellungenPackard BellDesktopwischenablage01.bmp
Gruppenname/Username=Jeder
To Addierende Rechte=...
SYNCHRONIZE FILE_WRITE_EA FILE_READ_EA FILE_READ_DATA FILE_WRITE_DATA FILE_APPEND_DATA FILE_EXECUTE FILE_READ_ATTRIBUTES FILE_WRITE_ATTRIBUTES F_DELETE
last API-Fehler=997
Raeckgabe of GetVolumeInformation=1
last API-Fehler=997
Laufwerksflags=1010000000011111111
Ausgelesene Partition=NTFS
grabbed is einschraenkbar
Raeckgabe of GetFileSecurity=0
last API-Fehler=122
Erforderliche Laenge the Security Descriptor=164
Raeckgabe of GetFileSecurity=1
last API-Fehler=0
Raeckgabe of IsValidSecurityDescriptor=1
last API-Fehler=0
Raeckgabe of GetSecurityDescriptorDacl=1
last API-Fehler=0
Raeckgabe of IsValidAcl faer whom DACL=1
last API-Fehler=0
DACL is present!
Raeckgabe of GetAclInformation=1
last API-Fehler=0
amount uses Bytes in DACL=88
amount suitor Bytes in DACL=0
ACEs in DACL=3
Graeße the 1.ACEs=36
ACE type the 1.ACEs=ACCESS_ALLOWED_ACE_TYPE
Error Code IsValidSid=1
last API Fehler=0
Raeckgabe of LookupAccountSid=1
last API-Fehler=997
Reset the API-Fehlers becomes durchgefaehrt
Raeckgabe of ConvertSidToStringSid=1
last API-Fehler=0
Raeckgabe of LocalFree faer whom String-SID=0
last API-Fehler=0
String-SID the 1. ACEs=S-1-5-21-789336058-1343024091-854245398-1004
1. ACE related on SID=Packard Bell
1. ACE related on Domainname=C4
Accessrechte the 1. ACEs=$1F01FF
right in the 1. ACE=FILE_ALL_ACCESS (Vollzugriff)
Graeße the 2.ACEs=20
ACE type the 2.ACEs=ACCESS_ALLOWED_ACE_TYPE
Error Code IsValidSid=1
last API Fehler=0
Raeckgabe of LookupAccountSid=1
last API-Fehler=997
Reset the API-Fehlers becomes durchgefaehrt
Raeckgabe of ConvertSidToStringSid=1
last API-Fehler=0
Raeckgabe of LocalFree faer whom String-SID=0
last API-Fehler=0
String-SID the 2. ACEs=S-1-5-18
2. ACE related on SID=SYSTEM
2. ACE related on Domainname=NT-AUTORITÄT
Accessrechte the 2. ACEs=$1F01FF
right in the 2. ACE=FILE_ALL_ACCESS (Vollzugriff)
Graeße the 3.ACEs=24
ACE type the 3.ACEs=ACCESS_ALLOWED_ACE_TYPE
Error Code IsValidSid=1
last API Fehler=0
Raeckgabe of LookupAccountSid=1
last API-Fehler=997
Reset the API-Fehlers becomes durchgefaehrt
Raeckgabe of ConvertSidToStringSid=1
last API-Fehler=0
Raeckgabe of LocalFree faer whom String-SID=0
last API-Fehler=0
String-SID the 3. ACEs=S-1-5-32-544
3. ACE related on SID=Administratoren
3. ACE related on Domainname=VORDEFINIERT
Accessrechte the 3. ACEs=$1F01FF
right in the 3. ACE=FILE_ALL_ACCESS (Vollzugriff)
Raeckgabe of LookupAccountName faer Jeder=0
last API-Fehler=122
Laenge the SIDs=12
Raeckgabe of LookupAccountName faer Jeder=1
last API-Fehler=997
Laenge the SIDs=12
Bytes faer ACL=108
Raeckgabe of InitializeAcl=1
last API-Fehler=997
Raeckgabe of GetSecurityDescriptorDacl=1
last API-Fehler=997
Raeckgabe of IsValidAcl faer whom DACL=1
last API-Fehler=997
DACL is present!
Raeckgabe of GetAclInformation=1
last API-Fehler=997
amount uses Bytes in DACL=88
amount suitor Bytes in DACL=0
ACEs in DACL=3
Graeße the 1.ACEs=36
ACE type the 1.ACEs=ACCESS_ALLOWED_ACE_TYPE
Vererbung=16
Error Code IsValidSid=1
last API Fehler=997
Raeckgabe of LookupAccountSid=0
last API-Fehler=1332
Reset the API-Fehlers becomes durchgefaehrt
1. ACE related on SID=
Accessrechte the 1. ACEs=$1F01FF
Raeckgabe of AddAce on point 0=0
last API-Fehler=87
Raeckgabe of IsValidAcl faer whom selbsterzeugten DACL=0
last API-Fehler=87
Graeße the 2.ACEs=20
ACE type the 2.ACEs=ACCESS_ALLOWED_ACE_TYPE
Vererbung=16
Error Code IsValidSid=1
last API Fehler=87
Raeckgabe of LookupAccountSid=1
last API-Fehler=997
Reset the API-Fehlers becomes durchgefaehrt
2. ACE related on SID=SYSTEM
Accessrechte the 2. ACEs=$1F01FF
Raeckgabe of AddAce on point 1=0
last API-Fehler=87
Raeckgabe of IsValidAcl faer whom selbsterzeugten DACL=0
last API-Fehler=87
Graeße the 3.ACEs=24
ACE type the 3.ACEs=ACCESS_ALLOWED_ACE_TYPE
Vererbung=16
Error Code IsValidSid=1
last API Fehler=87
Raeckgabe of LookupAccountSid=1
last API-Fehler=997
Reset the API-Fehlers becomes durchgefaehrt
3. ACE related on SID=Administratoren
Accessrechte the 3. ACEs=$1F01FF
Raeckgabe of AddAce on point 2=1
last API-Fehler=0
Raeckgabe of IsValidAcl faer whom selbsterzeugten DACL=1
last API-Fehler=0
with ALLOWED_ACE...
...To addierende Rechte=$1101BF
Raeckgabe of AddAce on point 3=1
last API-Fehler=0
Raeckgabe of IsValidAcl faer whom selbsterzeugten DACL=1
last API-Fehler=0
Raeckgabe of InitializeSecurityDescriptor=1
last API-Fehler=0
Raeckgabe of SetSecurityDescriptorDacl=1
last API-Fehler=0
Raeckgabe of SetFileSecurity=1
last API-Fehler=0
Error Code IsValidSid=1
last API Fehler=0
Error Code LookupAccountSid=1
last API Fehler=997
eachone
****PROZEDUR launched****
Gewaehlte Datei=Cokumente and EinstellungenPackard BellDesktopwischenablage01.bmp
Gruppenname/Username=Jeder
To Addierende Rechte=...
F_DELETE
last API-Fehler=997
Raeckgabe of GetVolumeInformation=1
last API-Fehler=997
Laufwerksflags=1010000000011111111
Ausgelesene Partition=NTFS
grabbed is einschraenkbar
Raeckgabe of GetFileSecurity=0
last API-Fehler=122
Erforderliche Laenge the Security Descriptor=184
Raeckgabe of GetFileSecurity=1
last API-Fehler=0
Raeckgabe of IsValidSecurityDescriptor=1
last API-Fehler=0
Raeckgabe of GetSecurityDescriptorDacl=1
last API-Fehler=0
Raeckgabe of IsValidAcl faer whom DACL=1
last API-Fehler=0
DACL is present!
Raeckgabe of GetAclInformation=1
last API-Fehler=0
amount uses Bytes in DACL=52
amount suitor Bytes in DACL=56
ACEs in DACL=2
Graeße the 1.ACEs=24
ACE type the 1.ACEs=ACCESS_ALLOWED_ACE_TYPE
Error Code IsValidSid=1
last API Fehler=0
Raeckgabe of LookupAccountSid=1
last API-Fehler=997
Reset the API-Fehlers becomes durchgefaehrt
Raeckgabe of ConvertSidToStringSid=1
last API-Fehler=0
Raeckgabe of LocalFree faer whom String-SID=0
last API-Fehler=0
String-SID the 1. ACEs=S-1-5-32-544
1. ACE related on SID=Administratoren
1. ACE related on Domainname=VORDEFINIERT
Accessrechte the 1. ACEs=$1F01FF
right in the 1. ACE=FILE_ALL_ACCESS (Vollzugriff)
Graeße the 2.ACEs=20
ACE type the 2.ACEs=ACCESS_ALLOWED_ACE_TYPE
Error Code IsValidSid=1
last API Fehler=0
Raeckgabe of LookupAccountSid=1
last API-Fehler=997
Reset the API-Fehlers becomes durchgefaehrt
Raeckgabe of ConvertSidToStringSid=1
last API-Fehler=0
Raeckgabe of LocalFree faer whom String-SID=0
last API-Fehler=0
String-SID the 2. ACEs=S-1-1-0
2. ACE related on SID=Jeder
2. ACE related on Domainname=
Accessrechte the 2. ACEs=$1101BF
right in the 2. ACE=FILE_READ_DATA (allows Data from one File To reading)
right in the 2. ACE=FILE_WRITE_DATA (allows data To Scheiben)
right in the 2. ACE=FILE_APPEND_DATA (allows data anzuhaengen)
right in the 2. ACE=FILE_READ_EA (allows erweiterte Attibute To reading)
right in the 2. ACE=FILE_WRITE_EA (allows erweiterte attributes To write)
right in the 2. ACE=FILE_EXECUTE (allows a File auszufaehren)
right in the 2. ACE=FILE_READ_ATTRIBUTES (reading the Fileattribute)
right in the 2. ACE=FILE_WRITE_ATTRIBUTES (Change the Fileattribute)
right in the 2. ACE=SYNCHRONIZE (allows one FileHandle on one Complitition I/O To Waiting)
right in the 2. ACE=_DELETE (File laeschen)
Raeckgabe of LookupAccountName faer Jeder=0
last API-Fehler=122
Laenge the SIDs=12
Raeckgabe of LookupAccountName faer Jeder=1
last API-Fehler=997
Laenge the SIDs=12
Bytes faer ACL=72
Raeckgabe of InitializeAcl=1
last API-Fehler=997
Raeckgabe of GetSecurityDescriptorDacl=1
last API-Fehler=997
Raeckgabe of IsValidAcl faer whom DACL=1
last API-Fehler=997
DACL is present!
Raeckgabe of GetAclInformation=1
last API-Fehler=997
amount uses Bytes in DACL=52
amount suitor Bytes in DACL=56
ACEs in DACL=2
Graeße the 1.ACEs=24
ACE type the 1.ACEs=ACCESS_ALLOWED_ACE_TYPE
Vererbung=16
Error Code IsValidSid=1
last API Fehler=997
Raeckgabe of LookupAccountSid=0
last API-Fehler=1332
Reset the API-Fehlers becomes durchgefaehrt
1. ACE related on SID=
Accessrechte the 1. ACEs=$1F01FF
Raeckgabe of AddAce on point 1=0
last API-Fehler=87
Raeckgabe of IsValidAcl faer whom selbsterzeugten DACL=0
last API-Fehler=87
Graeße the 2.ACEs=20
ACE type the 2.ACEs=ACCESS_ALLOWED_ACE_TYPE
Vererbung=0
Error Code IsValidSid=1
last API Fehler=87
Raeckgabe of LookupAccountSid=1
last API-Fehler=997
Reset the API-Fehlers becomes durchgefaehrt
2. ACE related on SID=Jeder
Accessrechte the 2. ACEs=$1101BF
with ALLOWED_ACE To addierende Rechte=$1001BF
Raeckgabe of AddAce on point 2=1
last API-Fehler=0
Raeckgabe of IsValidAcl faer whom selbsterzeugten DACL=1
last API-Fehler=0
with DENIED_ACE...
...To addierende Rechte=$10000
Raeckgabe of AddAce on point 0=1
last API-Fehler=0
Raeckgabe of IsValidAcl faer whom selbsterzeugten DACL=1
last API-Fehler=0
Raeckgabe of InitializeSecurityDescriptor=1
last API-Fehler=0
Raeckgabe of SetSecurityDescriptorDacl=1
last API-Fehler=0
Raeckgabe of SetFileSecurity=1
last API-Fehler=0
Error Code IsValidSid=1
last API Fehler=0
Error Code LookupAccountSid=1
last API Fehler=997
Administratoren
****PROZEDUR launched****
Gewaehlte Datei=Cokumente and EinstellungenPackard BellDesktopwischenablage01.bmp
Gruppenname/Username=Administratoren
To Addierende Rechte=...
FILE_DELETE_CHILD,READ_CONTROL,ACCESS_SYSTEM_SECURITY,WRITE_OWNER,WRITE_DAC,F_DELETE,SYNCHRONIZE,FILE_WRITE_EA,FILE_READ_EA,FILE_READ_DATA,FILE_WRITE_DATA,FILE_APPEND_DATA,FILE_EXECUTE,FILE_READ_ATTRIBUTES,FILE_WRITE_ATTRIBUTES,F_DELETE
last API-Fehler=997
Raeckgabe of GetVolumeInformation=1
last API-Fehler=997
Laufwerksflags=1010000000011111111
Ausgelesene Partition=NTFS
grabbed is einschraenkbar
Raeckgabe of GetFileSecurity=0
last API-Fehler=122
Erforderliche Laenge the Security Descriptor=148
Raeckgabe of GetFileSecurity=1
last API-Fehler=0
Raeckgabe of IsValidSecurityDescriptor=1
last API-Fehler=0
Raeckgabe of GetSecurityDescriptorDacl=1
last API-Fehler=0
Raeckgabe of IsValidAcl faer whom DACL=1
last API-Fehler=0
DACL is present!
Raeckgabe of GetAclInformation=1
last API-Fehler=0
amount uses Bytes in DACL=48
amount suitor Bytes in DACL=24
ACEs in DACL=2
Graeße the 1.ACEs=20
ACE type the 1.ACEs=ACCESS_DENIED_ACE_TYPE
Error Code IsValidSid=1
last API Fehler=0
Raeckgabe of LookupAccountSid=1
last API-Fehler=997
Reset the API-Fehlers becomes durchgefaehrt
Raeckgabe of ConvertSidToStringSid=1
last API-Fehler=0
Raeckgabe of LocalFree faer whom String-SID=0
last API-Fehler=0
String-SID the 1. ACEs=S-1-1-0
1. ACE related on SID=Jeder
1. ACE related on Domainname=
Accessrechte the 1. ACEs=$10000
right in the 1. ACE=_DELETE (File laeschen)
Graeße the 2.ACEs=20
ACE type the 2.ACEs=ACCESS_ALLOWED_ACE_TYPE
Error Code IsValidSid=1
last API Fehler=0
Raeckgabe of LookupAccountSid=1
last API-Fehler=997
Reset the API-Fehlers becomes durchgefaehrt
Raeckgabe of ConvertSidToStringSid=1
last API-Fehler=0
Raeckgabe of LocalFree faer whom String-SID=0
last API-Fehler=0
String-SID the 2. ACEs=S-1-1-0
2. ACE related on SID=Jeder
2. ACE related on Domainname=
Accessrechte the 2. ACEs=$1001BF
right in the 2. ACE=FILE_READ_DATA (allows Data from one File To reading)
right in the 2. ACE=FILE_WRITE_DATA (allows data To Scheiben)
right in the 2. ACE=FILE_APPEND_DATA (allows data anzuhaengen)
right in the 2. ACE=FILE_READ_EA (allows erweiterte Attibute To reading)
right in the 2. ACE=FILE_WRITE_EA (allows erweiterte attributes To write)
right in the 2. ACE=FILE_EXECUTE (allows a File auszufaehren)
right in the 2. ACE=FILE_READ_ATTRIBUTES (reading the Fileattribute)
right in the 2. ACE=FILE_WRITE_ATTRIBUTES (Change the Fileattribute)
right in the 2. ACE=SYNCHRONIZE (allows one FileHandle on one Complitition I/O To Waiting)
Raeckgabe of LookupAccountName faer Administratoren=0
last API-Fehler=122
Laenge the SIDs=16
Raeckgabe of LookupAccountName faer Administratoren=1
last API-Fehler=997
Laenge the SIDs=16
Bytes faer ACL=72
Raeckgabe of InitializeAcl=1
last API-Fehler=997
Raeckgabe of GetSecurityDescriptorDacl=1
last API-Fehler=997
Raeckgabe of IsValidAcl faer whom DACL=1
last API-Fehler=997
DACL is present!
Raeckgabe of GetAclInformation=1
last API-Fehler=997
amount uses Bytes in DACL=48
amount suitor Bytes in DACL=24
ACEs in DACL=2
Graeße the 1.ACEs=20
ACE type the 1.ACEs=ACCESS_DENIED_ACE_TYPE
Vererbung=0
Error Code IsValidSid=1
last API Fehler=997
Raeckgabe of LookupAccountSid=1
last API-Fehler=997
Reset the API-Fehlers becomes durchgefaehrt
1. ACE related on SID=Jeder
Accessrechte the 1. ACEs=$10000
Raeckgabe of AddAce on point 0=1
last API-Fehler=0
Raeckgabe of IsValidAcl faer whom selbsterzeugten DACL=1
last API-Fehler=0
Graeße the 2.ACEs=20
ACE type the 2.ACEs=ACCESS_ALLOWED_ACE_TYPE
Vererbung=0
Error Code IsValidSid=1
last API Fehler=0
Raeckgabe of LookupAccountSid=1
last API-Fehler=997
Reset the API-Fehlers becomes durchgefaehrt
2. ACE related on SID=Jeder
Accessrechte the 2. ACEs=$1001BF
Raeckgabe of AddAce on point 1=1
last API-Fehler=0
Raeckgabe of IsValidAcl faer whom selbsterzeugten DACL=1
last API-Fehler=0
with ALLOWED_ACE...
...To addierende Rechte=$11F01FF
Raeckgabe of AddAce on point 2=1
last API-Fehler=0
Raeckgabe of IsValidAcl faer whom selbsterzeugten DACL=1
last API-Fehler=0
Raeckgabe of InitializeSecurityDescriptor=1
last API-Fehler=0
Raeckgabe of SetSecurityDescriptorDacl=1
last API-Fehler=0
Raeckgabe of SetFileSecurity=1
last API-Fehler=0[/quote:3d16bd5b50]salvo.
 
05/21/05  
 



Hello IF...

Füge the File please times over the WindowsExplorer 2 further ACLs hinzu.
as driien appeal füge then time your Usernamen one and let The filled rights give (How with Andreas).
Starte still once The procedure...
If you then The ACLS in the windows Explorer viewing - get tappt im dunkeln correctly. staid???
 
05/21/05  
 



 
- Page 2 -


the have You me already X-time gebeten. I can nothing settle - still not. me missing the besagte DLG. god white Why - be UpToDate.

on the XPPro komm I strain net ran. Sorry.

salvo.
 
05/21/05  
 



Hello IF...

alas you were the . Gibts whom under XPHome not?
 
05/21/05  
 



over again @IF...

The 1332 Error LookupAccountName power me yet something care, I thought, whom had I eliminating. have you got evtl. The previous Version too tested? if so, Please once more testing.
 
05/21/05  
 



here the Result the vorletzten Sources from you:[quote:6bcedcfeac]Error Code IsValidSid=1
last API Fehler=0
Error Code LookupAccountSid=1
last API Fehler=997
eachone
****PROZEDUR launched****
chosen Datei=Cokumente and EinstellungenPackard BellDesktopzeichen.jpg
Gruppenname/Username=Jeder
To Addierende Rechte=...
SYNCHRONIZE FILE_WRITE_EA FILE_READ_EA FILE_READ_DATA FILE_WRITE_DATA FILE_APPEND_DATA FILE_EXECUTE FILE_READ_ATTRIBUTES FILE_WRITE_ATTRIBUTES F_DELETE
last API-Fehler=997
Return of GetVolumeInformation=1
last API-Fehler=997
Laufwerksflags=1010000000011111111
Ausgelesene Partition=NTFS
grabbed is einschränkbar
Return of GetFileSecurity=0
last API-Fehler=122
Erforderliche length the Security Descriptor=164
Return of GetFileSecurity=1
last API-Fehler=0
Return of IsValidSecurityDescriptor=1
last API-Fehler=0
Return of GetSecurityDescriptorDacl=1
last API-Fehler=0
Return of IsValidAcl for DACL=1
last API-Fehler=0
DACL is present!
Return of GetAclInformation=1
last API-Fehler=0
amount uses Bytes in DACL=88
amount suitor Bytes in DACL=0
ACEs in DACL=3
Size the 1.ACEs=36
ACE type the 1.ACEs=ACCESS_ALLOWED_ACE_TYPE
Error Code IsValidSid=1
last API Fehler=0
Return of LookupAccountSid=1
last API-Fehler=997
Reset the API-Fehlers becomes implemented
Return of ConvertSidToStringSid=1
last API-Fehler=0
Return of LocalFree for String-SID=0
last API-Fehler=0
String-SID the 1. ACEs=S-1-5-21-789336058-1343024091-854245398-1004
1. ACE related on SID=Packard Bell
1. ACE related on Domainname=C4
Accessrechte the 1. ACEs=$1F01FF
right in the 1. ACE=FILE_ALL_ACCESS (Vollzugriff)
Size the 2.ACEs=20
ACE type the 2.ACEs=ACCESS_ALLOWED_ACE_TYPE
Error Code IsValidSid=1
last API Fehler=0
Return of LookupAccountSid=1
last API-Fehler=997
Reset the API-Fehlers becomes implemented
Return of ConvertSidToStringSid=1
last API-Fehler=0
Return of LocalFree for String-SID=0
last API-Fehler=0
String-SID the 2. ACEs=S-1-5-18
2. ACE related on SID=SYSTEM
2. ACE related on Domainname=NT-AUTORITÄT
Accessrechte the 2. ACEs=$1F01FF
right in the 2. ACE=FILE_ALL_ACCESS (Vollzugriff)
Size the 3.ACEs=24
ACE type the 3.ACEs=ACCESS_ALLOWED_ACE_TYPE
Error Code IsValidSid=1
last API Fehler=0
Return of LookupAccountSid=1
last API-Fehler=997
Reset the API-Fehlers becomes implemented
Return of ConvertSidToStringSid=1
last API-Fehler=0
Return of LocalFree for String-SID=0
last API-Fehler=0
String-SID the 3. ACEs=S-1-5-32-544
3. ACE related on SID=Administratoren
3. ACE related on Domainname=VORDEFINIERT
Accessrechte the 3. ACEs=$1F01FF
right in the 3. ACE=FILE_ALL_ACCESS (Vollzugriff)
Return of LookupAccountName for Jeder=0
last API-Fehler=122
length the SIDs=12
Return of LookupAccountName for Jeder=1
last API-Fehler=997
length the SIDs=12
Bytes for ACL=108
Return of InitializeAcl=1
last API-Fehler=997
Return of GetSecurityDescriptorDacl=1
last API-Fehler=997
Return of IsValidAcl for DACL=1
last API-Fehler=997
DACL is present!
Return of GetAclInformation=1
last API-Fehler=997
amount uses Bytes in DACL=88
amount suitor Bytes in DACL=0
ACEs in DACL=3
Size the 1.ACEs=36
ACE type the 1.ACEs=ACCESS_ALLOWED_ACE_TYPE
Vererbung=16
Error Code IsValidSid=1
last API Fehler=997
Return of LookupAccountSid=0
last API-Fehler=1332
Reset the API-Fehlers becomes implemented
1. ACE related on SID=
Accessrechte the 1. ACEs=$1F01FF
Return of AddAce on point 0=0
last API-Fehler=87
Return of IsValidAcl for selbsterzeugten DACL=0
last API-Fehler=87
Size the 2.ACEs=20
ACE type the 2.ACEs=ACCESS_ALLOWED_ACE_TYPE
Vererbung=16
Error Code IsValidSid=1
last API Fehler=87
Return of LookupAccountSid=1
last API-Fehler=997
Reset the API-Fehlers becomes implemented
2. ACE related on SID=SYSTEM
Accessrechte the 2. ACEs=$1F01FF
Return of AddAce on point 1=0
last API-Fehler=87
Return of IsValidAcl for selbsterzeugten DACL=0
last API-Fehler=87
Size the 3.ACEs=24
ACE type the 3.ACEs=ACCESS_ALLOWED_ACE_TYPE
Vererbung=16
Error Code IsValidSid=1
last API Fehler=87
Return of LookupAccountSid=1
last API-Fehler=997
Reset the API-Fehlers becomes implemented
3. ACE related on SID=Administratoren
Accessrechte the 3. ACEs=$1F01FF
Return of AddAce on point 2=1
last API-Fehler=0
Return of IsValidAcl for selbsterzeugten DACL=1
last API-Fehler=0
with ALLOWED_ACE...
...To addierende Rechte=$1101BF
Return of AddAce on point 3=1
last API-Fehler=0
Return of IsValidAcl for selbsterzeugten DACL=1
last API-Fehler=0
Return of InitializeSecurityDescriptor=1
last API-Fehler=0
Return of SetSecurityDescriptorDacl=1
last API-Fehler=0
Return of SetFileSecurity=1
last API-Fehler=0
Error Code IsValidSid=1
last API Fehler=0
Error Code LookupAccountSid=1
last API Fehler=997
eachone
****PROZEDUR launched****
chosen Datei=Cokumente and EinstellungenPackard BellDesktopzeichen.jpg
Gruppenname/Username=Jeder
To Addierende Rechte=...
F_DELETE
last API-Fehler=997
Return of GetVolumeInformation=1
last API-Fehler=997
Laufwerksflags=1010000000011111111
Ausgelesene Partition=NTFS
grabbed is einschränkbar
Return of GetFileSecurity=0
last API-Fehler=122
Erforderliche length the Security Descriptor=184
Return of GetFileSecurity=1
last API-Fehler=0
Return of IsValidSecurityDescriptor=1
last API-Fehler=0
Return of GetSecurityDescriptorDacl=1
last API-Fehler=0
Return of IsValidAcl for DACL=1
last API-Fehler=0
DACL is present!
Return of GetAclInformation=1
last API-Fehler=0
amount uses Bytes in DACL=52
amount suitor Bytes in DACL=56
ACEs in DACL=2
Size the 1.ACEs=24
ACE type the 1.ACEs=ACCESS_ALLOWED_ACE_TYPE
Error Code IsValidSid=1
last API Fehler=0
Return of LookupAccountSid=1
last API-Fehler=997
Reset the API-Fehlers becomes implemented
Return of ConvertSidToStringSid=1
last API-Fehler=0
Return of LocalFree for String-SID=0
last API-Fehler=0
String-SID the 1. ACEs=S-1-5-32-544
1. ACE related on SID=Administratoren
1. ACE related on Domainname=VORDEFINIERT
Accessrechte the 1. ACEs=$1F01FF
right in the 1. ACE=FILE_ALL_ACCESS (Vollzugriff)
Size the 2.ACEs=20
ACE type the 2.ACEs=ACCESS_ALLOWED_ACE_TYPE
Error Code IsValidSid=1
last API Fehler=0
Return of LookupAccountSid=1
last API-Fehler=997
Reset the API-Fehlers becomes implemented
Return of ConvertSidToStringSid=1
last API-Fehler=0
Return of LocalFree for String-SID=0
last API-Fehler=0
String-SID the 2. ACEs=S-1-1-0
2. ACE related on SID=Jeder
2. ACE related on Domainname=
Accessrechte the 2. ACEs=$1101BF
right in the 2. ACE=FILE_READ_DATA (allows Data from one File To reading)
right in the 2. ACE=FILE_WRITE_DATA (allows data To Scheiben)
right in the 2. ACE=FILE_APPEND_DATA (allows data anzuhängen)
right in the 2. ACE=FILE_READ_EA (allows erweiterte Attibute To reading)
right in the 2. ACE=FILE_WRITE_EA (allows erweiterte attributes To write)
right in the 2. ACE=FILE_EXECUTE (allows a File to execute)
right in the 2. ACE=FILE_READ_ATTRIBUTES (reading the Fileattribute)
right in the 2. ACE=FILE_WRITE_ATTRIBUTES (Change the Fileattribute)
right in the 2. ACE=SYNCHRONIZE (allows one FileHandle on one Complitition I/O To Waiting)
right in the 2. ACE=_DELETE (File delete)
Return of LookupAccountName for Jeder=0
last API-Fehler=122
length the SIDs=12
Return of LookupAccountName for Jeder=1
last API-Fehler=997
length the SIDs=12
Bytes for ACL=72
Return of InitializeAcl=1
last API-Fehler=997
Return of GetSecurityDescriptorDacl=1
last API-Fehler=997
Return of IsValidAcl for DACL=1
last API-Fehler=997
DACL is present!
Return of GetAclInformation=1
last API-Fehler=997
amount uses Bytes in DACL=52
amount suitor Bytes in DACL=56
ACEs in DACL=2
Size the 1.ACEs=24
ACE type the 1.ACEs=ACCESS_ALLOWED_ACE_TYPE
Vererbung=16
Error Code IsValidSid=1
last API Fehler=997
Return of LookupAccountSid=0
last API-Fehler=1332
Reset the API-Fehlers becomes implemented
1. ACE related on SID=
Accessrechte the 1. ACEs=$1F01FF
Return of AddAce on point 1=0
last API-Fehler=87
Return of IsValidAcl for selbsterzeugten DACL=0
last API-Fehler=87
Size the 2.ACEs=20
ACE type the 2.ACEs=ACCESS_ALLOWED_ACE_TYPE
Vererbung=0
Error Code IsValidSid=1
last API Fehler=87
Return of LookupAccountSid=1
last API-Fehler=997
Reset the API-Fehlers becomes implemented
2. ACE related on SID=Jeder
Accessrechte the 2. ACEs=$1101BF
with ALLOWED_ACE To addierende Rechte=$1001BF
Return of AddAce on point 2=1
last API-Fehler=0
Return of IsValidAcl for selbsterzeugten DACL=1
last API-Fehler=0
with DENIED_ACE...
...To addierende Rechte=$10000
Return of AddAce on point 0=1
last API-Fehler=0
Return of IsValidAcl for selbsterzeugten DACL=1
last API-Fehler=0
Return of InitializeSecurityDescriptor=1
last API-Fehler=0
Return of SetSecurityDescriptorDacl=1
last API-Fehler=0
Return of SetFileSecurity=1
last API-Fehler=0
Error Code IsValidSid=1
last API Fehler=0
Error Code LookupAccountSid=1
last API Fehler=997
Administratoren
****PROZEDUR launched****
chosen Datei=Cokumente and EinstellungenPackard BellDesktopzeichen.jpg
Gruppenname/Username=Administratoren
To Addierende Rechte=...
FILE_DELETE_CHILD,READ_CONTROL,ACCESS_SYSTEM_SECURITY,WRITE_OWNER,WRITE_DAC,F_DELETE,SYNCHRONIZE,FILE_WRITE_EA,FILE_READ_EA,FILE_READ_DATA,FILE_WRITE_DATA,FILE_APPEND_DATA,FILE_EXECUTE,FILE_READ_ATTRIBUTES,FILE_WRITE_ATTRIBUTES,F_DELETE
last API-Fehler=997
Return of GetVolumeInformation=1
last API-Fehler=997
Laufwerksflags=1010000000011111111
Ausgelesene Partition=NTFS
grabbed is einschränkbar
Return of GetFileSecurity=0
last API-Fehler=122
Erforderliche length the Security Descriptor=148
Return of GetFileSecurity=1
last API-Fehler=0
Return of IsValidSecurityDescriptor=1
last API-Fehler=0
Return of GetSecurityDescriptorDacl=1
last API-Fehler=0
Return of IsValidAcl for DACL=1
last API-Fehler=0
DACL is present!
Return of GetAclInformation=1
last API-Fehler=0
amount uses Bytes in DACL=48
amount suitor Bytes in DACL=24
ACEs in DACL=2
Size the 1.ACEs=20
ACE type the 1.ACEs=ACCESS_DENIED_ACE_TYPE
Error Code IsValidSid=1
last API Fehler=0
Return of LookupAccountSid=1
last API-Fehler=997
Reset the API-Fehlers becomes implemented
Return of ConvertSidToStringSid=1
last API-Fehler=0
Return of LocalFree for String-SID=0
last API-Fehler=0
String-SID the 1. ACEs=S-1-1-0
1. ACE related on SID=Jeder
1. ACE related on Domainname=
Accessrechte the 1. ACEs=$10000
right in the 1. ACE=_DELETE (File delete)
Size the 2.ACEs=20
ACE type the 2.ACEs=ACCESS_ALLOWED_ACE_TYPE
Error Code IsValidSid=1
last API Fehler=0
Return of LookupAccountSid=1
last API-Fehler=997
Reset the API-Fehlers becomes implemented
Return of ConvertSidToStringSid=1
last API-Fehler=0
Return of LocalFree for String-SID=0
last API-Fehler=0
String-SID the 2. ACEs=S-1-1-0
2. ACE related on SID=Jeder
2. ACE related on Domainname=
Accessrechte the 2. ACEs=$1001BF
right in the 2. ACE=FILE_READ_DATA (allows Data from one File To reading)
right in the 2. ACE=FILE_WRITE_DATA (allows data To Scheiben)
right in the 2. ACE=FILE_APPEND_DATA (allows data anzuhängen)
right in the 2. ACE=FILE_READ_EA (allows erweiterte Attibute To reading)
right in the 2. ACE=FILE_WRITE_EA (allows erweiterte attributes To write)
right in the 2. ACE=FILE_EXECUTE (allows a File to execute)
right in the 2. ACE=FILE_READ_ATTRIBUTES (reading the Fileattribute)
right in the 2. ACE=FILE_WRITE_ATTRIBUTES (Change the Fileattribute)
right in the 2. ACE=SYNCHRONIZE (allows one FileHandle on one Complitition I/O To Waiting)
Return of LookupAccountName for Administratoren=0
last API-Fehler=122
length the SIDs=16
Return of LookupAccountName for Administratoren=1
last API-Fehler=997
length the SIDs=16
Bytes for ACL=72
Return of InitializeAcl=1
last API-Fehler=997
Return of GetSecurityDescriptorDacl=1
last API-Fehler=997
Return of IsValidAcl for DACL=1
last API-Fehler=997
DACL is present!
Return of GetAclInformation=1
last API-Fehler=997
amount uses Bytes in DACL=48
amount suitor Bytes in DACL=24
ACEs in DACL=2
Size the 1.ACEs=20
ACE type the 1.ACEs=ACCESS_DENIED_ACE_TYPE
Vererbung=0
Error Code IsValidSid=1
last API Fehler=997
Return of LookupAccountSid=1
last API-Fehler=997
Reset the API-Fehlers becomes implemented
1. ACE related on SID=Jeder
Accessrechte the 1. ACEs=$10000
Return of AddAce on point 0=1
last API-Fehler=0
Return of IsValidAcl for selbsterzeugten DACL=1
last API-Fehler=0
Size the 2.ACEs=20
ACE type the 2.ACEs=ACCESS_ALLOWED_ACE_TYPE
Vererbung=0
Error Code IsValidSid=1
last API Fehler=0
Return of LookupAccountSid=1
last API-Fehler=997
Reset the API-Fehlers becomes implemented
2. ACE related on SID=Jeder
Accessrechte the 2. ACEs=$1001BF
Return of AddAce on point 1=1
last API-Fehler=0
Return of IsValidAcl for selbsterzeugten DACL=1
last API-Fehler=0
with ALLOWED_ACE...
...To addierende Rechte=$11F01FF
Return of AddAce on point 2=1
last API-Fehler=0
Return of IsValidAcl for selbsterzeugten DACL=1
last API-Fehler=0
Return of InitializeSecurityDescriptor=1
last API-Fehler=0
Return of SetSecurityDescriptorDacl=1
last API-Fehler=0
Return of SetFileSecurity=1
last API-Fehler=0[/quote:6bcedcfeac]the Result the last Sources from you is the previous.

salvo.
 
05/21/05  
 



best Thanks! Have whom Error. so runs (hopefully) tadellos.
CompileMarkSeparation
DEF @SetFileSecurity(3) !"ADVAPI32","SetFileSecurityA"
DEF @InitializeSecurityDescriptor(2) !"ADVAPI32","InitializeSecurityDescriptor"
DEF @SetSecurityDescriptorDacl(4) !"ADVAPI32","SetSecurityDescriptorDacl"
DEF @AddAce(5) !"ADVAPI32","AddAce"
DEF @LookupAccountName(7) !"advapi32","LookupAccountNameA"
DEF @GetFileSecurity(5) !"ADVAPI32","GetFileSecurityA"
DEF @GetLastError(0) !"KERNEL32","GetLastError"
DEF @SetLastError(1) !"KERNEL32","SetLastError"
DEF @LookupPrivilegeName(4)!"advapi32","LookupPrivilegeNameA" Ermittelt aus dem Luid eines Privilegs dessen Namen.
DEF @LookupPrivilegeValue(3) !"advapi32","LookupPrivilegeValueA" Ermittelt aus dem Namen eines Privilegs dessen Luid.
DEF @OpenProcessToken(3) !"advapi32","OpenProcessToken" Öffnet Einstellprozess.
DEF @AdjustTokenPrivileges(6) !"advapi32","AdjustTokenPrivileges" Stellt Privilegien ein.
DEF @GetCurrentProcess(0) !"kernel32","GetCurrentProcess" Ermittel das Handle des aktiven Prozesses.
DEF @CloseHandle(1) !"kernel32","CloseHandle" Schließt ein Handle (Programm).
Def @GetVolumeInformation(8) !"KERNEL32","GetVolumeInformationA"
DEF @GetSecurityDescriptorOwner(3) !"ADVAPI32","GetSecurityDescriptorOwner"
DEF @GetSecurityDescriptorGroup(3) !"ADVAPI32","GetSecurityDescriptorGroup"
DEF @GetSecurityDescriptorDACL(4) !"ADVAPI32","GetSecurityDescriptorDacl"
DEF @GetSecurityDescriptorSACL(4) !"ADVAPI32","GetSecurityDescriptorSacl"
DEF @LookupAccountSid(7) !"ADVAPI32","LookupAccountSidA"
DEF @IsValidSecurityDescriptor(1) !"ADVAPI32","IsValidSecurityDescriptor"
DEF @IsValidSid(1) !"ADVAPI32","IsValidSid"
DEF @IsValidAcl(1) !"ADVAPI32","IsValidAcl"
DEF @GetAclInformation(4) !"ADVAPI32","GetAclInformation"
DEF @CopyMemory(3) !"kernel32","RtlMoveMemory"
DEF @GetAce(3) !"ADVAPI32","GetAce"
DEF @ConvertSidToStringSid(2) !"ADVAPI32","ConvertSidToStringSidA"
DEF @LocalFree(1) !"KERNEL32","LocalFree"
DEF @InitializeAcl(3) !"ADVAPI32","InitializeAcl"
Declare Fehler&

Proc GET_Group_Name

    Parameters Name$
    Declare SYS$,SEC_ID#,CBNAME_SIZE#,CBNAME#,ReferencedDomainName#,RDN_SIZE#
    Declare SID_NAME_USE#,CBNAME$
    SID wird erstellt.

    IF @UPPER$(Name$)="JEDER"

        DIM SEC_ID#,12

    ElseIF @UPPER$(Name$)="ADMINISTRATOREN"

        DIM SEC_ID#,16

    else

        DIM SEC_ID#,12
        @Messagebox("Falscher Parameter!","Fehler",16)

    endif

    DIM CBNAME_SIZE#,4
    DIM CBNAME#,256
    DIM ReferencedDomainName#,256
    DIM RDN_SIZE#,4
    DIM SID_NAME_USE#,4
    Clear SYS$,SID_NAME_USE#,CBNAME#,ReferencedDomainName#,SEC_ID#

    IF @UPPER$(Name$)="JEDER"

        LONG SEC_ID#,0=257
        LONG SEC_ID#,4=16777216
        LONG SEC_ID#,8=0

    elseIF @UPPER$(Name$)="ADMINISTRATOREN"

        LONG SEC_ID#,0=513
        LONG SEC_ID#,4=83886080
        LONG SEC_ID#,8=32
        LONG SEC_ID#,12=544

    endif

    LONG CBNAME_SIZE#,0=256
    LONG RDN_SIZE#,0=256
    LET Fehler&=@IsValidSid(SEC_ID#)
    ADDSTRING "Fehlercode IsValidSid="+@STR$(FEHLER&)
    ADDSTRING "Letzter API Fehler="+@STR$(@GetLastError())
    CASE FEHLER&=1 : LET FEHLER&=@LookupAccountSid(@ADDR(SYS$),SEC_ID#,CBNAME#,CBNAME_SIZE#,ReferencedDomainName#,RDN_SIZE#,SID_NAME_USE#)
    ADDSTRING "Fehlercode LookupAccountSid="+@STR$(FEHLER&)
    ADDSTRING "Letzter API Fehler="+@STR$(@GetLastError())
    ADDSTRING @STRING$(CBNAME#,0)
    LET CBNAME$=@STRING$(CBNAME#,0)
    Dispose SID_NAME_USE#
    Dispose RDN_SIZE#
    Dispose ReferencedDomainName#
    Dispose CBNAME#
    DISPOSE SEC_ID#
    DISPOSE CBNAME_SIZE#
    Return CBNAME$

endproc

Proc Set_ACE_IN_DACL

    Parameters FileName$,User$,Hinzu_entfernen$,FSFlags$
    1.Parameter= Dateiname
    2.Parameter= Username
    3.Parameter= +;-;0 (+=Rechte entfernen, -=hinzufügen, 0=alles vorhandene löschen)
    4.Parameter= Flags als String
    Mögliche Flags
    FILE_READ_DATA (Erlaubt Daten aus einem File zu lesen)
    FILE_WRITE_DATA (Erlaubt Daten zu Scheiben)
    FILE_APPEND_DATA (Erlaubt Daten anzuhängen)
    FILE_READ_EA (Erlaubt erweiterte Attibute zu lesen)
    FILE_WRITE_EA (Erlaubt erweiterte Attribute zu schreiben)
    FILE_EXECUTE (Erlaubt eine Datei auszuführen)
    FILE_READ_ATTRIBUTES (Lesen der Fileattribute)
    FILE_WRITE_ATTRIBUTES (Ändern der Fileattribute)
    WRITE_DAC (Ändern der DACL Einträge)
    READ_CONTROL (Lesen der DACL Einträge und Besitzer)
    SYNCHRONIZE (Erlaubt einem FileHandle auf ein Complitition I/O zu warten)
    File_Delete_CHILD (Erlaubt einen Unterordner zu löschen - für Dateien keine Bedeutung)
    ACCESS_SYSTEM_SECURITY (Erlaubt den Zugriff auf den SACL)
    WRITE_OWNER (Eigentümer ändern)
    F_DELETE (Datei löschen)
    ADDSTRING "****PROZEDUR gestartet****"

    IF @AND(Filename$<>"",@AND(USER$<>"",@OR(@INSTR("+",Hinzu_entfernen$)>0,@INSTR("-",Hinzu_entfernen$)>0)))

        Declare NEW_ACL1#,SIDA#
        Declare PSECURITY_DESCRIPTOR#,Needed#,Needed&
        Declare Laufwerk$,Label#,LFLAGS#,DAT#
        DEclare SID#,GFLAG#,System$,FSFlags&
        DEclare ACCOUNT_NAME#,SIZE_ACCOUNT#,Domain#,SIZE_DOMAIN#,SID_NAME_USE#
        Declare Test&,ANZAHL_BYTES&
        Declare ACL_PRESENT#,P_ACL#,ACL_D#
        Declare ACL_INFO#,Zähler&,ACE#,P_ACE#,ACE_SIZE&,STRSID#,P_STRSID#
        Declare SID2#,IO%,SecFlag&,ACCESS_MASK&
        Declare Vorhanden&,Needed#,SecFlag&,NEEDED&
        Declare PSECURITY_DESCRIPTOR#,ACL_PRESENT#,P_ACL#,ACL_D#
        DEclare ACCOUNT_NAME#,SIZE_ACCOUNT#,Domain#,SIZE_DOMAIN#,SID_NAME_USE#
        Declare ACE_ZÄHLER&,SIZE_ACCOUNT&
        Clear Needed&
        Clear Laufwerk$
        Clear System$,FSFlags&
        Clear Test&,ANZAHL_BYTES&
        Clear Zähler&,ACE_SIZE&
        Clear SecFlag&,ACCESS_MASK&
        Clear Vorhanden&,SecFlag&,NEEDED&
        Clear ACE_ZÄHLER&,SIZE_ACCOUNT&
        LET FSFlags&=0
        LET LAUFWERK$=@LEFT$(Filename$,3)
        DIM Label#,256
        DIM LFLAGS#,4
        DIM DAT#,256
        DIM STRSID#,256
        DIM P_STRSID#,4
        DIM Needed#,4
        ADDSTRING "Gewählte Datei="+Filename$
        ADDSTRING "Gruppenname/Username="+USER$
        ADDSTRING "Zu Addierende Rechte=..."
        ADDSTRING FSFLAGS$
        ADDSTRING "Letzter API-Fehler="+@STR$(@GetLastError())
        LET FEHLER&=@GetVolumeInformation(@ADDR(Laufwerk$),Label#,256,0,0,LFlags#,DAT#,256)
        ADDSTRING "Rückgabe von GetVolumeInformation="+@STR$(Fehler&)
        ADDSTRING "Letzter API-Fehler="+@STR$(@GetLastError())
        ADDSTRING "Laufwerksflags="+@BIN$(@LONG(LFLAGS#,0))
        ADDSTRING "Ausgelesene Partition="+@String$(Dat#,0)

        IF @LONG(LFLAGS#,0) | $8 = @LONG(LFLAGS#,0)

            DIM SIDa#,1
            ADDSTRING "Zugriff ist einschränkbar"
            LET SECFLAG&=$1 | $2 | $4
            Clear Needed#
            LET Fehler&=@GetFileSecurity(@ADDR(Filename$),SecFlag&,0,0,Needed#)
            ADDSTRING "Rückgabe von GetFileSecurity="+@STR$(Fehler&)
            ADDSTRING "Letzter API-Fehler="+@STR$(@GetLastError())
            LET NEEDED&=@LONG(Needed#,0)
            ADDSTRING "Erforderliche Länge des Security Descriptor="+@STR$(Needed&)
            CASE NEEDED&=0 : LET NEEDED&=1024
            DIM PSECURITY_DESCRIPTOR#,Needed&
            Clear PSECURITY_DESCRIPTOR#
            @SetLastError(0)
            LET Fehler&=@GetFileSecurity(@ADDR(Filename$),SECFLAG&,PSECURITY_DESCRIPTOR#,NEEDED&,Needed#)
            ADDSTRING "Rückgabe von GetFileSecurity="+@STR$(Fehler&)
            ADDSTRING "Letzter API-Fehler="+@STR$(@GetLastError())
            LET Fehler&=@IsValidSecurityDescriptor(PSECURITY_DESCRIPTOR#)
            ADDSTRING "Rückgabe von IsValidSecurityDescriptor="+@STR$(Fehler&)
            ADDSTRING "Letzter API-Fehler="+@STR$(@GetLastError())
            DIM ACL_PRESENT#,1
            DIM P_ACL#,4
            DIM ACL_D#,4
            Clear ACL_PRESENT#,P_ACL#,ACL_D#
            Let Fehler&=@GetSecurityDescriptorDacl(PSECURITY_DESCRIPTOR#,ACL_PRESENT#,P_ACL#,ACL_D#)
            ADDSTRING "Rückgabe von GetSecurityDescriptorDacl="+@STR$(Fehler&)
            ADDSTRING "Letzter API-Fehler="+@STR$(@GetLastError())
            LET Fehler&=@IsValidAcl(@long(P_ACL#,0))
            ADDSTRING "Rückgabe von IsValidAcl für den DACL="+@STR$(Fehler&)
            ADDSTRING "Letzter API-Fehler="+@STR$(@GetLastError())

            IF @LONG(ACL_PRESENT#,0)=1

                ADDSTRING "DACL ist vorhanden!"

            else

                ADDSTRING "DACL ist nicht vorhanden!"

            endif

            LET ANZAHL_BYTES&=8 Für ACL HEADER 8 Bytes veranschlagt

            IF @AND(Fehler&=1,@LONG(ACL_PRESENT#,0)=1)

                DIM ACL_INFO#,12
                DIM P_ACE#,4
                CLEAR ACL_INFO#,P_ACE#
                Let Fehler&=@GetAclInformation(@long(P_ACL#,0),ACL_INFO#,12,2)
                ADDSTRING "Rückgabe von GetAclInformation="+@STR$(Fehler&)
                ADDSTRING "Letzter API-Fehler="+@STR$(@GetLastError())
                ADDSTRING "Anzahl benutzter Bytes in DACL="+@STR$(@LONG(ACL_INFO#,4))
                ADDSTRING "Anzahl freier Bytes in DACL="+@STR$(@LONG(ACL_INFO#,8))
                ADDSTRING "ACEs in DACL="+@STR$(@LONG(ACL_INFO#,0))
                LET Zähler&=0
                DIM ACCOUNT_NAME#,256
                DIM SIZE_ACCOUNT#,4
                DIM Domain#,256
                DIM SIZE_DOMAIN#,4
                DIM SID_NAME_USE#,4

                IF @STR$(@LONG(ACL_INFO#,0))<>0

                    While Zähler&<@LONG(ACL_INFO#,0)

                        Clear P_ACE#
                        Let Fehler&=@GetAce(@long(P_ACL#,0),Zähler&,P_ACE#)
                        DIM ACE#,4
                        Clear ACE#
                        @CopyMemory(ACE#,@LONG(P_ACE#,0),4)
                        LET ACE_SIZE&=@Word(ACE#,2) Die Größen aller ACEs werden addiert.
                        ADDSTRING "Größe des "+@STR$(@INT(Zähler&+1))+".ACEs="+@STR$(@Word(ACE#,2))
                        LET ANZAHL_BYTES&=ANZAHL_BYTES&+ACE_SIZE&
                        Dispose ACE#
                        DIM ACE#,ACE_SIZE&
                        Clear SID_NAME_USE#
                        Clear ACCOUNT_NAME#
                        Clear Domain#
                        Clear ACE#
                        Long SIZE_ACCOUNT#,0=256
                        LONG SIZE_DOMAIN#,0=256
                        @CopyMemory(ACE#,@LONG(P_ACE#,0),ACE_SIZE&)

                        IF @BYTE(ACE#,0)=0

                            ADDSTRING "ACE Typ des "+@STR$(@INT(Zähler&+1))+".ACEs=ACCESS_ALLOWED_ACE_TYPE"

                        ElseIF @BYTE(ACE#,0)=1

                            ADDSTRING "ACE Typ des "+@STR$(@INT(Zähler&+1))+".ACEs=ACCESS_DENIED_ACE_TYPE"

                        ElseIF @BYTE(ACE#,0)=2

                            ADDSTRING "ACE Typ des "+@STR$(@INT(Zähler&+1))+".ACEs=SYSTEM_AUDIT_ACE_TYPE"

                        ElseIF @BYTE(ACE#,0)=3

                            ADDSTRING "ACE Typ des "+@STR$(@INT(Zähler&+1))+".ACEs=SYSTEM_ALARM_ACE"

                        endif

                        DIM SID2#,ACE_SIZE&-8
                        clear SID2#
                        @CopyMemory(SID2#,@LONG(P_ACE#,0)+8,ACE_SIZE&-8)
                        LET Fehler&=@IsValidSid(SID2#)
                        ADDSTRING "Fehlercode IsValidSid="+@STR$(FEHLER&)
                        ADDSTRING "Letzter API Fehler="+@STR$(@GetLastError())
                        LET FEHLER&=@LookupAccountSid(@ADDR(SYSTEM$),SID2#,ACCOUNT_NAME#,SIZE_ACCOUNT#,Domain#,SIZE_DOMAIN#,SID_NAME_USE#)
                        ADDSTRING "Rückgabe von LookupAccountSid="+@STR$(Fehler&)
                        ADDSTRING "Letzter API-Fehler="+@STR$(@GetLastError())
                        ADDSTRING "Reset des API-Fehlers wird durchgeführt"
                        @SetLastError(0)
                        LET IO%=%IORESULT
                        Clear STRSID#

                        IF @VAL(@LEFT$($WINVER,3))>=5.0

                            LET FEHLER&=@ConvertSidToStringSid(SID2#,P_STRSID#)
                            @CopyMemory(STRSID#,@LONG(P_STRSID#,0),256)
                            ADDSTRING "Rückgabe von ConvertSidToStringSid="+@STR$(Fehler&)
                            ADDSTRING "Letzter API-Fehler="+@STR$(@GetLastError())
                            LET Fehler&=@LocalFree(@LONG(P_STRSID#,0))
                            ADDSTRING "Rückgabe von LocalFree für den String-SID="+@STR$(Fehler&)
                            ADDSTRING "Letzter API-Fehler="+@STR$(@GetLastError())
                            ADDSTRING "String-SID des "+@STR$(@int(Zähler&+1))+". ACEs="+@STRING$(STRSID#,0)

                        endif

                        ADDSTRING @STR$(@int(Zähler&+1))+". ACE Bezogen auf SID="+@String$(ACCOUNT_NAME#,0)

                        IF @UPPER$(@String$(ACCOUNT_NAME#,0))=@UPPER$(USER$)

                            IF @AND(@BYTE(ACE#,0)=0,@INSTR("+",Hinzu_entfernen$)>0)

                                LET VORHANDEN&=@or(VORHANDEN&,1)

                            endif

                            IF @AND(@BYTE(ACE#,0)=1,@INSTR("-",Hinzu_entfernen$)>0)

                                LET VORHANDEN&=@or(VORHANDEN&,2)

                            endif

                        endif

                        ADDSTRING @STR$(@int(Zähler&+1))+". ACE Bezogen auf Domainname="+@String$(Domain#,0)
                        ADDSTRING "Accessrechte des "+@STR$(@int(Zähler&+1))+". ACEs=$"+@HEX$(@LONG(ACE#,4))
                        LET ACCESS_MASK&=@LONG(ACE#,4)

                        IF @or(ACCESS_MASK&,$1F01FF)=ACCESS_MASK&

                            ADDSTRING "Recht im "+@STR$(@int(Zähler&+1))+". ACE=FILE_ALL_ACCESS (Vollzugriff)"
                            LET ACCESS_MASK&=ACCESS_MASK&-$1F01FF

                        endif

                        IF @or(ACCESS_MASK&,$1)=ACCESS_MASK&

                            ADDSTRING "Recht im "+@STR$(@int(Zähler&+1))+". ACE=FILE_READ_DATA (Erlaubt Daten aus einem File zu lesen)"
                            LET ACCESS_MASK&=ACCESS_MASK&-$1

                        endif

                        IF @or(ACCESS_MASK&,$2)=ACCESS_MASK&

                            ADDSTRING "Recht im "+@STR$(@int(Zähler&+1))+". ACE=FILE_WRITE_DATA (Erlaubt Daten zu Scheiben)"
                            LET ACCESS_MASK&=ACCESS_MASK&-$2

                        endif

                        IF @or(ACCESS_MASK&,$4)=ACCESS_MASK&

                            ADDSTRING "Recht im "+@STR$(@int(Zähler&+1))+". ACE=FILE_APPEND_DATA (Erlaubt Daten anzuhängen)"
                            LET ACCESS_MASK&=ACCESS_MASK&-$4

                        endif

                        IF @or(ACCESS_MASK&,$8)=ACCESS_MASK&

                            ADDSTRING "Recht im "+@STR$(@int(Zähler&+1))+". ACE=FILE_READ_EA (Erlaubt erweiterte Attibute zu lesen)"
                            LET ACCESS_MASK&=ACCESS_MASK&-$8

                        endif

                        IF @or(ACCESS_MASK&,$10)=ACCESS_MASK&

                            ADDSTRING "Recht im "+@STR$(@int(Zähler&+1))+". ACE=FILE_WRITE_EA (Erlaubt erweiterte Attribute zu schreiben)"
                            LET ACCESS_MASK&=ACCESS_MASK&-$10

                        endif

                        IF @or(ACCESS_MASK&,$20)=ACCESS_MASK&

                            ADDSTRING "Recht im "+@STR$(@int(Zähler&+1))+". ACE=FILE_EXECUTE (Erlaubt eine Datei auszuführen)"
                            LET ACCESS_MASK&=ACCESS_MASK&-$20

                        endif

                        IF @or(ACCESS_MASK&,$80)=ACCESS_MASK&

                            ADDSTRING "Recht im "+@STR$(@int(Zähler&+1))+". ACE=FILE_READ_ATTRIBUTES (Lesen der Fileattribute)"
                            LET ACCESS_MASK&=ACCESS_MASK&-$80

                        endif

                        IF @or(ACCESS_MASK&,$100)=ACCESS_MASK&

                            ADDSTRING "Recht im "+@STR$(@int(Zähler&+1))+". ACE=FILE_WRITE_ATTRIBUTES (Ändern der Fileattribute)"
                            LET ACCESS_MASK&=ACCESS_MASK&-$100

                        endif

                        IF @or(ACCESS_MASK&,$00040000)=ACCESS_MASK&

                            ADDSTRING "Recht im "+@STR$(@int(Zähler&+1))+". ACE=WRITE_DAC (Ändern der DACL Einträge)"
                            LET ACCESS_MASK&=ACCESS_MASK&-$00040000

                        endif

                        IF @or(ACCESS_MASK&,$00020000)=ACCESS_MASK&

                            ADDSTRING "Recht im "+@STR$(@int(Zähler&+1))+". ACE=READ_CONTROL (Lesen der DACL Einträge und Besitzer)"
                            LET ACCESS_MASK&=ACCESS_MASK&-$00020000

                        endif

                        IF @or(ACCESS_MASK&,$00100000)=ACCESS_MASK&

                            ADDSTRING "Recht im "+@STR$(@int(Zähler&+1))+". ACE=SYNCHRONIZE (Erlaubt einem FileHandle auf ein Complitition I/O zu warten)"
                            LET ACCESS_MASK&=ACCESS_MASK&-$00100000

                        endif

                        IF @or(ACCESS_MASK&,$40)=ACCESS_MASK&

                            ADDSTRING "Recht im "+@STR$(@int(Zähler&+1))+". ACE=File_Delete_Child (Erlaubt einen Unterordner zu löschen - für Dateien keine Bedeutung)"
                            LET ACCESS_MASK&=ACCESS_MASK&-$40

                        endif

                        IF @or(ACCESS_MASK&,$01000000)=ACCESS_MASK&

                            ADDSTRING "Recht im "+@STR$(@int(Zähler&+1))+". ACE=ACCESS_SYSTEM_SECURITY (Erlaubt den Zugriff auf den SACL)"
                            LET ACCESS_MASK&=ACCESS_MASK&-$01000000

                        endif

                        IF @or(ACCESS_MASK&,$10000000)=ACCESS_MASK&

                            ADDSTRING "Recht im "+@STR$(@int(Zähler&+1))+". ACE=GENERIC_ALL"
                            LET ACCESS_MASK&=ACCESS_MASK&-$10000000

                        endif

                        IF @or(ACCESS_MASK&,$20000000)=ACCESS_MASK&

                            ADDSTRING "Recht im "+@STR$(@int(Zähler&+1))+". ACE=GENERIC_EXECUTE"
                            LET ACCESS_MASK&=ACCESS_MASK&-$20000000

                        endif

                        IF @or(ACCESS_MASK&,$40000000)=ACCESS_MASK&

                            ADDSTRING "Recht im "+@STR$(@int(Zähler&+1))+". ACE=GENERIC_WRITE"
                            LET ACCESS_MASK&=ACCESS_MASK&-$40000000

                        endif

                        IF @or(ACCESS_MASK&,$80000000)=ACCESS_MASK&

                            ADDSTRING "Recht im "+@STR$(@int(Zähler&+1))+". ACE=GENERIC_READ"
                            LET ACCESS_MASK&=ACCESS_MASK&-$80000000

                        endif

                        IF @or(ACCESS_MASK&,$80000)=ACCESS_MASK&

                            ADDSTRING "Recht im "+@STR$(@int(Zähler&+1))+". ACE=WRITE_OWNER (Eigentümer ändern)"
                            LET ACCESS_MASK&=ACCESS_MASK&-$80000

                        endif

                        IF @or(ACCESS_MASK&,$00010000)=ACCESS_MASK&

                            ADDSTRING "Recht im "+@STR$(@int(Zähler&+1))+". ACE=_DELETE (Datei löschen)"
                            LET ACCESS_MASK&=ACCESS_MASK&-$00010000

                        endif

                        IF ACCESS_MASK&>0

                            ADDSTRING "Nicht berechnete Rechte="+@STR$(ACCESS_MASK&)+" ($"+@HEX$(ACCESS_MASK&)+")"

                        endif

                        LET Zähler&=Zähler&+1
                        Dispose SID2#
                        Dispose ACE#

                    wend

                Endif

                Clear SID_NAME_USE#,ACCOUNT_NAME#,Domain#,SIDa#,System$
                Long SIZE_ACCOUNT#,0=1
                LONG SIZE_DOMAIN#,0=256
                LET Fehler&=@LookupAccountName(@ADDR(SYSTEM$),@addr(USER$),SIDa#,SIZE_ACCOUNT#,DOMAIN#,SIZE_DOMAIN#,SID_NAME_USE#)
                ADDSTRING "Rückgabe von LookupAccountName für "+User$+"="+@STR$(Fehler&)
                ADDSTRING "Letzter API-Fehler="+@STR$(@GetLastError())
                ADDSTRING "Länge des SIDs="+@STR$(@LONG(SIZE_ACCOUNT#,0))
                LET SIZE_ACCOUNT&=@LONG(SIZE_ACCOUNT#,0)
                Clear SID_NAME_USE#
                Clear ACCOUNT_NAME#
                Clear Domain#
                Long SIZE_ACCOUNT#,0=SIZE_ACCOUNT&
                LONG SIZE_DOMAIN#,0=256
                Dispose SIDa#
                DIM SIDa#,SIZE_ACCOUNT&
                Clear SIDa#
                LET Fehler&=@LookupAccountName(@ADDR(SYSTEM$),@addr(USER$),SIDa#,SIZE_ACCOUNT#,DOMAIN#,SIZE_DOMAIN#,SID_NAME_USE#)
                ADDSTRING "Rückgabe von LookupAccountName für "+User$+"="+@STR$(Fehler&)
                ADDSTRING "Letzter API-Fehler="+@STR$(@GetLastError())
                ADDSTRING "Länge des SIDs="+@STR$(@LONG(SIZE_ACCOUNT#,0))

                IF VORHANDEN&=0

                    LET Anzahl_Bytes&=Anzahl_Bytes&+@LONG(SIZE_ACCOUNT#,0)+8 Alle ACEs+SID+ACCESS_MASK+ACE_HEADER

                endif

                IF @INSTR("0",Hinzu_entfernen$)>0

                    LET Anzahl_Bytes&=@LONG(SIZE_ACCOUNT#,0)+8+8 SID+ACCESS_MASK+ACE_HEADER+ACL_HEADER

                endif

                Dispose ACCOUNT_NAME#
                Dispose SIZE_ACCOUNT#
                Dispose Domain#
                Dispose SIZE_DOMAIN#
                Dispose SID_NAME_USE#
                Dispose P_ACE#
                Dispose ACL_INFO#

            Endif

            ADDSTRING "Bytes für ACL="+@STR$(Anzahl_Bytes&)
            DIM NEW_ACL1#,Anzahl_Bytes&
            LET FEHLER&=@InitializeAcl(NEW_ACL1#,Anzahl_Bytes&,$2)
            ADDSTRING "Rückgabe von InitializeAcl="+@STR$(Fehler&)
            ADDSTRING "Letzter API-Fehler="+@STR$(@GetLastError())
            Clear ACL_PRESENT#,P_ACL#,ACL_D#
            Let Fehler&=@GetSecurityDescriptorDacl(PSECURITY_DESCRIPTOR#,ACL_PRESENT#,P_ACL#,ACL_D#)
            ADDSTRING "Rückgabe von GetSecurityDescriptorDacl="+@STR$(Fehler&)
            ADDSTRING "Letzter API-Fehler="+@STR$(@GetLastError())
            LET Fehler&=@IsValidAcl(@long(P_ACL#,0))
            ADDSTRING "Rückgabe von IsValidAcl für den DACL="+@STR$(Fehler&)
            ADDSTRING "Letzter API-Fehler="+@STR$(@GetLastError())

            IF @LONG(ACL_PRESENT#,0)=1

                ADDSTRING "DACL ist vorhanden!"

            else

                ADDSTRING "DACL ist nicht vorhanden!"

            endif

            IF @INSTR("-",Hinzu_entfernen$)>0

                LET ACE_ZÄHLER&=1

            else

                LET ACE_ZÄHLER&=0

            endif

            IF @AND(Fehler&=1,@LONG(ACL_PRESENT#,0)=1)

                DIM ACL_INFO#,12
                DIM P_ACE#,4
                CLEAR ACL_INFO#,P_ACE#
                Let Fehler&=@GetAclInformation(@long(P_ACL#,0),ACL_INFO#,12,2)
                ADDSTRING "Rückgabe von GetAclInformation="+@STR$(Fehler&)
                ADDSTRING "Letzter API-Fehler="+@STR$(@GetLastError())
                ADDSTRING "Anzahl benutzter Bytes in DACL="+@STR$(@LONG(ACL_INFO#,4))
                ADDSTRING "Anzahl freier Bytes in DACL="+@STR$(@LONG(ACL_INFO#,8))
                ADDSTRING "ACEs in DACL="+@STR$(@LONG(ACL_INFO#,0))
                LET Zähler&=0
                DIM ACCOUNT_NAME#,256
                DIM SIZE_ACCOUNT#,4
                DIM Domain#,256
                DIM SIZE_DOMAIN#,4
                DIM SID_NAME_USE#,4

                IF @STR$(@LONG(ACL_INFO#,0))<>0

                    While Zähler&<@LONG(ACL_INFO#,0)

                        Clear P_ACE#
                        Let Fehler&=@GetAce(@long(P_ACL#,0),Zähler&,P_ACE#)
                        DIM ACE#,4
                        Clear ACE#
                        @CopyMemory(ACE#,@LONG(P_ACE#,0),4)
                        ADDSTRING "Größe des "+@STR$(@INT(Zähler&+1))+".ACEs="+@STR$(@Word(ACE#,2))
                        LET ACE_SIZE&=@Word(ACE#,2)
                        LET ANZAHL_BYTES&=ANZAHL_BYTES&+ACE_SIZE&
                        Dispose ACE#
                        DIM ACE#,ACE_SIZE&
                        Clear SID_NAME_USE#
                        Clear ACCOUNT_NAME#
                        Clear Domain#
                        Clear ACE#
                        Long SIZE_ACCOUNT#,0=256
                        LONG SIZE_DOMAIN#,0=256
                        @CopyMemory(ACE#,@LONG(P_ACE#,0),ACE_SIZE&)

                        IF @BYTE(ACE#,0)=0

                            ADDSTRING "ACE Typ des "+@STR$(@INT(Zähler&+1))+".ACEs=ACCESS_ALLOWED_ACE_TYPE"

                        ElseIF @BYTE(ACE#,0)=1

                            ADDSTRING "ACE Typ des "+@STR$(@INT(Zähler&+1))+".ACEs=ACCESS_DENIED_ACE_TYPE"

                        ElseIF @BYTE(ACE#,0)=2

                            ADDSTRING "ACE Typ des "+@STR$(@INT(Zähler&+1))+".ACEs=SYSTEM_AUDIT_ACE_TYPE"

                        ElseIF @BYTE(ACE#,0)=3

                            ADDSTRING "ACE Typ des "+@STR$(@INT(Zähler&+1))+".ACEs=SYSTEM_ALARM_ACE"

                        endif

                        ADDSTRING "Vererbung="+@STR$(@BYTE(ACE#,1))
                        DIM SID2#,ACE_SIZE&
                        CLEAR SID2#
                        @CopyMemory(SID2#,@LONG(P_ACE#,0)+8,ACE_SIZE&-8)
                        LET Fehler&=@IsValidSid(SID2#)
                        ADDSTRING "Fehlercode IsValidSid="+@STR$(FEHLER&)
                        ADDSTRING "Letzter API Fehler="+@STR$(@GetLastError())
                        LET FEHLER&=@LookupAccountSid(@ADDR(System$),SID2#,ACCOUNT_NAME#,SIZE_ACCOUNT#,Domain#,SIZE_DOMAIN#,SID_NAME_USE#)
                        ADDSTRING "Rückgabe von LookupAccountSid="+@STR$(Fehler&)
                        ADDSTRING "Letzter API-Fehler="+@STR$(@GetLastError())
                        ADDSTRING "Reset des API-Fehlers wird durchgeführt"
                        @SetLastError(0)
                        LET IO%=%IORESULT
                        Clear STRSID#
                        ADDSTRING @STR$(@int(Zähler&+1))+". ACE Bezogen auf SID="+@String$(ACCOUNT_NAME#,0)
                        ADDSTRING "Accessrechte des "+@STR$(@int(Zähler&+1))+". ACEs=$"+@HEX$(@LONG(ACE#,4))
                        LET ACCESS_MASK&=@LONG(ACE#,4)

                        IF @UPPER$(@String$(ACCOUNT_NAME#,0))=@UPPER$(USER$)

                            IF @BYTE(ACE#,0)=0

                                IF @INSTR("+",Hinzu_entfernen$)>0

                                    CASE @INSTR("0",Hinzu_entfernen$)=0 : LET FSFlags&=ACCESS_MASK&

                                ElseIF @INSTR("-",Hinzu_entfernen$)>0

                                    if @INSTR("0",Hinzu_entfernen$)=0

                                        IF @AND(@or(ACCESS_MASK&,$1)=ACCESS_MASK&,@INSTR("FILE_READ_DATA",@UPPER$(FSFLAGS$))>0)

                                            LET ACCESS_MASK&=ACCESS_MASK&-$1

                                        endif

                                        IF @AND(@or(ACCESS_MASK&,$2)=ACCESS_MASK&,@INSTR("FILE_WRITE_DATA",@UPPER$(FSFLAGS$))>0)

                                            LET ACCESS_MASK&=ACCESS_MASK&-$2

                                        endif

                                        IF @AND(@or(ACCESS_MASK&,$4)=ACCESS_MASK&,@INSTR("FILE_APPEND_DATA",@UPPER$(FSFLAGS$))>0)

                                            LET ACCESS_MASK&=ACCESS_MASK&-$4

                                        endif

                                        IF @AND(@or(ACCESS_MASK&,$8)=ACCESS_MASK&,@INSTR("FILE_READ_EA",@UPPER$(FSFLAGS$))>0)

                                            LET ACCESS_MASK&=ACCESS_MASK&-$8

                                        endif

                                        IF @AND(@or(ACCESS_MASK&,$10)=ACCESS_MASK&,@INSTR("FILE_WRITE_EA",@UPPER$(FSFLAGS$))>0)

                                            LET ACCESS_MASK&=ACCESS_MASK&-$10

                                        endif

                                        IF @AND(@or(ACCESS_MASK&,$20)=ACCESS_MASK&,@INSTR("FILE_EXECUTE",@UPPER$(FSFLAGS$))>0)

                                            LET ACCESS_MASK&=ACCESS_MASK&-$20

                                        endif

                                        IF @AND(@or(ACCESS_MASK&,$80)=ACCESS_MASK&,@INSTR("FILE_READ_ATTRIBUTES",@UPPER$(FSFLAGS$))>0)

                                            LET ACCESS_MASK&=ACCESS_MASK&-$80

                                        endif

                                        IF @AND(@or(ACCESS_MASK&,$100)=ACCESS_MASK&,@INSTR("FILE_WRITE_ATTRIBUTES",@UPPER$(FSFLAGS$))>0)

                                            LET ACCESS_MASK&=ACCESS_MASK&-$100

                                        endif

                                        IF @AND(@or(ACCESS_MASK&,$00040000)=ACCESS_MASK&,@INSTR("WRITE_DAC",@UPPER$(FSFLAGS$))>0)

                                            LET ACCESS_MASK&=ACCESS_MASK&-$00040000

                                        endif

                                        IF @AND(@or(ACCESS_MASK&,$00020000)=ACCESS_MASK&,@INSTR("READ_CONTROL",@UPPER$(FSFLAGS$))>0)

                                            LET ACCESS_MASK&=ACCESS_MASK&-$00020000

                                        endif

                                        IF @AND(@or(ACCESS_MASK&,$00100000)=ACCESS_MASK&,@INSTR("SYNCHRONIZE",@UPPER$(FSFLAGS$))>0)

                                            LET ACCESS_MASK&=ACCESS_MASK&-$00100000

                                        endif

                                        IF @AND(@or(ACCESS_MASK&,$40)=ACCESS_MASK&,@INSTR("FILE_DELETE_CHILD",@UPPER$(FSFLAGS$))>0)

                                            LET ACCESS_MASK&=ACCESS_MASK&-$40

                                        endif

                                        IF @AND(@or(ACCESS_MASK&,$01000000)=ACCESS_MASK&,@INSTR("ACCESS_SYSTEM_SECURITY",@UPPER$(FSFLAGS$))>0)

                                            LET ACCESS_MASK&=ACCESS_MASK&-$01000000

                                        endif

                                        IF @AND(@or(ACCESS_MASK&,$80000)=ACCESS_MASK&,@INSTR("WRITE_OWNER",@UPPER$(FSFLAGS$))>0)

                                            LET ACCESS_MASK&=ACCESS_MASK&-$80000

                                        endif

                                        IF @AND(@or(ACCESS_MASK&,$00010000)=ACCESS_MASK&,@INSTR("F_DELETE",@UPPER$(FSFLAGS$))>0)

                                            LET ACCESS_MASK&=ACCESS_MASK&-$00010000

                                        endif

                                        ADDSTRING "Bei ALLOWED_ACE zu addierende Rechte=$"+@HEX$(ACCESS_MASK&)
                                        LONG ACE#,4=ACCESS_MASK&
                                        LET FEHLER&=@AddAce(NEW_ACL1#,$2,ACE_ZÄHLER&,ACE#,ACE_SIZE&)
                                        ADDSTRING "Rückgabe von AddAce an Punkt "+@STR$(ACE_ZÄHLER&)+"="+@STR$(Fehler&)
                                        ADDSTRING "Letzter API-Fehler="+@STR$(@GetLastError())
                                        ADDSTRING "Rückgabe von IsValidAcl für den selbsterzeugten DACL="+@STR$(Fehler&)
                                        ADDSTRING "Letzter API-Fehler="+@STR$(@GetLastError())
                                        LET ACE_ZÄHLER&=ACE_ZÄHLER&+1

                                    ENDIF

                                endif

                            Elseif @BYTE(ACE#,0)=1

                                IF @INSTR("+",Hinzu_entfernen$)>0

                                    IF @INSTR("0",Hinzu_entfernen$)=0

                                        IF @AND(@or(ACCESS_MASK&,$1)=ACCESS_MASK&,@INSTR("FILE_READ_DATA",@UPPER$(FSFLAGS$))>0)

                                            LET ACCESS_MASK&=ACCESS_MASK&-$1

                                        endif

                                        IF @AND(@or(ACCESS_MASK&,$2)=ACCESS_MASK&,@INSTR("FILE_WRITE_DATA",@UPPER$(FSFLAGS$))>0)

                                            LET ACCESS_MASK&=ACCESS_MASK&-$2

                                        endif

                                        IF @AND(@or(ACCESS_MASK&,$4)=ACCESS_MASK&,@INSTR("FILE_APPEND_DATA",@UPPER$(FSFLAGS$))>0)

                                            LET ACCESS_MASK&=ACCESS_MASK&-$4

                                        endif

                                        IF @AND(@or(ACCESS_MASK&,$8)=ACCESS_MASK&amp;,@INSTR("FILE_READ_EA",@UPPER$(FSFLAGS$))>0)

                                            LET ACCESS_MASK&=ACCESS_MASK&-$8

                                        endif

                                        IF @AND(@or(ACCESS_MASK&,$10)=ACCESS_MASK&,@INSTR("FILE_WRITE_EA",@UPPER$(FSFLAGS$))>0)

                                            LET ACCESS_MASK&=ACCESS_MASK&-$10

                                        endif

                                        IF @AND(@or(ACCESS_MASK&,$20)=ACCESS_MASK&,@INSTR("FILE_EXECUTE",@UPPER$(FSFLAGS$))>0)

                                            LET ACCESS_MASK&=ACCESS_MASK&-$20

                                        endif

                                        IF @AND(@or(ACCESS_MASK&,$80)=ACCESS_MASK&,@INSTR("FILE_READ_ATTRIBUTES",@UPPER$(FSFLAGS$))>0)

                                            LET ACCESS_MASK&=ACCESS_MASK&-$80

                                        endif

                                        IF @AND(@or(ACCESS_MASK&,$100)=ACCESS_MASK&,@INSTR("FILE_WRITE_ATTRIBUTES",@UPPER$(FSFLAGS$))>0)

                                            LET ACCESS_MASK&=ACCESS_MASK&-$100

                                        endif

                                        IF @AND(@or(ACCESS_MASK&,$00040000)=ACCESS_MASK&,@INSTR("WRITE_DAC",@UPPER$(FSFLAGS$))>0)

                                            LET ACCESS_MASK&=ACCESS_MASK&-$00040000

                                        endif

                                        IF @AND(@or(ACCESS_MASK&,$00020000)=ACCESS_MASK&,@INSTR("READ_CONTROL",@UPPER$(FSFLAGS$))>0)

                                            LET ACCESS_MASK&=ACCESS_MASK&-$00020000

                                        endif

                                        IF @AND(@or(ACCESS_MASK&,$00100000)=ACCESS_MASK&,@INSTR("SYNCHRONIZE",@UPPER$(FSFLAGS$))>0)

                                            LET ACCESS_MASK&=ACCESS_MASK&-$00100000

                                        endif

                                        IF @AND(@or(ACCESS_MASK&,$40)=ACCESS_MASK&,@INSTR("FILE_DELETE_CHILD",@UPPER$(FSFLAGS$))>0)

                                            LET ACCESS_MASK&=ACCESS_MASK&-$40

                                        endif

                                        IF @AND(@or(ACCESS_MASK&,$01000000)=ACCESS_MASK&,@INSTR("ACCESS_SYSTEM_SECURITY",@UPPER$(FSFLAGS$))>0)

                                            LET ACCESS_MASK&=ACCESS_MASK&-$01000000

                                        endif

                                        IF @AND(@or(ACCESS_MASK&,$80000)=ACCESS_MASK&,@INSTR("WRITE_OWNER",@UPPER$(FSFLAGS$))>0)

                                            LET ACCESS_MASK&=ACCESS_MASK&-$80000

                                        endif

                                        IF @AND(@or(ACCESS_MASK&,$00010000)=ACCESS_MASK&,@INSTR("F_DELETE",@UPPER$(FSFLAGS$))>0)

                                            LET ACCESS_MASK&=ACCESS_MASK&-$00010000

                                        endif

                                        ADDSTRING "Bei DENIED_ACE zu addierende Rechte=$"+@HEX$(ACCESS_MASK&)
                                        LONG ACE#,4=ACCESS_MASK&
                                        LET FEHLER&=@AddAce(NEW_ACL1#,$2,ACE_ZÄHLER&,ACE#,ACE_SIZE&)
                                        ADDSTRING "Rückgabe von AddAce an Punkt "+@STR$(ACE_ZÄHLER&)+"="+@STR$(Fehler&)
                                        ADDSTRING "Letzter API-Fehler="+@STR$(@GetLastError())
                                        ADDSTRING "Rückgabe von IsValidAcl für den selbsterzeugten DACL="+@STR$(Fehler&)
                                        ADDSTRING "Letzter API-Fehler="+@STR$(@GetLastError())
                                        LET ACE_ZÄHLER&=ACE_ZÄHLER&+1

                                    endif

                                ElseIF @INSTR("-",Hinzu_entfernen$)>0

                                    IF @INSTR("0",Hinzu_entfernen$)=0

                                        LONG ACE#,4=ACCESS_MASK&
                                        LET FEHLER&=@AddAce(NEW_ACL1#,$2,ACE_ZÄHLER&,ACE#,ACE_SIZE&)
                                        ADDSTRING "Bei DENIED_ACE zu addierende Rechte=$"+@HEX$(ACCESS_MASK&)
                                        ADDSTRING "Rückgabe von AddAce an Punkt "+@STR$(ACE_ZÄHLER&)+"="+@STR$(Fehler&)
                                        ADDSTRING "Letzter API-Fehler="+@STR$(@GetLastError())
                                        ADDSTRING "Rückgabe von IsValidAcl für den selbsterzeugten DACL="+@STR$(Fehler&)
                                        ADDSTRING "Letzter API-Fehler="+@STR$(@GetLastError())
                                        LET ACE_ZÄHLER&=ACE_ZÄHLER&+1

                                    endif

                                endif

                            endif

                        else

                            IF @INSTR("0",Hinzu_entfernen$)=0

                                LET FEHLER&=@AddAce(NEW_ACL1#,$2,ACE_ZÄHLER&,ACE#,ACE_SIZE&)
                                ADDSTRING "Rückgabe von AddAce an Punkt "+@STR$(ACE_ZÄHLER&)+"="+@STR$(Fehler&)
                                ADDSTRING "Letzter API-Fehler="+@STR$(@GetLastError())
                                ADDSTRING "Rückgabe von IsValidAcl für den selbsterzeugten DACL="+@STR$(Fehler&)
                                ADDSTRING "Letzter API-Fehler="+@STR$(@GetLastError())
                                LET ACE_ZÄHLER&=ACE_ZÄHLER&+1

                            endif

                        endif

                        LET Zähler&=Zähler&+1
                        Dispose SID2#
                        Dispose ACE#

                    wend

                Endif

                DIM ACE#,SIZE_ACCOUNT&+8

                IF @INSTR("+",Hinzu_entfernen$)>0

                    Byte ACE#,0=0
                    ADDSTRING "Bei ALLOWED_ACE..."

                ELSEIF @INSTR("-",Hinzu_entfernen$)>0

                    Byte ACE#,0=1
                    ADDSTRING "Bei DENIED_ACE..."

                endif

                IF @INSTR("FILE_READ_DATA",@UPPER$(FSFlags$))>0

                    LET FSFlags&=@OR(FSFLAGS&,$1)

                endif

                IF @INSTR("FILE_WRITE_DATA",@UPPER$(FSFLAGS$))>0

                    LET FSFlags&=@OR(FSFLAGS&,$2)

                endif

                IF @INSTR("FILE_APPEND_DATA",@UPPER$(FSFLAGS$))>0

                    LET FSFlags&=@OR(FSFLAGS&,$4)

                endif

                IF @INSTR("FILE_READ_EA",@UPPER$(FSFLAGS$))>0

                    LET FSFlags&=@OR(FSFLAGS&,$8)

                endif

                IF @INSTR("FILE_WRITE_EA",@UPPER$(FSFLAGS$))>0

                    LET FSFlags&=@OR(FSFLAGS&,$10)

                endif

                IF @INSTR("FILE_EXECUTE",@UPPER$(FSFLAGS$))>0

                    LET FSFlags&=@OR(FSFLAGS&,$20)

                endif

                IF @INSTR("FILE_DELETE_CHILD",@UPPER$(FSFLAGS$))>0

                    LET FSFlags&=@OR(FSFLAGS&,$40)

                endif

                IF @INSTR("FILE_READ_ATTRIBUTES",@UPPER$(FSFLAGS$))>0

                    LET FSFlags&=@OR(FSFLAGS&,$80)

                endif

                IF @INSTR("FILE_WRITE_ATTRIBUTES",@UPPER$(FSFLAGS$))>0

                    LET FSFlags&=@OR(FSFLAGS&,$100)

                endif

                IF @INSTR("F_DELETE",@UPPER$(FSFLAGS$))>0

                    LET FSFlags&=@OR(FSFLAGS&,$10000)

                endif

                IF @INSTR("READ_CONTROL",@UPPER$(FSFLAGS$))>0

                    LET FSFlags&=@OR(FSFLAGS&,$20000)

                endif

                IF @INSTR("WRITE_DAC",@UPPER$(FSFLAGS$))>0

                    LET FSFlags&=@OR(FSFLAGS&,$40000)

                endif

                IF @INSTR("SYNCHRONIZE",@UPPER$(FSFLAGS$))>0

                    LET FSFlags&=@OR(FSFLAGS&,$100000)

                endif

                IF @INSTR("ACCESS_SYSTEM_SECURITY",@UPPER$(FSFLAGS$))>0

                    LET FSFlags&=@OR(FSFLAGS&,$1000000)

                endif

                IF @INSTR("WRITE_OWNER",@UPPER$(FSFLAGS$))>0

                    LET FSFlags&=@OR(FSFLAGS&,$80000)

                endif

                Byte ACE#,1=0
                WORD ACE#,2=SIZE_ACCOUNT&+8
                LONG ACE#,4=FSFlags&
                LET ZÄHLER&=0
                ADDSTRING "...zu addierende Rechte=$"+@HEX$(FSFlags&)

                WHILE ZÄHLER&<>SIZE_ACCOUNT&

                    BYTE ACE#,8+Zähler&=@BYTE(SIDa#,Zähler&)
                    LET ZÄHLER&=ZÄHLER&+1

                WEND

                IF @INSTR("-",Hinzu_entfernen$)>0

                    LET ACE_ZÄHLER&=0

                endif

                LET FEHLER&=@AddAce(NEW_ACL1#,$2,ACE_ZÄHLER&,ACE#,SIZE_ACCOUNT&+8)
                ADDSTRING "Rückgabe von AddAce an Punkt "+@STR$(ACE_ZÄHLER&)+"="+@STR$(Fehler&)
                ADDSTRING "Letzter API-Fehler="+@STR$(@GetLastError())
                LET Fehler&=@IsValidAcl(NEW_ACL1#)
                ADDSTRING "Rückgabe von IsValidAcl für den selbsterzeugten DACL="+@STR$(Fehler&)
                ADDSTRING "Letzter API-Fehler="+@STR$(@GetLastError())
                LET TEST&=NEW_ACL1#
                LET FEHLER&=@InitializeSecurityDescriptor(PSECURITY_DESCRIPTOR#,$1)
                ADDSTRING "Rückgabe von InitializeSecurityDescriptor="+@STR$(Fehler&)
                ADDSTRING "Letzter API-Fehler="+@STR$(@GetLastError())
                LET FEHLER&=@SetSecurityDescriptorDacl(PSECURITY_DESCRIPTOR#,1,NEW_ACL1#,0)
                ADDSTRING "Rückgabe von SetSecurityDescriptorDacl="+@STR$(Fehler&)
                ADDSTRING "Letzter API-Fehler="+@STR$(@GetLastError())
                LET FEHLER&=@SetFileSecurity(@ADDR(FileName$),$4,PSECURITY_DESCRIPTOR#)
                ADDSTRING "Rückgabe von SetFileSecurity="+@STR$(Fehler&)
                ADDSTRING "Letzter API-Fehler="+@STR$(@GetLastError())
                DISPOSE ACE#
                Dispose ACCOUNT_NAME#
                Dispose SIZE_ACCOUNT#
                Dispose Domain#
                Dispose SIZE_DOMAIN#
                Dispose SID_NAME_USE#
                Dispose P_ACE#
                Dispose ACL_INFO#

            endif

            Dispose PSECURITY_DESCRIPTOR#
            Dispose Needed#
            Dispose NEW_ACL1#
            Dispose ACL_PRESENT#
            Dispose P_ACL#
            Dispose ACL_D#
            Dispose SIDa#

        else

            ADDSTRING "Zugriff ist nicht einschränkbar"
            @Messagebox("Der Zugriff auf die angegebene Datei ist nicht einschränkbar!","Zugriff nicht einschränkbar!",16)

        endif

        Dispose Label#
        Dispose LFlags#
        DISPOSE DAT#
        Dispose STRSID#
        Dispose P_STRSID#

    else

        CASE FILENAME$="" : @Messagebox("DIe Prozedur benötigt einen Dateinamen!","Fehler beim 1.Parametern",16)
        CASE USER$="" : @Messagebox("DIe Prozedur benötigt einen User- oder Gruppennamen!","Fehler beim 2.Parametern",16)
        CASE @AND(@INSTR("+",Hinzu_entfernen$)=0,@INSTR("-",Hinzu_entfernen$)=0) : @Messagebox("DIe Prozedur benötigt ein + oder ein - als dritten Parameter!","Fehler beim 3.Parametern",16)

    endif

Endproc

Declare Datei$
LET DATEI$=@LoadFile$("Datei auswählen","*.*")
Set_ACE_IN_DACL Datei$,"Andreas","+0","SYNCHRONIZE FILE_WRITE_EA FILE_READ_EA FILE_READ_DATA FILE_WRITE_DATA FILE_APPEND_DATA FILE_EXECUTE FILE_READ_ATTRIBUTES FILE_WRITE_ATTRIBUTES F_DELETE"
Get_Group_Name "Jeder"
Set_ACE_IN_DACL Datei$,@$(0),"+","SYNCHRONIZE FILE_WRITE_EA FILE_READ_EA FILE_READ_DATA FILE_WRITE_DATA FILE_APPEND_DATA FILE_EXECUTE FILE_READ_ATTRIBUTES FILE_WRITE_ATTRIBUTES F_DELETE"
Get_Group_Name "Jed
t; Set_ACE_IN_DACL File$,@$(0),"-","F_DELETE" Get_Group_Name "Administratoren" Set_ACE_IN_DACL File$,@$(0),"+","FILE_DELETE_CHILD,READ_CONTROL,ACCESS_SYSTEM_SECURITY,WRITE_OWNER,WRITE_DAC,F_DELETE,SYNCHRONIZE,FILE_WRITE_EA,FILE_READ_EA,FILE_READ_DATA,FILE_WRITE_DATA,FILE_APPEND_DATA,FILE_EXECUTE,FILE_READ_ATTRIBUTES,FILE_WRITE_ATTRIBUTES,F_DELETE" @Editbox("API Rückgaben",1)
 
05/21/05  
 



[quote:8354fe1111]Error Code IsValidSid=1
last API Fehler=0
Error Code LookupAccountSid=1
last API Fehler=997
eachone
****PROZEDUR launched****
chosen Datei=Cokumente and EinstellungenPackard BellDesktopunbenannt.bmp
Gruppenname/Username=Jeder
To Addierende Rechte=...
SYNCHRONIZE FILE_WRITE_EA FILE_READ_EA FILE_READ_DATA FILE_WRITE_DATA FILE_APPEND_DATA FILE_EXECUTE FILE_READ_ATTRIBUTES FILE_WRITE_ATTRIBUTES F_DELETE
last API-Fehler=997
Return of GetVolumeInformation=1
last API-Fehler=997
Laufwerksflags=1010000000011111111
Ausgelesene Partition=NTFS
grabbed is einschränkbar
Return of GetFileSecurity=0
last API-Fehler=122
Erforderliche length the Security Descriptor=164
Return of GetFileSecurity=1
last API-Fehler=0
Return of IsValidSecurityDescriptor=1
last API-Fehler=0
Return of GetSecurityDescriptorDacl=1
last API-Fehler=0
Return of IsValidAcl for DACL=1
last API-Fehler=0
DACL is present!
Return of GetAclInformation=1
last API-Fehler=0
amount uses Bytes in DACL=88
amount suitor Bytes in DACL=0
ACEs in DACL=3
Size the 1.ACEs=36
ACE type the 1.ACEs=ACCESS_ALLOWED_ACE_TYPE
Error Code IsValidSid=1
last API Fehler=0
Return of LookupAccountSid=1
last API-Fehler=997
Reset the API-Fehlers becomes implemented
Return of ConvertSidToStringSid=1
last API-Fehler=0
Return of LocalFree for String-SID=0
last API-Fehler=0
String-SID the 1. ACEs=S-1-5-21-789336058-1343024091-854245398-1004
1. ACE related on SID=Packard Bell
1. ACE related on Domainname=C4
Accessrechte the 1. ACEs=$1F01FF
right in the 1. ACE=FILE_ALL_ACCESS (Vollzugriff)
Size the 2.ACEs=20
ACE type the 2.ACEs=ACCESS_ALLOWED_ACE_TYPE
Error Code IsValidSid=1
last API Fehler=0
Return of LookupAccountSid=1
last API-Fehler=997
Reset the API-Fehlers becomes implemented
Return of ConvertSidToStringSid=1
last API-Fehler=0
Return of LocalFree for String-SID=0
last API-Fehler=0
String-SID the 2. ACEs=S-1-5-18
2. ACE related on SID=SYSTEM
2. ACE related on Domainname=NT-AUTORITÄT
Accessrechte the 2. ACEs=$1F01FF
right in the 2. ACE=FILE_ALL_ACCESS (Vollzugriff)
Size the 3.ACEs=24
ACE type the 3.ACEs=ACCESS_ALLOWED_ACE_TYPE
Error Code IsValidSid=1
last API Fehler=0
Return of LookupAccountSid=1
last API-Fehler=997
Reset the API-Fehlers becomes implemented
Return of ConvertSidToStringSid=1
last API-Fehler=0
Return of LocalFree for String-SID=0
last API-Fehler=0
String-SID the 3. ACEs=S-1-5-32-544
3. ACE related on SID=Administratoren
3. ACE related on Domainname=VORDEFINIERT
Accessrechte the 3. ACEs=$1F01FF
right in the 3. ACE=FILE_ALL_ACCESS (Vollzugriff)
Return of LookupAccountName for Jeder=0
last API-Fehler=122
length the SIDs=12
Return of LookupAccountName for Jeder=1
last API-Fehler=997
length the SIDs=12
Bytes for ACL=108
Return of InitializeAcl=1
last API-Fehler=997
Return of GetSecurityDescriptorDacl=1
last API-Fehler=997
Return of IsValidAcl for DACL=1
last API-Fehler=997
DACL is present!
Return of GetAclInformation=1
last API-Fehler=997
amount uses Bytes in DACL=88
amount suitor Bytes in DACL=0
ACEs in DACL=3
Size the 1.ACEs=36
ACE type the 1.ACEs=ACCESS_ALLOWED_ACE_TYPE
Vererbung=16
Error Code IsValidSid=1
last API Fehler=997
Return of LookupAccountSid=1
last API-Fehler=997
Reset the API-Fehlers becomes implemented
1. ACE related on SID=Packard Bell
Accessrechte the 1. ACEs=$1F01FF
Return of AddAce on point 0=1
last API-Fehler=0
Return of IsValidAcl for selbsterzeugten DACL=1
last API-Fehler=0
Size the 2.ACEs=20
ACE type the 2.ACEs=ACCESS_ALLOWED_ACE_TYPE
Vererbung=16
Error Code IsValidSid=1
last API Fehler=0
Return of LookupAccountSid=1
last API-Fehler=997
Reset the API-Fehlers becomes implemented
2. ACE related on SID=SYSTEM
Accessrechte the 2. ACEs=$1F01FF
Return of AddAce on point 1=1
last API-Fehler=0
Return of IsValidAcl for selbsterzeugten DACL=1
last API-Fehler=0
Size the 3.ACEs=24
ACE type the 3.ACEs=ACCESS_ALLOWED_ACE_TYPE
Vererbung=16
Error Code IsValidSid=1
last API Fehler=0
Return of LookupAccountSid=1
last API-Fehler=997
Reset the API-Fehlers becomes implemented
3. ACE related on SID=Administratoren
Accessrechte the 3. ACEs=$1F01FF
Return of AddAce on point 2=1
last API-Fehler=0
Return of IsValidAcl for selbsterzeugten DACL=1
last API-Fehler=0
with ALLOWED_ACE...
...To addierende Rechte=$1101BF
Return of AddAce on point 3=1
last API-Fehler=0
Return of IsValidAcl for selbsterzeugten DACL=1
last API-Fehler=0
Return of InitializeSecurityDescriptor=1
last API-Fehler=0
Return of SetSecurityDescriptorDacl=1
last API-Fehler=0
Return of SetFileSecurity=1
last API-Fehler=0
Error Code IsValidSid=1
last API Fehler=0
Error Code LookupAccountSid=1
last API Fehler=997
eachone
****PROZEDUR launched****
chosen Datei=Cokumente and EinstellungenPackard BellDesktopunbenannt.bmp
Gruppenname/Username=Jeder
To Addierende Rechte=...
F_DELETE
last API-Fehler=997
Return of GetVolumeInformation=1
last API-Fehler=997
Laufwerksflags=1010000000011111111
Ausgelesene Partition=NTFS
grabbed is einschränkbar
Return of GetFileSecurity=0
last API-Fehler=122
Erforderliche length the Security Descriptor=184
Return of GetFileSecurity=1
last API-Fehler=0
Return of IsValidSecurityDescriptor=1
last API-Fehler=0
Return of GetSecurityDescriptorDacl=1
last API-Fehler=0
Return of IsValidAcl for DACL=1
last API-Fehler=0
DACL is present!
Return of GetAclInformation=1
last API-Fehler=0
amount uses Bytes in DACL=108
amount suitor Bytes in DACL=0
ACEs in DACL=4
Size the 1.ACEs=36
ACE type the 1.ACEs=ACCESS_ALLOWED_ACE_TYPE
Error Code IsValidSid=1
last API Fehler=0
Return of LookupAccountSid=1
last API-Fehler=997
Reset the API-Fehlers becomes implemented
Return of ConvertSidToStringSid=1
last API-Fehler=0
Return of LocalFree for String-SID=0
last API-Fehler=0
String-SID the 1. ACEs=S-1-5-21-789336058-1343024091-854245398-1004
1. ACE related on SID=Packard Bell
1. ACE related on Domainname=C4
Accessrechte the 1. ACEs=$1F01FF
right in the 1. ACE=FILE_ALL_ACCESS (Vollzugriff)
Size the 2.ACEs=20
ACE type the 2.ACEs=ACCESS_ALLOWED_ACE_TYPE
Error Code IsValidSid=1
last API Fehler=0
Return of LookupAccountSid=1
last API-Fehler=997
Reset the API-Fehlers becomes implemented
Return of ConvertSidToStringSid=1
last API-Fehler=0
Return of LocalFree for String-SID=0
last API-Fehler=0
String-SID the 2. ACEs=S-1-5-18
2. ACE related on SID=SYSTEM
2. ACE related on Domainname=NT-AUTORITÄT
Accessrechte the 2. ACEs=$1F01FF
right in the 2. ACE=FILE_ALL_ACCESS (Vollzugriff)
Size the 3.ACEs=24
ACE type the 3.ACEs=ACCESS_ALLOWED_ACE_TYPE
Error Code IsValidSid=1
last API Fehler=0
Return of LookupAccountSid=1
last API-Fehler=997
Reset the API-Fehlers becomes implemented
Return of ConvertSidToStringSid=1
last API-Fehler=0
Return of LocalFree for String-SID=0
last API-Fehler=0
String-SID the 3. ACEs=S-1-5-32-544
3. ACE related on SID=Administratoren
3. ACE related on Domainname=VORDEFINIERT
Accessrechte the 3. ACEs=$1F01FF
right in the 3. ACE=FILE_ALL_ACCESS (Vollzugriff)
Size the 4.ACEs=20
ACE type the 4.ACEs=ACCESS_ALLOWED_ACE_TYPE
Error Code IsValidSid=1
last API Fehler=0
Return of LookupAccountSid=1
last API-Fehler=997
Reset the API-Fehlers becomes implemented
Return of ConvertSidToStringSid=1
last API-Fehler=0
Return of LocalFree for String-SID=0
last API-Fehler=0
String-SID the 4. ACEs=S-1-1-0
4. ACE related on SID=Jeder
4. ACE related on Domainname=
Accessrechte the 4. ACEs=$1101BF
right in the 4. ACE=FILE_READ_DATA (allows Data from one File To reading)
right in the 4. ACE=FILE_WRITE_DATA (allows data To Scheiben)
right in the 4. ACE=FILE_APPEND_DATA (allows data anzuhängen)
right in the 4. ACE=FILE_READ_EA (allows erweiterte Attibute To reading)
right in the 4. ACE=FILE_WRITE_EA (allows erweiterte attributes To write)
right in the 4. ACE=FILE_EXECUTE (allows a File to execute)
right in the 4. ACE=FILE_READ_ATTRIBUTES (reading the Fileattribute)
right in the 4. ACE=FILE_WRITE_ATTRIBUTES (Change the Fileattribute)
right in the 4. ACE=SYNCHRONIZE (allows one FileHandle on one Complitition I/O To Waiting)
right in the 4. ACE=_DELETE (File delete)
Return of LookupAccountName for Jeder=0
last API-Fehler=122
length the SIDs=12
Return of LookupAccountName for Jeder=1
last API-Fehler=997
length the SIDs=12
Bytes for ACL=128
Return of InitializeAcl=1
last API-Fehler=997
Return of GetSecurityDescriptorDacl=1
last API-Fehler=997
Return of IsValidAcl for DACL=1
last API-Fehler=997
DACL is present!
Return of GetAclInformation=1
last API-Fehler=997
amount uses Bytes in DACL=108
amount suitor Bytes in DACL=0
ACEs in DACL=4
Size the 1.ACEs=36
ACE type the 1.ACEs=ACCESS_ALLOWED_ACE_TYPE
Vererbung=16
Error Code IsValidSid=1
last API Fehler=997
Return of LookupAccountSid=1
last API-Fehler=997
Reset the API-Fehlers becomes implemented
1. ACE related on SID=Packard Bell
Accessrechte the 1. ACEs=$1F01FF
Return of AddAce on point 1=1
last API-Fehler=0
Return of IsValidAcl for selbsterzeugten DACL=1
last API-Fehler=0
Size the 2.ACEs=20
ACE type the 2.ACEs=ACCESS_ALLOWED_ACE_TYPE
Vererbung=16
Error Code IsValidSid=1
last API Fehler=0
Return of LookupAccountSid=1
last API-Fehler=997
Reset the API-Fehlers becomes implemented
2. ACE related on SID=SYSTEM
Accessrechte the 2. ACEs=$1F01FF
Return of AddAce on point 2=1
last API-Fehler=0
Return of IsValidAcl for selbsterzeugten DACL=1
last API-Fehler=0
Size the 3.ACEs=24
ACE type the 3.ACEs=ACCESS_ALLOWED_ACE_TYPE
Vererbung=16
Error Code IsValidSid=1
last API Fehler=0
Return of LookupAccountSid=1
last API-Fehler=997
Reset the API-Fehlers becomes implemented
3. ACE related on SID=Administratoren
Accessrechte the 3. ACEs=$1F01FF
Return of AddAce on point 3=1
last API-Fehler=0
Return of IsValidAcl for selbsterzeugten DACL=1
last API-Fehler=0
Size the 4.ACEs=20
ACE type the 4.ACEs=ACCESS_ALLOWED_ACE_TYPE
Vererbung=0
Error Code IsValidSid=1
last API Fehler=0
Return of LookupAccountSid=1
last API-Fehler=997
Reset the API-Fehlers becomes implemented
4. ACE related on SID=Jeder
Accessrechte the 4. ACEs=$1101BF
with ALLOWED_ACE To addierende Rechte=$1001BF
Return of AddAce on point 4=1
last API-Fehler=0
Return of IsValidAcl for selbsterzeugten DACL=1
last API-Fehler=0
with DENIED_ACE...
...To addierende Rechte=$10000
Return of AddAce on point 0=1
last API-Fehler=0
Return of IsValidAcl for selbsterzeugten DACL=1
last API-Fehler=0
Return of InitializeSecurityDescriptor=1
last API-Fehler=0
Return of SetSecurityDescriptorDacl=1
last API-Fehler=0
Return of SetFileSecurity=1
last API-Fehler=0
Error Code IsValidSid=1
last API Fehler=0
Error Code LookupAccountSid=1
last API Fehler=997
Administratoren
****PROZEDUR launched****
chosen Datei=Cokumente and EinstellungenPackard BellDesktopunbenannt.bmp
Gruppenname/Username=Administratoren
To Addierende Rechte=...
FILE_DELETE_CHILD,READ_CONTROL,ACCESS_SYSTEM_SECURITY,WRITE_OWNER,WRITE_DAC,F_DELETE,SYNCHRONIZE,FILE_WRITE_EA,FILE_READ_EA,FILE_READ_DATA,FILE_WRITE_DATA,FILE_APPEND_DATA,FILE_EXECUTE,FILE_READ_ATTRIBUTES,FILE_WRITE_ATTRIBUTES,F_DELETE
last API-Fehler=997
Return of GetVolumeInformation=1
last API-Fehler=997
Laufwerksflags=1010000000011111111
Ausgelesene Partition=NTFS
grabbed is einschränkbar
Return of GetFileSecurity=0
last API-Fehler=122
Erforderliche length the Security Descriptor=204
Return of GetFileSecurity=1
last API-Fehler=0
Return of IsValidSecurityDescriptor=1
last API-Fehler=0
Return of GetSecurityDescriptorDacl=1
last API-Fehler=0
Return of IsValidAcl for DACL=1
last API-Fehler=0
DACL is present!
Return of GetAclInformation=1
last API-Fehler=0
amount uses Bytes in DACL=128
amount suitor Bytes in DACL=0
ACEs in DACL=5
Size the 1.ACEs=20
ACE type the 1.ACEs=ACCESS_DENIED_ACE_TYPE
Error Code IsValidSid=1
last API Fehler=0
Return of LookupAccountSid=1
last API-Fehler=997
Reset the API-Fehlers becomes implemented
Return of ConvertSidToStringSid=1
last API-Fehler=0
Return of LocalFree for String-SID=0
last API-Fehler=0
String-SID the 1. ACEs=S-1-1-0
1. ACE related on SID=Jeder
1. ACE related on Domainname=
Accessrechte the 1. ACEs=$10000
right in the 1. ACE=_DELETE (File delete)
Size the 2.ACEs=36
ACE type the 2.ACEs=ACCESS_ALLOWED_ACE_TYPE
Error Code IsValidSid=1
last API Fehler=0
Return of LookupAccountSid=1
last API-Fehler=997
Reset the API-Fehlers becomes implemented
Return of ConvertSidToStringSid=1
last API-Fehler=0
Return of LocalFree for String-SID=0
last API-Fehler=0
String-SID the 2. ACEs=S-1-5-21-789336058-1343024091-854245398-1004
2. ACE related on SID=Packard Bell
2. ACE related on Domainname=C4
Accessrechte the 2. ACEs=$1F01FF
right in the 2. ACE=FILE_ALL_ACCESS (Vollzugriff)
Size the 3.ACEs=20
ACE type the 3.ACEs=ACCESS_ALLOWED_ACE_TYPE
Error Code IsValidSid=1
last API Fehler=0
Return of LookupAccountSid=1
last API-Fehler=997
Reset the API-Fehlers becomes implemented
Return of ConvertSidToStringSid=1
last API-Fehler=0
Return of LocalFree for String-SID=0
last API-Fehler=0
String-SID the 3. ACEs=S-1-5-18
3. ACE related on SID=SYSTEM
3. ACE related on Domainname=NT-AUTORITÄT
Accessrechte the 3. ACEs=$1F01FF
right in the 3. ACE=FILE_ALL_ACCESS (Vollzugriff)
Size the 4.ACEs=24
ACE type the 4.ACEs=ACCESS_ALLOWED_ACE_TYPE
Error Code IsValidSid=1
last API Fehler=0
Return of LookupAccountSid=1
last API-Fehler=997
Reset the API-Fehlers becomes implemented
Return of ConvertSidToStringSid=1
last API-Fehler=0
Return of LocalFree for String-SID=0
last API-Fehler=0
String-SID the 4. ACEs=S-1-5-32-544
4. ACE related on SID=Administratoren
4. ACE related on Domainname=VORDEFINIERT
Accessrechte the 4. ACEs=$1F01FF
right in the 4. ACE=FILE_ALL_ACCESS (Vollzugriff)
Size the 5.ACEs=20
ACE type the 5.ACEs=ACCESS_ALLOWED_ACE_TYPE
Error Code IsValidSid=1
last API Fehler=0
Return of LookupAccountSid=1
last API-Fehler=997
Reset the API-Fehlers becomes implemented
Return of ConvertSidToStringSid=1
last API-Fehler=0
Return of LocalFree for String-SID=0
last API-Fehler=0
String-SID the 5. ACEs=S-1-1-0
5. ACE related on SID=Jeder
5. ACE related on Domainname=
Accessrechte the 5. ACEs=$1001BF
right in the 5. ACE=FILE_READ_DATA (allows Data from one File To reading)
right in the 5. ACE=FILE_WRITE_DATA (allows data To Scheiben)
right in the 5. ACE=FILE_APPEND_DATA (allows data anzuhängen)
right in the 5. ACE=FILE_READ_EA (allows erweiterte Attibute To reading)
right in the 5. ACE=FILE_WRITE_EA (allows erweiterte attributes To write)
right in the 5. ACE=FILE_EXECUTE (allows a File to execute)
right in the 5. ACE=FILE_READ_ATTRIBUTES (reading the Fileattribute)
right in the 5. ACE=FILE_WRITE_ATTRIBUTES (Change the Fileattribute)
right in the 5. ACE=SYNCHRONIZE (allows one FileHandle on one Complitition I/O To Waiting)
Return of LookupAccountName for Administratoren=0
last API-Fehler=122
length the SIDs=16
Return of LookupAccountName for Administratoren=1
last API-Fehler=997
length the SIDs=16
Bytes for ACL=128
Return of InitializeAcl=1
last API-Fehler=997
Return of GetSecurityDescriptorDacl=1
last API-Fehler=997
Return of IsValidAcl for DACL=1
last API-Fehler=997
DACL is present!
Return of GetAclInformation=1
last API-Fehler=997
amount uses Bytes in DACL=128
amount suitor Bytes in DACL=0
ACEs in DACL=5
Size the 1.ACEs=20
ACE type the 1.ACEs=ACCESS_DENIED_ACE_TYPE
Vererbung=0
Error Code IsValidSid=1
last API Fehler=997
Return of LookupAccountSid=1
last API-Fehler=997
Reset the API-Fehlers becomes implemented
1. ACE related on SID=Jeder
Accessrechte the 1. ACEs=$10000
Return of AddAce on point 0=1
last API-Fehler=0
Return of IsValidAcl for selbsterzeugten DACL=1
last API-Fehler=0
Size the 2.ACEs=36
ACE type the 2.ACEs=ACCESS_ALLOWED_ACE_TYPE
Vererbung=16
Error Code IsValidSid=1
last API Fehler=0
Return of LookupAccountSid=1
last API-Fehler=997
Reset the API-Fehlers becomes implemented
2. ACE related on SID=Packard Bell
Accessrechte the 2. ACEs=$1F01FF
Return of AddAce on point 1=1
last API-Fehler=0
Return of IsValidAcl for selbsterzeugten DACL=1
last API-Fehler=0
Size the 3.ACEs=20
ACE type the 3.ACEs=ACCESS_ALLOWED_ACE_TYPE
Vererbung=16
Error Code IsValidSid=1
last API Fehler=0
Return of LookupAccountSid=1
last API-Fehler=997
Reset the API-Fehlers becomes implemented
3. ACE related on SID=SYSTEM
Accessrechte the 3. ACEs=$1F01FF
Return of AddAce on point 2=1
last API-Fehler=0
Return of IsValidAcl for selbsterzeugten DACL=1
last API-Fehler=0
Size the 4.ACEs=24
ACE type the 4.ACEs=ACCESS_ALLOWED_ACE_TYPE
Vererbung=16
Error Code IsValidSid=1
last API Fehler=0
Return of LookupAccountSid=1
last API-Fehler=997
Reset the API-Fehlers becomes implemented
4. ACE related on SID=Administratoren
Accessrechte the 4. ACEs=$1F01FF
Size the 5.ACEs=20
ACE type the 5.ACEs=ACCESS_ALLOWED_ACE_TYPE
Vererbung=0
Error Code IsValidSid=1
last API Fehler=0
Return of LookupAccountSid=1
last API-Fehler=997
Reset the API-Fehlers becomes implemented
5. ACE related on SID=Jeder
Accessrechte the 5. ACEs=$1001BF
Return of AddAce on point 3=1
last API-Fehler=0
Return of IsValidAcl for selbsterzeugten DACL=1
last API-Fehler=0
with ALLOWED_ACE...
...To addierende Rechte=$11F01FF
Return of AddAce on point 4=1
last API-Fehler=0
Return of IsValidAcl for selbsterzeugten DACL=1
last API-Fehler=0
Return of InitializeSecurityDescriptor=1
last API-Fehler=0
Return of SetSecurityDescriptorDacl=1
last API-Fehler=0
Return of SetFileSecurity=1
last API-Fehler=0[/quote:8354fe1111]
Lol ik wants Yes nüscht say - but if someone the feeling has these Page need longer to that Show... no wonder - is Yes now already 2909.21 KB big.

salvo.
 
05/21/05  
 




Answer


Topictitle, max. 100 characters.
 

Systemprofile:

no Systemprofil laid out. [anlegen]

XProfan:

 Posting  Font  Smilies  ▼ 

Please register circa a Posting To verfassen.
 

Topic-Options

2.516 Views

Untitledvor 0 min.
H.Brill05/13/21
RudiB.01/31/16
Andreas Koch06/12/12

Themeninformationen



Admins  |  AGB  |  Applications  |  Authors  |  Chat  |  Privacy Policy  |  Download  |  Entrance  |  Help  |  Merchantportal  |  Imprint  |  Mart  |  Interfaces  |  SDK  |  Services  |  Games  |  Search  |  Support

One proposition all XProfan, The there's!


My XProfan
Private Messages
Own Storage Forum
Topics-Remember-List
Own Posts
Own Topics
Clipboard
Log off
 Deutsch English Français Español Italia
Translations

Privacy Policy


we use Cookies only as Session-Cookies because of the technical necessity and with us there no Cookies of Drittanbietern.

If you here on our Website click or navigate, stimmst You ours registration of Information in our Cookies on XProfan.Net To.

further Information To our Cookies and moreover, How You The control above keep, find You in ours nachfolgenden Datenschutzerklärung.


all rightDatenschutzerklärung
i want none Cookie