Español
Foro

Filesecurity conjunto: Ver código fuente

 
- Página 1 -


¡Hola Profaner...

Noch una vez qué para Testen bajo NT/2000/XP:
KompilierenMarcaSeparación
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)

Wird überall una String zurückgegeben? Como sieht lo con US-Systemen de?
 
15.05.2005  
 



 
- Página 1 -



Rolf
Koch
Hi AH,
[quote:cba7059298]
Fehlercode IsValidSid=1
Letzter API Fehler=0
Fehlercode LookupAccountSid=1
Letzter API Fehler=997
Jeder
****PROZEDUR comenzó****
Gewählte Datei=C:druck.txt
Gruppenname/Username=Jeder
Zu Addierende Rechte=F_DELETE
Letzter API-Fehler=997
Rückgabe de GetVolumeInformation=1
Letzter API-Fehler=997
Laufwerksflags=1110000000011111111
Ausgelesene Partition=NTFS
Zugriff es einschränkbar
Rückgabe de GetFileSecurity=0
Letzter API-Fehler=122
Erforderliche Longitud des Security Descriptor=188
Rückgabe de GetFileSecurity=1
Letzter API-Fehler=0
Rückgabe de IsValidSecurityDescriptor=1
Letzter API-Fehler=0
Rückgabe de GetSecurityDescriptorDacl=1
Letzter API-Fehler=0
Rückgabe de IsValidAcl para el DACL=1
Letzter API-Fehler=0
DACL es disponible!
Rückgabe de GetAclInformation=1
Letzter API-Fehler=0
Anzahl benutzter Bytes en DACL=112
Anzahl freier Bytes en DACL=0
ACEs en DACL=4
Größe des 1.ACEs=24
ACE Typ des 1.ACEs=ACCESS_ALLOWED_ACE_TYPE
Rückgabe de LookupAccountSid=1
Letzter API-Fehler=997
Reset des API-Fehlers se durchgeführt
Rückgabe de ConvertSidToStringSid=1
Letzter API-Fehler=0
Rückgabe de LocalFree para el String-SID=0
Letzter API-Fehler=0
String-SID des 1. ACEs=S-1-5-32-544
1. ACE Bezogen en SID=Administratoren
1. ACE Bezogen en Domainname=VORDEFINIERT
Accessrechte des 1. ACEs=$1F01FF
Recht en el 1. ACE=FILE_ALL_ACCESS (Vollzugriff)
Größe des 2.ACEs=20
ACE Typ des 2.ACEs=ACCESS_ALLOWED_ACE_TYPE
Rückgabe de LookupAccountSid=1
Letzter API-Fehler=997
Reset des API-Fehlers se durchgeführt
Rückgabe de ConvertSidToStringSid=1
Letzter API-Fehler=0
Rückgabe de LocalFree para el String-SID=0
Letzter API-Fehler=0
String-SID des 2. ACEs=S-1-5-18
2. ACE Bezogen en SID=SYSTEM
2. ACE Bezogen en Domainname=NT-AUTORITÄT
Accessrechte des 2. ACEs=$1F01FF
Recht en el 2. ACE=FILE_ALL_ACCESS (Vollzugriff)
Größe des 3.ACEs=36
ACE Typ des 3.ACEs=ACCESS_ALLOWED_ACE_TYPE
Rückgabe de LookupAccountSid=1
Letzter API-Fehler=997
Reset des API-Fehlers se durchgeführt
Rückgabe de ConvertSidToStringSid=1
Letzter API-Fehler=0
Rückgabe de LocalFree para el String-SID=0
Letzter API-Fehler=0
String-SID des 3. ACEs=S-1-5-21-1708537768-1644491937-839522115-1003
3. ACE Bezogen en SID=Rolf
3. ACE Bezogen en Domainname=ROCKNROLF
Accessrechte des 3. ACEs=$1F01FF
Recht en el 3. ACE=FILE_ALL_ACCESS (Vollzugriff)
Größe des 4.ACEs=24
ACE Typ des 4.ACEs=ACCESS_ALLOWED_ACE_TYPE
Rückgabe de LookupAccountSid=1
Letzter API-Fehler=997
Reset des API-Fehlers se durchgeführt
Rückgabe de ConvertSidToStringSid=1
Letzter API-Fehler=0
Rückgabe de LocalFree para el String-SID=0
Letzter API-Fehler=0
String-SID des 4. ACEs=S-1-5-32-545
4. ACE Bezogen en SID=Benutzer
4. ACE Bezogen en Domainname=VORDEFINIERT
Accessrechte des 4. ACEs=$1200A9
Recht en el 4. ACE=FILE_READ_DATA (Erlaubt Daten de una File a lesen)
Recht en el 4. ACE=FILE_READ_EA (Erlaubt erweiterte Attibute a lesen)
Recht en el 4. ACE=FILE_EXECUTE (Erlaubt una Expediente auszuführen)
Recht en el 4. ACE=FILE_READ_ATTRIBUTES (Lesen el Fileattribute)
Recht en el 4. ACE=READ_CONTROL (Lesen el DACL Einträge y Besitzer)
Recht en el 4. ACE=SYNCHRONIZE (Erlaubt una FileHandle en una Complitition I/O a warten)
Rückgabe de LookupAccountName para Jeder=0
Letzter API-Fehler=122
Longitud des SIDs=12
Rückgabe de LookupAccountName para Jeder=1
Letzter API-Fehler=997
Longitud des SIDs=12
Bytes para ACL=28
Rückgabe de InitializeAcl=1
Letzter API-Fehler=997
Rückgabe de GetSecurityDescriptorDacl=1
Letzter API-Fehler=997
Rückgabe de IsValidAcl para el DACL=1
Letzter API-Fehler=997
DACL es disponible!
Rückgabe de GetAclInformation=1
Letzter API-Fehler=997
Anzahl benutzter Bytes en DACL=112
Anzahl freier Bytes en DACL=0
ACEs en DACL=4
Größe des 1.ACEs=24
ACE Typ des 1.ACEs=ACCESS_ALLOWED_ACE_TYPE
Vererbung=0
Rückgabe de LookupAccountSid=1
Letzter API-Fehler=997
Reset des API-Fehlers se durchgeführt
1. ACE Bezogen en SID=Administratoren
Accessrechte des 1. ACEs=$1F01FF
Größe des 2.ACEs=20
ACE Typ des 2.ACEs=ACCESS_ALLOWED_ACE_TYPE
Vererbung=0
Rückgabe de LookupAccountSid=1
Letzter API-Fehler=997
Reset des API-Fehlers se durchgeführt
2. ACE Bezogen en SID=SYSTEM
Accessrechte des 2. ACEs=$1F01FF
Größe des 3.ACEs=36
ACE Typ des 3.ACEs=ACCESS_ALLOWED_ACE_TYPE
Vererbung=0
Rückgabe de LookupAccountSid=0
Letzter API-Fehler=1332
Reset des API-Fehlers se durchgeführt
3. ACE Bezogen en SID=
Accessrechte des 3. ACEs=$1F01FF
Größe des 4.ACEs=24
ACE Typ des 4.ACEs=ACCESS_ALLOWED_ACE_TYPE
Vererbung=0
Rückgabe de LookupAccountSid=1
Letzter API-Fehler=997
Reset des API-Fehlers se durchgeführt
4. ACE Bezogen en SID=Benutzer
Accessrechte des 4. ACEs=$1200A9
En DENIED_ACE...
...a addierende Rechte=$10000
Rückgabe de AddAce=1
Letzter API-Fehler=0
Rückgabe de IsValidAcl para el selbsterzeugten DACL=1
Letzter API-Fehler=0
Rückgabe de InitializeSecurityDescriptor=1
Letzter API-Fehler=0
Rückgabe de SetSecurityDescriptorDacl=1
Letzter API-Fehler=0
Rückgabe de SetFileSecurity=1
Letzter API-Fehler=0
Fehlercode IsValidSid=1
Letzter API Fehler=0
Fehlercode LookupAccountSid=1
Letzter API Fehler=997
Jeder
****PROZEDUR comenzó****
Gewählte Datei=C:druck.txt
Gruppenname/Username=Jeder
Zu 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
Letzter API-Fehler=997
Rückgabe de GetVolumeInformation=1
Letzter API-Fehler=997
Laufwerksflags=1110000000011111111
Ausgelesene Partition=NTFS
Zugriff es einschränkbar
Rückgabe de GetFileSecurity=0
Letzter API-Fehler=122
Erforderliche Longitud des Security Descriptor=104
Rückgabe de GetFileSecurity=1
Letzter API-Fehler=0
Rückgabe de IsValidSecurityDescriptor=1
Letzter API-Fehler=0
Rückgabe de GetSecurityDescriptorDacl=1
Letzter API-Fehler=0
Rückgabe de IsValidAcl para el DACL=1
Letzter API-Fehler=0
DACL es disponible!
Rückgabe de GetAclInformation=1
Letzter API-Fehler=0
Anzahl benutzter Bytes en DACL=28
Anzahl freier Bytes en DACL=0
ACEs en DACL=1
Größe des 1.ACEs=20
ACE Typ des 1.ACEs=ACCESS_DENIED_ACE_TYPE
Rückgabe de LookupAccountSid=1
Letzter API-Fehler=997
Reset des API-Fehlers se durchgeführt
Rückgabe de ConvertSidToStringSid=1
Letzter API-Fehler=0
Rückgabe de LocalFree para el String-SID=0
Letzter API-Fehler=0
String-SID des 1. ACEs=S-1-1-0
1. ACE Bezogen en SID=Jeder
1. ACE Bezogen en Domainname=
Accessrechte des 1. ACEs=$10000
Recht en el 1. ACE=_DELETE (Expediente löschen)
Rückgabe de LookupAccountName para Jeder=0
Letzter API-Fehler=122
Longitud des SIDs=12
Rückgabe de LookupAccountName para Jeder=1
Letzter API-Fehler=997
Longitud des SIDs=12
Bytes para ACL=48
Rückgabe de InitializeAcl=1
Letzter API-Fehler=997
Rückgabe de GetSecurityDescriptorDacl=1
Letzter API-Fehler=997
Rückgabe de IsValidAcl para el DACL=1
Letzter API-Fehler=997
DACL es disponible!
Rückgabe de GetAclInformation=1
Letzter API-Fehler=997
Anzahl benutzter Bytes en DACL=28
Anzahl freier Bytes en DACL=0
ACEs en DACL=1
Größe des 1.ACEs=20
ACE Typ des 1.ACEs=ACCESS_DENIED_ACE_TYPE
Vererbung=0
Rückgabe de LookupAccountSid=1
Letzter API-Fehler=997
Reset des API-Fehlers se durchgeführt
1. ACE Bezogen en SID=Jeder
Accessrechte des 1. ACEs=$10000
En DENIED_ACE a addierende Rechte=$0
Rückgabe de AddAce=1
Letzter API-Fehler=0
Rückgabe de IsValidAcl para el selbsterzeugten DACL=1
Letzter API-Fehler=0
En ALLOWED_ACE...
...a addierende Rechte=$1101BF
Rückgabe de AddAce=1
Letzter API-Fehler=0
Rückgabe de IsValidAcl para el selbsterzeugten DACL=1
Letzter API-Fehler=0
Rückgabe de InitializeSecurityDescriptor=1
Letzter API-Fehler=0
Rückgabe de SetSecurityDescriptorDacl=1
Letzter API-Fehler=0
Rückgabe de SetFileSecurity=1
Letzter API-Fehler=0
Fehlercode IsValidSid=1
Letzter API Fehler=0
Fehlercode LookupAccountSid=1
Letzter API Fehler=997
Administratoren
****PROZEDUR comenzó****
Gewählte Datei=C:druck.txt
Gruppenname/Username=Administratoren
Zu 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
Letzter API-Fehler=997
Rückgabe de GetVolumeInformation=1
Letzter API-Fehler=997
Laufwerksflags=1110000000011111111
Ausgelesene Partition=NTFS
Zugriff es einschränkbar
Rückgabe de GetFileSecurity=0
Letzter API-Fehler=122
Erforderliche Longitud des Security Descriptor=124
Rückgabe de GetFileSecurity=1
Letzter API-Fehler=0
Rückgabe de IsValidSecurityDescriptor=1
Letzter API-Fehler=0
Rückgabe de GetSecurityDescriptorDacl=1
Letzter API-Fehler=0
Rückgabe de IsValidAcl para el DACL=1
Letzter API-Fehler=0
DACL es disponible!
Rückgabe de GetAclInformation=1
Letzter API-Fehler=0
Anzahl benutzter Bytes en DACL=48
Anzahl freier Bytes en DACL=0
ACEs en DACL=2
Größe des 1.ACEs=20
ACE Typ des 1.ACEs=ACCESS_DENIED_ACE_TYPE
Rückgabe de LookupAccountSid=1
Letzter API-Fehler=997
Reset des API-Fehlers se durchgeführt
Rückgabe de ConvertSidToStringSid=1
Letzter API-Fehler=0
Rückgabe de LocalFree para el String-SID=0
Letzter API-Fehler=0
String-SID des 1. ACEs=S-1-1-0
1. ACE Bezogen en SID=Jeder
1. ACE Bezogen en Domainname=
Accessrechte des 1. ACEs=$0
Größe des 2.ACEs=20
ACE Typ des 2.ACEs=ACCESS_ALLOWED_ACE_TYPE
Rückgabe de LookupAccountSid=1
Letzter API-Fehler=997
Reset des API-Fehlers se durchgeführt
Rückgabe de ConvertSidToStringSid=1
Letzter API-Fehler=0
Rückgabe de LocalFree para el String-SID=0
Letzter API-Fehler=0
String-SID des 2. ACEs=S-1-1-0
2. ACE Bezogen en SID=Jeder
2. ACE Bezogen en Domainname=
Accessrechte des 2. ACEs=$1101BF
Recht en el 2. ACE=FILE_READ_DATA (Erlaubt Daten de una File a lesen)
Recht en el 2. ACE=FILE_WRITE_DATA (Erlaubt Daten a Scheiben)
Recht en el 2. ACE=FILE_APPEND_DATA (Erlaubt Daten anzuhängen)
Recht en el 2. ACE=FILE_READ_EA (Erlaubt erweiterte Attibute a lesen)
Recht en el 2. ACE=FILE_WRITE_EA (Erlaubt erweiterte Atributos a escribir)
Recht en el 2. ACE=FILE_EXECUTE (Erlaubt una Expediente auszuführen)
Recht en el 2. ACE=FILE_READ_ATTRIBUTES (Lesen el Fileattribute)
Recht en el 2. ACE=FILE_WRITE_ATTRIBUTES (Cambio el Fileattribute)
Recht en el 2. ACE=SYNCHRONIZE (Erlaubt una FileHandle en una Complitition I/O a warten)
Recht en el 2. ACE=_DELETE (Expediente löschen)
Rückgabe de LookupAccountName para Administratoren=0
Letzter API-Fehler=122
Longitud des SIDs=16
Rückgabe de LookupAccountName para Administratoren=1
Letzter API-Fehler=997
Longitud des SIDs=16
Bytes para ACL=72
Rückgabe de InitializeAcl=1
Letzter API-Fehler=997
Rückgabe de GetSecurityDescriptorDacl=1
Letzter API-Fehler=997
Rückgabe de IsValidAcl para el DACL=1
Letzter API-Fehler=997
DACL es disponible!
Rückgabe de GetAclInformation=1
Letzter API-Fehler=997
Anzahl benutzter Bytes en DACL=48
Anzahl freier Bytes en DACL=0
ACEs en DACL=2
Größe des 1.ACEs=20
ACE Typ des 1.ACEs=ACCESS_DENIED_ACE_TYPE
Vererbung=0
Rückgabe de LookupAccountSid=1
Letzter API-Fehler=997
Reset des API-Fehlers se durchgeführt
1. ACE Bezogen en SID=Jeder
Accessrechte des 1. ACEs=$0
Rückgabe de AddAce=1
Letzter API-Fehler=0
Rückgabe de IsValidAcl para el selbsterzeugten DACL=1
Letzter API-Fehler=0
Größe des 2.ACEs=20
ACE Typ des 2.ACEs=ACCESS_ALLOWED_ACE_TYPE
Vererbung=0
Rückgabe de LookupAccountSid=1
Letzter API-Fehler=997
Reset des API-Fehlers se durchgeführt
2. ACE Bezogen en SID=Jeder
Accessrechte des 2. ACEs=$1101BF
Rückgabe de AddAce=1
Letzter API-Fehler=0
Rückgabe de IsValidAcl para el selbsterzeugten DACL=1
Letzter API-Fehler=0
En ALLOWED_ACE...
...a addierende Rechte=$11F01FF
Rückgabe de AddAce=1
Letzter API-Fehler=0
Rückgabe de IsValidAcl para el selbsterzeugten DACL=1
Letzter API-Fehler=0
Rückgabe de InitializeSecurityDescriptor=1
Letzter API-Fehler=0
Rückgabe de SetSecurityDescriptorDacl=1
Letzter API-Fehler=0
Rückgabe de SetFileSecurity=1
Letzter API-Fehler=0
[/quote:cba7059298]
Rolf
 
21.05.2005  
 



¡Hola Rolf...

Sieht en el ersten Blick bastante bien de. Hauts hin oder gibts Problemas? Stimmt el con el Werten en el Explorer uberein?
 
21.05.2005  
 




Rolf
Koch
So Yo lo en el ersten Blick sehe, es alles OK.
Werde aber determinado weitertesten. Gehe igual aber zuerst veces en una IN EXTREMO Konzert aquí en Koblenz *freu*

Rolf
 
21.05.2005  
 



Hab beim Spielen con el PROC todavía unos pocos Fehler entdeckt.
KompilierenMarcaSeparación
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 Expediente$,@$(0),"-","F_DELETE" Get_Group_Name "Administratoren" Set_ACE_IN_DACL Expediente$,@$(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)

34 kB
Hochgeladen:21.05.2005
Ladeanzahl41
Descargar
 
21.05.2005  
 



So?[quote:3d16bd5b50]Fehlercode IsValidSid=1
Letzter API Fehler=0
Fehlercode LookupAccountSid=1
Letzter API Fehler=997
Jeder
****PROZEDUR comenzó****
Gewaehlte Datei=Cokumente y EinstellungenPackard BellDesktopwischenablage01.bmp
Gruppenname/Username=Jeder
Zu 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
Letzter API-Fehler=997
Raeckgabe de GetVolumeInformation=1
Letzter API-Fehler=997
Laufwerksflags=1010000000011111111
Ausgelesene Partition=NTFS
Zugriff es einschraenkbar
Raeckgabe de GetFileSecurity=0
Letzter API-Fehler=122
Erforderliche Laenge des Security Descriptor=164
Raeckgabe de GetFileSecurity=1
Letzter API-Fehler=0
Raeckgabe de IsValidSecurityDescriptor=1
Letzter API-Fehler=0
Raeckgabe de GetSecurityDescriptorDacl=1
Letzter API-Fehler=0
Raeckgabe de IsValidAcl faer el DACL=1
Letzter API-Fehler=0
DACL es disponible!
Raeckgabe de GetAclInformation=1
Letzter API-Fehler=0
Anzahl benutzter Bytes en DACL=88
Anzahl freier Bytes en DACL=0
ACEs en DACL=3
Graeße des 1.ACEs=36
ACE Typ des 1.ACEs=ACCESS_ALLOWED_ACE_TYPE
Fehlercode IsValidSid=1
Letzter API Fehler=0
Raeckgabe de LookupAccountSid=1
Letzter API-Fehler=997
Reset des API-Fehlers se durchgefaehrt
Raeckgabe de ConvertSidToStringSid=1
Letzter API-Fehler=0
Raeckgabe de LocalFree faer el String-SID=0
Letzter API-Fehler=0
String-SID des 1. ACEs=S-1-5-21-789336058-1343024091-854245398-1004
1. ACE Bezogen en SID=Packard Bell
1. ACE Bezogen en Domainname=C4
Accessrechte des 1. ACEs=$1F01FF
Recht en el 1. ACE=FILE_ALL_ACCESS (Vollzugriff)
Graeße des 2.ACEs=20
ACE Typ des 2.ACEs=ACCESS_ALLOWED_ACE_TYPE
Fehlercode IsValidSid=1
Letzter API Fehler=0
Raeckgabe de LookupAccountSid=1
Letzter API-Fehler=997
Reset des API-Fehlers se durchgefaehrt
Raeckgabe de ConvertSidToStringSid=1
Letzter API-Fehler=0
Raeckgabe de LocalFree faer el String-SID=0
Letzter API-Fehler=0
String-SID des 2. ACEs=S-1-5-18
2. ACE Bezogen en SID=SYSTEM
2. ACE Bezogen en Domainname=NT-AUTORITÄT
Accessrechte des 2. ACEs=$1F01FF
Recht en el 2. ACE=FILE_ALL_ACCESS (Vollzugriff)
Graeße des 3.ACEs=24
ACE Typ des 3.ACEs=ACCESS_ALLOWED_ACE_TYPE
Fehlercode IsValidSid=1
Letzter API Fehler=0
Raeckgabe de LookupAccountSid=1
Letzter API-Fehler=997
Reset des API-Fehlers se durchgefaehrt
Raeckgabe de ConvertSidToStringSid=1
Letzter API-Fehler=0
Raeckgabe de LocalFree faer el String-SID=0
Letzter API-Fehler=0
String-SID des 3. ACEs=S-1-5-32-544
3. ACE Bezogen en SID=Administratoren
3. ACE Bezogen en Domainname=VORDEFINIERT
Accessrechte des 3. ACEs=$1F01FF
Recht en el 3. ACE=FILE_ALL_ACCESS (Vollzugriff)
Raeckgabe de LookupAccountName faer Jeder=0
Letzter API-Fehler=122
Laenge des SIDs=12
Raeckgabe de LookupAccountName faer Jeder=1
Letzter API-Fehler=997
Laenge des SIDs=12
Bytes faer ACL=108
Raeckgabe de InitializeAcl=1
Letzter API-Fehler=997
Raeckgabe de GetSecurityDescriptorDacl=1
Letzter API-Fehler=997
Raeckgabe de IsValidAcl faer el DACL=1
Letzter API-Fehler=997
DACL es disponible!
Raeckgabe de GetAclInformation=1
Letzter API-Fehler=997
Anzahl benutzter Bytes en DACL=88
Anzahl freier Bytes en DACL=0
ACEs en DACL=3
Graeße des 1.ACEs=36
ACE Typ des 1.ACEs=ACCESS_ALLOWED_ACE_TYPE
Vererbung=16
Fehlercode IsValidSid=1
Letzter API Fehler=997
Raeckgabe de LookupAccountSid=0
Letzter API-Fehler=1332
Reset des API-Fehlers se durchgefaehrt
1. ACE Bezogen en SID=
Accessrechte des 1. ACEs=$1F01FF
Raeckgabe de AddAce a Punkt 0=0
Letzter API-Fehler=87
Raeckgabe de IsValidAcl faer el selbsterzeugten DACL=0
Letzter API-Fehler=87
Graeße des 2.ACEs=20
ACE Typ des 2.ACEs=ACCESS_ALLOWED_ACE_TYPE
Vererbung=16
Fehlercode IsValidSid=1
Letzter API Fehler=87
Raeckgabe de LookupAccountSid=1
Letzter API-Fehler=997
Reset des API-Fehlers se durchgefaehrt
2. ACE Bezogen en SID=SYSTEM
Accessrechte des 2. ACEs=$1F01FF
Raeckgabe de AddAce a Punkt 1=0
Letzter API-Fehler=87
Raeckgabe de IsValidAcl faer el selbsterzeugten DACL=0
Letzter API-Fehler=87
Graeße des 3.ACEs=24
ACE Typ des 3.ACEs=ACCESS_ALLOWED_ACE_TYPE
Vererbung=16
Fehlercode IsValidSid=1
Letzter API Fehler=87
Raeckgabe de LookupAccountSid=1
Letzter API-Fehler=997
Reset des API-Fehlers se durchgefaehrt
3. ACE Bezogen en SID=Administratoren
Accessrechte des 3. ACEs=$1F01FF
Raeckgabe de AddAce a Punkt 2=1
Letzter API-Fehler=0
Raeckgabe de IsValidAcl faer el selbsterzeugten DACL=1
Letzter API-Fehler=0
En ALLOWED_ACE...
...a addierende Rechte=$1101BF
Raeckgabe de AddAce a Punkt 3=1
Letzter API-Fehler=0
Raeckgabe de IsValidAcl faer el selbsterzeugten DACL=1
Letzter API-Fehler=0
Raeckgabe de InitializeSecurityDescriptor=1
Letzter API-Fehler=0
Raeckgabe de SetSecurityDescriptorDacl=1
Letzter API-Fehler=0
Raeckgabe de SetFileSecurity=1
Letzter API-Fehler=0
Fehlercode IsValidSid=1
Letzter API Fehler=0
Fehlercode LookupAccountSid=1
Letzter API Fehler=997
Jeder
****PROZEDUR comenzó****
Gewaehlte Datei=Cokumente y EinstellungenPackard BellDesktopwischenablage01.bmp
Gruppenname/Username=Jeder
Zu Addierende Rechte=...
F_DELETE
Letzter API-Fehler=997
Raeckgabe de GetVolumeInformation=1
Letzter API-Fehler=997
Laufwerksflags=1010000000011111111
Ausgelesene Partition=NTFS
Zugriff es einschraenkbar
Raeckgabe de GetFileSecurity=0
Letzter API-Fehler=122
Erforderliche Laenge des Security Descriptor=184
Raeckgabe de GetFileSecurity=1
Letzter API-Fehler=0
Raeckgabe de IsValidSecurityDescriptor=1
Letzter API-Fehler=0
Raeckgabe de GetSecurityDescriptorDacl=1
Letzter API-Fehler=0
Raeckgabe de IsValidAcl faer el DACL=1
Letzter API-Fehler=0
DACL es disponible!
Raeckgabe de GetAclInformation=1
Letzter API-Fehler=0
Anzahl benutzter Bytes en DACL=52
Anzahl freier Bytes en DACL=56
ACEs en DACL=2
Graeße des 1.ACEs=24
ACE Typ des 1.ACEs=ACCESS_ALLOWED_ACE_TYPE
Fehlercode IsValidSid=1
Letzter API Fehler=0
Raeckgabe de LookupAccountSid=1
Letzter API-Fehler=997
Reset des API-Fehlers se durchgefaehrt
Raeckgabe de ConvertSidToStringSid=1
Letzter API-Fehler=0
Raeckgabe de LocalFree faer el String-SID=0
Letzter API-Fehler=0
String-SID des 1. ACEs=S-1-5-32-544
1. ACE Bezogen en SID=Administratoren
1. ACE Bezogen en Domainname=VORDEFINIERT
Accessrechte des 1. ACEs=$1F01FF
Recht en el 1. ACE=FILE_ALL_ACCESS (Vollzugriff)
Graeße des 2.ACEs=20
ACE Typ des 2.ACEs=ACCESS_ALLOWED_ACE_TYPE
Fehlercode IsValidSid=1
Letzter API Fehler=0
Raeckgabe de LookupAccountSid=1
Letzter API-Fehler=997
Reset des API-Fehlers se durchgefaehrt
Raeckgabe de ConvertSidToStringSid=1
Letzter API-Fehler=0
Raeckgabe de LocalFree faer el String-SID=0
Letzter API-Fehler=0
String-SID des 2. ACEs=S-1-1-0
2. ACE Bezogen en SID=Jeder
2. ACE Bezogen en Domainname=
Accessrechte des 2. ACEs=$1101BF
Recht en el 2. ACE=FILE_READ_DATA (Erlaubt Daten de una File a lesen)
Recht en el 2. ACE=FILE_WRITE_DATA (Erlaubt Daten a Scheiben)
Recht en el 2. ACE=FILE_APPEND_DATA (Erlaubt Daten anzuhaengen)
Recht en el 2. ACE=FILE_READ_EA (Erlaubt erweiterte Attibute a lesen)
Recht en el 2. ACE=FILE_WRITE_EA (Erlaubt erweiterte Atributos a escribir)
Recht en el 2. ACE=FILE_EXECUTE (Erlaubt una Expediente auszufaehren)
Recht en el 2. ACE=FILE_READ_ATTRIBUTES (Lesen el Fileattribute)
Recht en el 2. ACE=FILE_WRITE_ATTRIBUTES (aendern el Fileattribute)
Recht en el 2. ACE=SYNCHRONIZE (Erlaubt una FileHandle en una Complitition I/O a warten)
Recht en el 2. ACE=_DELETE (Expediente laeschen)
Raeckgabe de LookupAccountName faer Jeder=0
Letzter API-Fehler=122
Laenge des SIDs=12
Raeckgabe de LookupAccountName faer Jeder=1
Letzter API-Fehler=997
Laenge des SIDs=12
Bytes faer ACL=72
Raeckgabe de InitializeAcl=1
Letzter API-Fehler=997
Raeckgabe de GetSecurityDescriptorDacl=1
Letzter API-Fehler=997
Raeckgabe de IsValidAcl faer el DACL=1
Letzter API-Fehler=997
DACL es disponible!
Raeckgabe de GetAclInformation=1
Letzter API-Fehler=997
Anzahl benutzter Bytes en DACL=52
Anzahl freier Bytes en DACL=56
ACEs en DACL=2
Graeße des 1.ACEs=24
ACE Typ des 1.ACEs=ACCESS_ALLOWED_ACE_TYPE
Vererbung=16
Fehlercode IsValidSid=1
Letzter API Fehler=997
Raeckgabe de LookupAccountSid=0
Letzter API-Fehler=1332
Reset des API-Fehlers se durchgefaehrt
1. ACE Bezogen en SID=
Accessrechte des 1. ACEs=$1F01FF
Raeckgabe de AddAce a Punkt 1=0
Letzter API-Fehler=87
Raeckgabe de IsValidAcl faer el selbsterzeugten DACL=0
Letzter API-Fehler=87
Graeße des 2.ACEs=20
ACE Typ des 2.ACEs=ACCESS_ALLOWED_ACE_TYPE
Vererbung=0
Fehlercode IsValidSid=1
Letzter API Fehler=87
Raeckgabe de LookupAccountSid=1
Letzter API-Fehler=997
Reset des API-Fehlers se durchgefaehrt
2. ACE Bezogen en SID=Jeder
Accessrechte des 2. ACEs=$1101BF
En ALLOWED_ACE a addierende Rechte=$1001BF
Raeckgabe de AddAce a Punkt 2=1
Letzter API-Fehler=0
Raeckgabe de IsValidAcl faer el selbsterzeugten DACL=1
Letzter API-Fehler=0
En DENIED_ACE...
...a addierende Rechte=$10000
Raeckgabe de AddAce a Punkt 0=1
Letzter API-Fehler=0
Raeckgabe de IsValidAcl faer el selbsterzeugten DACL=1
Letzter API-Fehler=0
Raeckgabe de InitializeSecurityDescriptor=1
Letzter API-Fehler=0
Raeckgabe de SetSecurityDescriptorDacl=1
Letzter API-Fehler=0
Raeckgabe de SetFileSecurity=1
Letzter API-Fehler=0
Fehlercode IsValidSid=1
Letzter API Fehler=0
Fehlercode LookupAccountSid=1
Letzter API Fehler=997
Administratoren
****PROZEDUR comenzó****
Gewaehlte Datei=Cokumente y EinstellungenPackard BellDesktopwischenablage01.bmp
Gruppenname/Username=Administratoren
Zu 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
Letzter API-Fehler=997
Raeckgabe de GetVolumeInformation=1
Letzter API-Fehler=997
Laufwerksflags=1010000000011111111
Ausgelesene Partition=NTFS
Zugriff es einschraenkbar
Raeckgabe de GetFileSecurity=0
Letzter API-Fehler=122
Erforderliche Laenge des Security Descriptor=148
Raeckgabe de GetFileSecurity=1
Letzter API-Fehler=0
Raeckgabe de IsValidSecurityDescriptor=1
Letzter API-Fehler=0
Raeckgabe de GetSecurityDescriptorDacl=1
Letzter API-Fehler=0
Raeckgabe de IsValidAcl faer el DACL=1
Letzter API-Fehler=0
DACL es disponible!
Raeckgabe de GetAclInformation=1
Letzter API-Fehler=0
Anzahl benutzter Bytes en DACL=48
Anzahl freier Bytes en DACL=24
ACEs en DACL=2
Graeße des 1.ACEs=20
ACE Typ des 1.ACEs=ACCESS_DENIED_ACE_TYPE
Fehlercode IsValidSid=1
Letzter API Fehler=0
Raeckgabe de LookupAccountSid=1
Letzter API-Fehler=997
Reset des API-Fehlers se durchgefaehrt
Raeckgabe de ConvertSidToStringSid=1
Letzter API-Fehler=0
Raeckgabe de LocalFree faer el String-SID=0
Letzter API-Fehler=0
String-SID des 1. ACEs=S-1-1-0
1. ACE Bezogen en SID=Jeder
1. ACE Bezogen en Domainname=
Accessrechte des 1. ACEs=$10000
Recht en el 1. ACE=_DELETE (Expediente laeschen)
Graeße des 2.ACEs=20
ACE Typ des 2.ACEs=ACCESS_ALLOWED_ACE_TYPE
Fehlercode IsValidSid=1
Letzter API Fehler=0
Raeckgabe de LookupAccountSid=1
Letzter API-Fehler=997
Reset des API-Fehlers se durchgefaehrt
Raeckgabe de ConvertSidToStringSid=1
Letzter API-Fehler=0
Raeckgabe de LocalFree faer el String-SID=0
Letzter API-Fehler=0
String-SID des 2. ACEs=S-1-1-0
2. ACE Bezogen en SID=Jeder
2. ACE Bezogen en Domainname=
Accessrechte des 2. ACEs=$1001BF
Recht en el 2. ACE=FILE_READ_DATA (Erlaubt Daten de una File a lesen)
Recht en el 2. ACE=FILE_WRITE_DATA (Erlaubt Daten a Scheiben)
Recht en el 2. ACE=FILE_APPEND_DATA (Erlaubt Daten anzuhaengen)
Recht en el 2. ACE=FILE_READ_EA (Erlaubt erweiterte Attibute a lesen)
Recht en el 2. ACE=FILE_WRITE_EA (Erlaubt erweiterte Atributos a escribir)
Recht en el 2. ACE=FILE_EXECUTE (Erlaubt una Expediente auszufaehren)
Recht en el 2. ACE=FILE_READ_ATTRIBUTES (Lesen el Fileattribute)
Recht en el 2. ACE=FILE_WRITE_ATTRIBUTES (aendern el Fileattribute)
Recht en el 2. ACE=SYNCHRONIZE (Erlaubt una FileHandle en una Complitition I/O a warten)
Raeckgabe de LookupAccountName faer Administratoren=0
Letzter API-Fehler=122
Laenge des SIDs=16
Raeckgabe de LookupAccountName faer Administratoren=1
Letzter API-Fehler=997
Laenge des SIDs=16
Bytes faer ACL=72
Raeckgabe de InitializeAcl=1
Letzter API-Fehler=997
Raeckgabe de GetSecurityDescriptorDacl=1
Letzter API-Fehler=997
Raeckgabe de IsValidAcl faer el DACL=1
Letzter API-Fehler=997
DACL es disponible!
Raeckgabe de GetAclInformation=1
Letzter API-Fehler=997
Anzahl benutzter Bytes en DACL=48
Anzahl freier Bytes en DACL=24
ACEs en DACL=2
Graeße des 1.ACEs=20
ACE Typ des 1.ACEs=ACCESS_DENIED_ACE_TYPE
Vererbung=0
Fehlercode IsValidSid=1
Letzter API Fehler=997
Raeckgabe de LookupAccountSid=1
Letzter API-Fehler=997
Reset des API-Fehlers se durchgefaehrt
1. ACE Bezogen en SID=Jeder
Accessrechte des 1. ACEs=$10000
Raeckgabe de AddAce a Punkt 0=1
Letzter API-Fehler=0
Raeckgabe de IsValidAcl faer el selbsterzeugten DACL=1
Letzter API-Fehler=0
Graeße des 2.ACEs=20
ACE Typ des 2.ACEs=ACCESS_ALLOWED_ACE_TYPE
Vererbung=0
Fehlercode IsValidSid=1
Letzter API Fehler=0
Raeckgabe de LookupAccountSid=1
Letzter API-Fehler=997
Reset des API-Fehlers se durchgefaehrt
2. ACE Bezogen en SID=Jeder
Accessrechte des 2. ACEs=$1001BF
Raeckgabe de AddAce a Punkt 1=1
Letzter API-Fehler=0
Raeckgabe de IsValidAcl faer el selbsterzeugten DACL=1
Letzter API-Fehler=0
En ALLOWED_ACE...
...a addierende Rechte=$11F01FF
Raeckgabe de AddAce a Punkt 2=1
Letzter API-Fehler=0
Raeckgabe de IsValidAcl faer el selbsterzeugten DACL=1
Letzter API-Fehler=0
Raeckgabe de InitializeSecurityDescriptor=1
Letzter API-Fehler=0
Raeckgabe de SetSecurityDescriptorDacl=1
Letzter API-Fehler=0
Raeckgabe de SetFileSecurity=1
Letzter API-Fehler=0[/quote:3d16bd5b50]Salve.
 
21.05.2005  
 



¡Hola IF...

Füge el Expediente Por favor, veces encima el WindowsExplorer 2 weitere ACLs hinzu.
Als driien Aufruf füge entonces veces deinen Usernamen una y lasse el volle Rechte geben (como en Andreas).
Starte entonces una vez el Procedimiento...
Wenn du entonces el ACLS en el Windows Explorer betrachtest - fueron ellos correcto gesetzt???
 
21.05.2005  
 



 
- Página 2 -


Das hast Usted mich ya X-Tiempo gebeten. Puedo nix conjunto - siempre todavía no. Mir fehlt el besagte DLG. Gott weiß por qué - bin UpToDate.

An el XPPro komm Yo grad net ran. Sorry.

Salve.
 
21.05.2005  
 



¡Hola IF...

Ach du warst el . Gibts el bajo XPHome no?
 
21.05.2005  
 



Nochmals @IF...

Der 1332 Fehler en LookupAccountName macht me todavía algo sorgen, Yo pensamiento, el hätte Yo beseitigt. Hast du evtl. el vorherige Versión auch getestet? Wenn sí, Por favor, todavía una vez testen.
 
21.05.2005  
 



Hier el Ergebnis des vorletzten Sources de Usted:[quote:6bcedcfeac]Fehlercode IsValidSid=1
Letzter API Fehler=0
Fehlercode LookupAccountSid=1
Letzter API Fehler=997
Jeder
****PROZEDUR comenzó****
Gewählte Datei=Cokumente y EinstellungenPackard BellDesktopzeichen.jpg
Gruppenname/Username=Jeder
Zu 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
Letzter API-Fehler=997
Rückgabe de GetVolumeInformation=1
Letzter API-Fehler=997
Laufwerksflags=1010000000011111111
Ausgelesene Partition=NTFS
Zugriff es einschränkbar
Rückgabe de GetFileSecurity=0
Letzter API-Fehler=122
Erforderliche Longitud des Security Descriptor=164
Rückgabe de GetFileSecurity=1
Letzter API-Fehler=0
Rückgabe de IsValidSecurityDescriptor=1
Letzter API-Fehler=0
Rückgabe de GetSecurityDescriptorDacl=1
Letzter API-Fehler=0
Rückgabe de IsValidAcl para el DACL=1
Letzter API-Fehler=0
DACL es disponible!
Rückgabe de GetAclInformation=1
Letzter API-Fehler=0
Anzahl benutzter Bytes en DACL=88
Anzahl freier Bytes en DACL=0
ACEs en DACL=3
Größe des 1.ACEs=36
ACE Typ des 1.ACEs=ACCESS_ALLOWED_ACE_TYPE
Fehlercode IsValidSid=1
Letzter API Fehler=0
Rückgabe de LookupAccountSid=1
Letzter API-Fehler=997
Reset des API-Fehlers se durchgeführt
Rückgabe de ConvertSidToStringSid=1
Letzter API-Fehler=0
Rückgabe de LocalFree para el String-SID=0
Letzter API-Fehler=0
String-SID des 1. ACEs=S-1-5-21-789336058-1343024091-854245398-1004
1. ACE Bezogen en SID=Packard Bell
1. ACE Bezogen en Domainname=C4
Accessrechte des 1. ACEs=$1F01FF
Recht en el 1. ACE=FILE_ALL_ACCESS (Vollzugriff)
Größe des 2.ACEs=20
ACE Typ des 2.ACEs=ACCESS_ALLOWED_ACE_TYPE
Fehlercode IsValidSid=1
Letzter API Fehler=0
Rückgabe de LookupAccountSid=1
Letzter API-Fehler=997
Reset des API-Fehlers se durchgeführt
Rückgabe de ConvertSidToStringSid=1
Letzter API-Fehler=0
Rückgabe de LocalFree para el String-SID=0
Letzter API-Fehler=0
String-SID des 2. ACEs=S-1-5-18
2. ACE Bezogen en SID=SYSTEM
2. ACE Bezogen en Domainname=NT-AUTORITÄT
Accessrechte des 2. ACEs=$1F01FF
Recht en el 2. ACE=FILE_ALL_ACCESS (Vollzugriff)
Größe des 3.ACEs=24
ACE Typ des 3.ACEs=ACCESS_ALLOWED_ACE_TYPE
Fehlercode IsValidSid=1
Letzter API Fehler=0
Rückgabe de LookupAccountSid=1
Letzter API-Fehler=997
Reset des API-Fehlers se durchgeführt
Rückgabe de ConvertSidToStringSid=1
Letzter API-Fehler=0
Rückgabe de LocalFree para el String-SID=0
Letzter API-Fehler=0
String-SID des 3. ACEs=S-1-5-32-544
3. ACE Bezogen en SID=Administratoren
3. ACE Bezogen en Domainname=VORDEFINIERT
Accessrechte des 3. ACEs=$1F01FF
Recht en el 3. ACE=FILE_ALL_ACCESS (Vollzugriff)
Rückgabe de LookupAccountName para Jeder=0
Letzter API-Fehler=122
Longitud des SIDs=12
Rückgabe de LookupAccountName para Jeder=1
Letzter API-Fehler=997
Longitud des SIDs=12
Bytes para ACL=108
Rückgabe de InitializeAcl=1
Letzter API-Fehler=997
Rückgabe de GetSecurityDescriptorDacl=1
Letzter API-Fehler=997
Rückgabe de IsValidAcl para el DACL=1
Letzter API-Fehler=997
DACL es disponible!
Rückgabe de GetAclInformation=1
Letzter API-Fehler=997
Anzahl benutzter Bytes en DACL=88
Anzahl freier Bytes en DACL=0
ACEs en DACL=3
Größe des 1.ACEs=36
ACE Typ des 1.ACEs=ACCESS_ALLOWED_ACE_TYPE
Vererbung=16
Fehlercode IsValidSid=1
Letzter API Fehler=997
Rückgabe de LookupAccountSid=0
Letzter API-Fehler=1332
Reset des API-Fehlers se durchgeführt
1. ACE Bezogen en SID=
Accessrechte des 1. ACEs=$1F01FF
Rückgabe de AddAce a Punkt 0=0
Letzter API-Fehler=87
Rückgabe de IsValidAcl para el selbsterzeugten DACL=0
Letzter API-Fehler=87
Größe des 2.ACEs=20
ACE Typ des 2.ACEs=ACCESS_ALLOWED_ACE_TYPE
Vererbung=16
Fehlercode IsValidSid=1
Letzter API Fehler=87
Rückgabe de LookupAccountSid=1
Letzter API-Fehler=997
Reset des API-Fehlers se durchgeführt
2. ACE Bezogen en SID=SYSTEM
Accessrechte des 2. ACEs=$1F01FF
Rückgabe de AddAce a Punkt 1=0
Letzter API-Fehler=87
Rückgabe de IsValidAcl para el selbsterzeugten DACL=0
Letzter API-Fehler=87
Größe des 3.ACEs=24
ACE Typ des 3.ACEs=ACCESS_ALLOWED_ACE_TYPE
Vererbung=16
Fehlercode IsValidSid=1
Letzter API Fehler=87
Rückgabe de LookupAccountSid=1
Letzter API-Fehler=997
Reset des API-Fehlers se durchgeführt
3. ACE Bezogen en SID=Administratoren
Accessrechte des 3. ACEs=$1F01FF
Rückgabe de AddAce a Punkt 2=1
Letzter API-Fehler=0
Rückgabe de IsValidAcl para el selbsterzeugten DACL=1
Letzter API-Fehler=0
En ALLOWED_ACE...
...a addierende Rechte=$1101BF
Rückgabe de AddAce a Punkt 3=1
Letzter API-Fehler=0
Rückgabe de IsValidAcl para el selbsterzeugten DACL=1
Letzter API-Fehler=0
Rückgabe de InitializeSecurityDescriptor=1
Letzter API-Fehler=0
Rückgabe de SetSecurityDescriptorDacl=1
Letzter API-Fehler=0
Rückgabe de SetFileSecurity=1
Letzter API-Fehler=0
Fehlercode IsValidSid=1
Letzter API Fehler=0
Fehlercode LookupAccountSid=1
Letzter API Fehler=997
Jeder
****PROZEDUR comenzó****
Gewählte Datei=Cokumente y EinstellungenPackard BellDesktopzeichen.jpg
Gruppenname/Username=Jeder
Zu Addierende Rechte=...
F_DELETE
Letzter API-Fehler=997
Rückgabe de GetVolumeInformation=1
Letzter API-Fehler=997
Laufwerksflags=1010000000011111111
Ausgelesene Partition=NTFS
Zugriff es einschränkbar
Rückgabe de GetFileSecurity=0
Letzter API-Fehler=122
Erforderliche Longitud des Security Descriptor=184
Rückgabe de GetFileSecurity=1
Letzter API-Fehler=0
Rückgabe de IsValidSecurityDescriptor=1
Letzter API-Fehler=0
Rückgabe de GetSecurityDescriptorDacl=1
Letzter API-Fehler=0
Rückgabe de IsValidAcl para el DACL=1
Letzter API-Fehler=0
DACL es disponible!
Rückgabe de GetAclInformation=1
Letzter API-Fehler=0
Anzahl benutzter Bytes en DACL=52
Anzahl freier Bytes en DACL=56
ACEs en DACL=2
Größe des 1.ACEs=24
ACE Typ des 1.ACEs=ACCESS_ALLOWED_ACE_TYPE
Fehlercode IsValidSid=1
Letzter API Fehler=0
Rückgabe de LookupAccountSid=1
Letzter API-Fehler=997
Reset des API-Fehlers se durchgeführt
Rückgabe de ConvertSidToStringSid=1
Letzter API-Fehler=0
Rückgabe de LocalFree para el String-SID=0
Letzter API-Fehler=0
String-SID des 1. ACEs=S-1-5-32-544
1. ACE Bezogen en SID=Administratoren
1. ACE Bezogen en Domainname=VORDEFINIERT
Accessrechte des 1. ACEs=$1F01FF
Recht en el 1. ACE=FILE_ALL_ACCESS (Vollzugriff)
Größe des 2.ACEs=20
ACE Typ des 2.ACEs=ACCESS_ALLOWED_ACE_TYPE
Fehlercode IsValidSid=1
Letzter API Fehler=0
Rückgabe de LookupAccountSid=1
Letzter API-Fehler=997
Reset des API-Fehlers se durchgeführt
Rückgabe de ConvertSidToStringSid=1
Letzter API-Fehler=0
Rückgabe de LocalFree para el String-SID=0
Letzter API-Fehler=0
String-SID des 2. ACEs=S-1-1-0
2. ACE Bezogen en SID=Jeder
2. ACE Bezogen en Domainname=
Accessrechte des 2. ACEs=$1101BF
Recht en el 2. ACE=FILE_READ_DATA (Erlaubt Daten de una File a lesen)
Recht en el 2. ACE=FILE_WRITE_DATA (Erlaubt Daten a Scheiben)
Recht en el 2. ACE=FILE_APPEND_DATA (Erlaubt Daten anzuhängen)
Recht en el 2. ACE=FILE_READ_EA (Erlaubt erweiterte Attibute a lesen)
Recht en el 2. ACE=FILE_WRITE_EA (Erlaubt erweiterte Atributos a escribir)
Recht en el 2. ACE=FILE_EXECUTE (Erlaubt una Expediente auszuführen)
Recht en el 2. ACE=FILE_READ_ATTRIBUTES (Lesen el Fileattribute)
Recht en el 2. ACE=FILE_WRITE_ATTRIBUTES (Cambio el Fileattribute)
Recht en el 2. ACE=SYNCHRONIZE (Erlaubt una FileHandle en una Complitition I/O a warten)
Recht en el 2. ACE=_DELETE (Expediente löschen)
Rückgabe de LookupAccountName para Jeder=0
Letzter API-Fehler=122
Longitud des SIDs=12
Rückgabe de LookupAccountName para Jeder=1
Letzter API-Fehler=997
Longitud des SIDs=12
Bytes para ACL=72
Rückgabe de InitializeAcl=1
Letzter API-Fehler=997
Rückgabe de GetSecurityDescriptorDacl=1
Letzter API-Fehler=997
Rückgabe de IsValidAcl para el DACL=1
Letzter API-Fehler=997
DACL es disponible!
Rückgabe de GetAclInformation=1
Letzter API-Fehler=997
Anzahl benutzter Bytes en DACL=52
Anzahl freier Bytes en DACL=56
ACEs en DACL=2
Größe des 1.ACEs=24
ACE Typ des 1.ACEs=ACCESS_ALLOWED_ACE_TYPE
Vererbung=16
Fehlercode IsValidSid=1
Letzter API Fehler=997
Rückgabe de LookupAccountSid=0
Letzter API-Fehler=1332
Reset des API-Fehlers se durchgeführt
1. ACE Bezogen en SID=
Accessrechte des 1. ACEs=$1F01FF
Rückgabe de AddAce a Punkt 1=0
Letzter API-Fehler=87
Rückgabe de IsValidAcl para el selbsterzeugten DACL=0
Letzter API-Fehler=87
Größe des 2.ACEs=20
ACE Typ des 2.ACEs=ACCESS_ALLOWED_ACE_TYPE
Vererbung=0
Fehlercode IsValidSid=1
Letzter API Fehler=87
Rückgabe de LookupAccountSid=1
Letzter API-Fehler=997
Reset des API-Fehlers se durchgeführt
2. ACE Bezogen en SID=Jeder
Accessrechte des 2. ACEs=$1101BF
En ALLOWED_ACE a addierende Rechte=$1001BF
Rückgabe de AddAce a Punkt 2=1
Letzter API-Fehler=0
Rückgabe de IsValidAcl para el selbsterzeugten DACL=1
Letzter API-Fehler=0
En DENIED_ACE...
...a addierende Rechte=$10000
Rückgabe de AddAce a Punkt 0=1
Letzter API-Fehler=0
Rückgabe de IsValidAcl para el selbsterzeugten DACL=1
Letzter API-Fehler=0
Rückgabe de InitializeSecurityDescriptor=1
Letzter API-Fehler=0
Rückgabe de SetSecurityDescriptorDacl=1
Letzter API-Fehler=0
Rückgabe de SetFileSecurity=1
Letzter API-Fehler=0
Fehlercode IsValidSid=1
Letzter API Fehler=0
Fehlercode LookupAccountSid=1
Letzter API Fehler=997
Administratoren
****PROZEDUR comenzó****
Gewählte Datei=Cokumente y EinstellungenPackard BellDesktopzeichen.jpg
Gruppenname/Username=Administratoren
Zu 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
Letzter API-Fehler=997
Rückgabe de GetVolumeInformation=1
Letzter API-Fehler=997
Laufwerksflags=1010000000011111111
Ausgelesene Partition=NTFS
Zugriff es einschränkbar
Rückgabe de GetFileSecurity=0
Letzter API-Fehler=122
Erforderliche Longitud des Security Descriptor=148
Rückgabe de GetFileSecurity=1
Letzter API-Fehler=0
Rückgabe de IsValidSecurityDescriptor=1
Letzter API-Fehler=0
Rückgabe de GetSecurityDescriptorDacl=1
Letzter API-Fehler=0
Rückgabe de IsValidAcl para el DACL=1
Letzter API-Fehler=0
DACL es disponible!
Rückgabe de GetAclInformation=1
Letzter API-Fehler=0
Anzahl benutzter Bytes en DACL=48
Anzahl freier Bytes en DACL=24
ACEs en DACL=2
Größe des 1.ACEs=20
ACE Typ des 1.ACEs=ACCESS_DENIED_ACE_TYPE
Fehlercode IsValidSid=1
Letzter API Fehler=0
Rückgabe de LookupAccountSid=1
Letzter API-Fehler=997
Reset des API-Fehlers se durchgeführt
Rückgabe de ConvertSidToStringSid=1
Letzter API-Fehler=0
Rückgabe de LocalFree para el String-SID=0
Letzter API-Fehler=0
String-SID des 1. ACEs=S-1-1-0
1. ACE Bezogen en SID=Jeder
1. ACE Bezogen en Domainname=
Accessrechte des 1. ACEs=$10000
Recht en el 1. ACE=_DELETE (Expediente löschen)
Größe des 2.ACEs=20
ACE Typ des 2.ACEs=ACCESS_ALLOWED_ACE_TYPE
Fehlercode IsValidSid=1
Letzter API Fehler=0
Rückgabe de LookupAccountSid=1
Letzter API-Fehler=997
Reset des API-Fehlers se durchgeführt
Rückgabe de ConvertSidToStringSid=1
Letzter API-Fehler=0
Rückgabe de LocalFree para el String-SID=0
Letzter API-Fehler=0
String-SID des 2. ACEs=S-1-1-0
2. ACE Bezogen en SID=Jeder
2. ACE Bezogen en Domainname=
Accessrechte des 2. ACEs=$1001BF
Recht en el 2. ACE=FILE_READ_DATA (Erlaubt Daten de una File a lesen)
Recht en el 2. ACE=FILE_WRITE_DATA (Erlaubt Daten a Scheiben)
Recht en el 2. ACE=FILE_APPEND_DATA (Erlaubt Daten anzuhängen)
Recht en el 2. ACE=FILE_READ_EA (Erlaubt erweiterte Attibute a lesen)
Recht en el 2. ACE=FILE_WRITE_EA (Erlaubt erweiterte Atributos a escribir)
Recht en el 2. ACE=FILE_EXECUTE (Erlaubt una Expediente auszuführen)
Recht en el 2. ACE=FILE_READ_ATTRIBUTES (Lesen el Fileattribute)
Recht en el 2. ACE=FILE_WRITE_ATTRIBUTES (Cambio el Fileattribute)
Recht en el 2. ACE=SYNCHRONIZE (Erlaubt una FileHandle en una Complitition I/O a warten)
Rückgabe de LookupAccountName para Administratoren=0
Letzter API-Fehler=122
Longitud des SIDs=16
Rückgabe de LookupAccountName para Administratoren=1
Letzter API-Fehler=997
Longitud des SIDs=16
Bytes para ACL=72
Rückgabe de InitializeAcl=1
Letzter API-Fehler=997
Rückgabe de GetSecurityDescriptorDacl=1
Letzter API-Fehler=997
Rückgabe de IsValidAcl para el DACL=1
Letzter API-Fehler=997
DACL es disponible!
Rückgabe de GetAclInformation=1
Letzter API-Fehler=997
Anzahl benutzter Bytes en DACL=48
Anzahl freier Bytes en DACL=24
ACEs en DACL=2
Größe des 1.ACEs=20
ACE Typ des 1.ACEs=ACCESS_DENIED_ACE_TYPE
Vererbung=0
Fehlercode IsValidSid=1
Letzter API Fehler=997
Rückgabe de LookupAccountSid=1
Letzter API-Fehler=997
Reset des API-Fehlers se durchgeführt
1. ACE Bezogen en SID=Jeder
Accessrechte des 1. ACEs=$10000
Rückgabe de AddAce a Punkt 0=1
Letzter API-Fehler=0
Rückgabe de IsValidAcl para el selbsterzeugten DACL=1
Letzter API-Fehler=0
Größe des 2.ACEs=20
ACE Typ des 2.ACEs=ACCESS_ALLOWED_ACE_TYPE
Vererbung=0
Fehlercode IsValidSid=1
Letzter API Fehler=0
Rückgabe de LookupAccountSid=1
Letzter API-Fehler=997
Reset des API-Fehlers se durchgeführt
2. ACE Bezogen en SID=Jeder
Accessrechte des 2. ACEs=$1001BF
Rückgabe de AddAce a Punkt 1=1
Letzter API-Fehler=0
Rückgabe de IsValidAcl para el selbsterzeugten DACL=1
Letzter API-Fehler=0
En ALLOWED_ACE...
...a addierende Rechte=$11F01FF
Rückgabe de AddAce a Punkt 2=1
Letzter API-Fehler=0
Rückgabe de IsValidAcl para el selbsterzeugten DACL=1
Letzter API-Fehler=0
Rückgabe de InitializeSecurityDescriptor=1
Letzter API-Fehler=0
Rückgabe de SetSecurityDescriptorDacl=1
Letzter API-Fehler=0
Rückgabe de SetFileSecurity=1
Letzter API-Fehler=0[/quote:6bcedcfeac]Das Ergebnis des letzten Sources de Usted es el Vorherige.

Salve.
 
21.05.2005  
 



Besten Dank! Hab el Fehler. So läufts (hoffentlich) tadellos.
KompilierenMarcaSeparación
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 Expediente$,@$(0),"-","F_DELETE" Get_Group_Name "Administratoren" Set_ACE_IN_DACL Expediente$,@$(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)
 
21.05.2005  
 



[quote:8354fe1111]Fehlercode IsValidSid=1
Letzter API Fehler=0
Fehlercode LookupAccountSid=1
Letzter API Fehler=997
Jeder
****PROZEDUR comenzó****
Gewählte Datei=Cokumente y EinstellungenPackard BellDesktopunbenannt.bmp
Gruppenname/Username=Jeder
Zu 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
Letzter API-Fehler=997
Rückgabe de GetVolumeInformation=1
Letzter API-Fehler=997
Laufwerksflags=1010000000011111111
Ausgelesene Partition=NTFS
Zugriff es einschränkbar
Rückgabe de GetFileSecurity=0
Letzter API-Fehler=122
Erforderliche Longitud des Security Descriptor=164
Rückgabe de GetFileSecurity=1
Letzter API-Fehler=0
Rückgabe de IsValidSecurityDescriptor=1
Letzter API-Fehler=0
Rückgabe de GetSecurityDescriptorDacl=1
Letzter API-Fehler=0
Rückgabe de IsValidAcl para el DACL=1
Letzter API-Fehler=0
DACL es disponible!
Rückgabe de GetAclInformation=1
Letzter API-Fehler=0
Anzahl benutzter Bytes en DACL=88
Anzahl freier Bytes en DACL=0
ACEs en DACL=3
Größe des 1.ACEs=36
ACE Typ des 1.ACEs=ACCESS_ALLOWED_ACE_TYPE
Fehlercode IsValidSid=1
Letzter API Fehler=0
Rückgabe de LookupAccountSid=1
Letzter API-Fehler=997
Reset des API-Fehlers se durchgeführt
Rückgabe de ConvertSidToStringSid=1
Letzter API-Fehler=0
Rückgabe de LocalFree para el String-SID=0
Letzter API-Fehler=0
String-SID des 1. ACEs=S-1-5-21-789336058-1343024091-854245398-1004
1. ACE Bezogen en SID=Packard Bell
1. ACE Bezogen en Domainname=C4
Accessrechte des 1. ACEs=$1F01FF
Recht en el 1. ACE=FILE_ALL_ACCESS (Vollzugriff)
Größe des 2.ACEs=20
ACE Typ des 2.ACEs=ACCESS_ALLOWED_ACE_TYPE
Fehlercode IsValidSid=1
Letzter API Fehler=0
Rückgabe de LookupAccountSid=1
Letzter API-Fehler=997
Reset des API-Fehlers se durchgeführt
Rückgabe de ConvertSidToStringSid=1
Letzter API-Fehler=0
Rückgabe de LocalFree para el String-SID=0
Letzter API-Fehler=0
String-SID des 2. ACEs=S-1-5-18
2. ACE Bezogen en SID=SYSTEM
2. ACE Bezogen en Domainname=NT-AUTORITÄT
Accessrechte des 2. ACEs=$1F01FF
Recht en el 2. ACE=FILE_ALL_ACCESS (Vollzugriff)
Größe des 3.ACEs=24
ACE Typ des 3.ACEs=ACCESS_ALLOWED_ACE_TYPE
Fehlercode IsValidSid=1
Letzter API Fehler=0
Rückgabe de LookupAccountSid=1
Letzter API-Fehler=997
Reset des API-Fehlers se durchgeführt
Rückgabe de ConvertSidToStringSid=1
Letzter API-Fehler=0
Rückgabe de LocalFree para el String-SID=0
Letzter API-Fehler=0
String-SID des 3. ACEs=S-1-5-32-544
3. ACE Bezogen en SID=Administratoren
3. ACE Bezogen en Domainname=VORDEFINIERT
Accessrechte des 3. ACEs=$1F01FF
Recht en el 3. ACE=FILE_ALL_ACCESS (Vollzugriff)
Rückgabe de LookupAccountName para Jeder=0
Letzter API-Fehler=122
Longitud des SIDs=12
Rückgabe de LookupAccountName para Jeder=1
Letzter API-Fehler=997
Longitud des SIDs=12
Bytes para ACL=108
Rückgabe de InitializeAcl=1
Letzter API-Fehler=997
Rückgabe de GetSecurityDescriptorDacl=1
Letzter API-Fehler=997
Rückgabe de IsValidAcl para el DACL=1
Letzter API-Fehler=997
DACL es disponible!
Rückgabe de GetAclInformation=1
Letzter API-Fehler=997
Anzahl benutzter Bytes en DACL=88
Anzahl freier Bytes en DACL=0
ACEs en DACL=3
Größe des 1.ACEs=36
ACE Typ des 1.ACEs=ACCESS_ALLOWED_ACE_TYPE
Vererbung=16
Fehlercode IsValidSid=1
Letzter API Fehler=997
Rückgabe de LookupAccountSid=1
Letzter API-Fehler=997
Reset des API-Fehlers se durchgeführt
1. ACE Bezogen en SID=Packard Bell
Accessrechte des 1. ACEs=$1F01FF
Rückgabe de AddAce a Punkt 0=1
Letzter API-Fehler=0
Rückgabe de IsValidAcl para el selbsterzeugten DACL=1
Letzter API-Fehler=0
Größe des 2.ACEs=20
ACE Typ des 2.ACEs=ACCESS_ALLOWED_ACE_TYPE
Vererbung=16
Fehlercode IsValidSid=1
Letzter API Fehler=0
Rückgabe de LookupAccountSid=1
Letzter API-Fehler=997
Reset des API-Fehlers se durchgeführt
2. ACE Bezogen en SID=SYSTEM
Accessrechte des 2. ACEs=$1F01FF
Rückgabe de AddAce a Punkt 1=1
Letzter API-Fehler=0
Rückgabe de IsValidAcl para el selbsterzeugten DACL=1
Letzter API-Fehler=0
Größe des 3.ACEs=24
ACE Typ des 3.ACEs=ACCESS_ALLOWED_ACE_TYPE
Vererbung=16
Fehlercode IsValidSid=1
Letzter API Fehler=0
Rückgabe de LookupAccountSid=1
Letzter API-Fehler=997
Reset des API-Fehlers se durchgeführt
3. ACE Bezogen en SID=Administratoren
Accessrechte des 3. ACEs=$1F01FF
Rückgabe de AddAce a Punkt 2=1
Letzter API-Fehler=0
Rückgabe de IsValidAcl para el selbsterzeugten DACL=1
Letzter API-Fehler=0
En ALLOWED_ACE...
...a addierende Rechte=$1101BF
Rückgabe de AddAce a Punkt 3=1
Letzter API-Fehler=0
Rückgabe de IsValidAcl para el selbsterzeugten DACL=1
Letzter API-Fehler=0
Rückgabe de InitializeSecurityDescriptor=1
Letzter API-Fehler=0
Rückgabe de SetSecurityDescriptorDacl=1
Letzter API-Fehler=0
Rückgabe de SetFileSecurity=1
Letzter API-Fehler=0
Fehlercode IsValidSid=1
Letzter API Fehler=0
Fehlercode LookupAccountSid=1
Letzter API Fehler=997
Jeder
****PROZEDUR comenzó****
Gewählte Datei=Cokumente y EinstellungenPackard BellDesktopunbenannt.bmp
Gruppenname/Username=Jeder
Zu Addierende Rechte=...
F_DELETE
Letzter API-Fehler=997
Rückgabe de GetVolumeInformation=1
Letzter API-Fehler=997
Laufwerksflags=1010000000011111111
Ausgelesene Partition=NTFS
Zugriff es einschränkbar
Rückgabe de GetFileSecurity=0
Letzter API-Fehler=122
Erforderliche Longitud des Security Descriptor=184
Rückgabe de GetFileSecurity=1
Letzter API-Fehler=0
Rückgabe de IsValidSecurityDescriptor=1
Letzter API-Fehler=0
Rückgabe de GetSecurityDescriptorDacl=1
Letzter API-Fehler=0
Rückgabe de IsValidAcl para el DACL=1
Letzter API-Fehler=0
DACL es disponible!
Rückgabe de GetAclInformation=1
Letzter API-Fehler=0
Anzahl benutzter Bytes en DACL=108
Anzahl freier Bytes en DACL=0
ACEs en DACL=4
Größe des 1.ACEs=36
ACE Typ des 1.ACEs=ACCESS_ALLOWED_ACE_TYPE
Fehlercode IsValidSid=1
Letzter API Fehler=0
Rückgabe de LookupAccountSid=1
Letzter API-Fehler=997
Reset des API-Fehlers se durchgeführt
Rückgabe de ConvertSidToStringSid=1
Letzter API-Fehler=0
Rückgabe de LocalFree para el String-SID=0
Letzter API-Fehler=0
String-SID des 1. ACEs=S-1-5-21-789336058-1343024091-854245398-1004
1. ACE Bezogen en SID=Packard Bell
1. ACE Bezogen en Domainname=C4
Accessrechte des 1. ACEs=$1F01FF
Recht en el 1. ACE=FILE_ALL_ACCESS (Vollzugriff)
Größe des 2.ACEs=20
ACE Typ des 2.ACEs=ACCESS_ALLOWED_ACE_TYPE
Fehlercode IsValidSid=1
Letzter API Fehler=0
Rückgabe de LookupAccountSid=1
Letzter API-Fehler=997
Reset des API-Fehlers se durchgeführt
Rückgabe de ConvertSidToStringSid=1
Letzter API-Fehler=0
Rückgabe de LocalFree para el String-SID=0
Letzter API-Fehler=0
String-SID des 2. ACEs=S-1-5-18
2. ACE Bezogen en SID=SYSTEM
2. ACE Bezogen en Domainname=NT-AUTORITÄT
Accessrechte des 2. ACEs=$1F01FF
Recht en el 2. ACE=FILE_ALL_ACCESS (Vollzugriff)
Größe des 3.ACEs=24
ACE Typ des 3.ACEs=ACCESS_ALLOWED_ACE_TYPE
Fehlercode IsValidSid=1
Letzter API Fehler=0
Rückgabe de LookupAccountSid=1
Letzter API-Fehler=997
Reset des API-Fehlers se durchgeführt
Rückgabe de ConvertSidToStringSid=1
Letzter API-Fehler=0
Rückgabe de LocalFree para el String-SID=0
Letzter API-Fehler=0
String-SID des 3. ACEs=S-1-5-32-544
3. ACE Bezogen en SID=Administratoren
3. ACE Bezogen en Domainname=VORDEFINIERT
Accessrechte des 3. ACEs=$1F01FF
Recht en el 3. ACE=FILE_ALL_ACCESS (Vollzugriff)
Größe des 4.ACEs=20
ACE Typ des 4.ACEs=ACCESS_ALLOWED_ACE_TYPE
Fehlercode IsValidSid=1
Letzter API Fehler=0
Rückgabe de LookupAccountSid=1
Letzter API-Fehler=997
Reset des API-Fehlers se durchgeführt
Rückgabe de ConvertSidToStringSid=1
Letzter API-Fehler=0
Rückgabe de LocalFree para el String-SID=0
Letzter API-Fehler=0
String-SID des 4. ACEs=S-1-1-0
4. ACE Bezogen en SID=Jeder
4. ACE Bezogen en Domainname=
Accessrechte des 4. ACEs=$1101BF
Recht en el 4. ACE=FILE_READ_DATA (Erlaubt Daten de una File a lesen)
Recht en el 4. ACE=FILE_WRITE_DATA (Erlaubt Daten a Scheiben)
Recht en el 4. ACE=FILE_APPEND_DATA (Erlaubt Daten anzuhängen)
Recht en el 4. ACE=FILE_READ_EA (Erlaubt erweiterte Attibute a lesen)
Recht en el 4. ACE=FILE_WRITE_EA (Erlaubt erweiterte Atributos a escribir)
Recht en el 4. ACE=FILE_EXECUTE (Erlaubt una Expediente auszuführen)
Recht en el 4. ACE=FILE_READ_ATTRIBUTES (Lesen el Fileattribute)
Recht en el 4. ACE=FILE_WRITE_ATTRIBUTES (Cambio el Fileattribute)
Recht en el 4. ACE=SYNCHRONIZE (Erlaubt una FileHandle en una Complitition I/O a warten)
Recht en el 4. ACE=_DELETE (Expediente löschen)
Rückgabe de LookupAccountName para Jeder=0
Letzter API-Fehler=122
Longitud des SIDs=12
Rückgabe de LookupAccountName para Jeder=1
Letzter API-Fehler=997
Longitud des SIDs=12
Bytes para ACL=128
Rückgabe de InitializeAcl=1
Letzter API-Fehler=997
Rückgabe de GetSecurityDescriptorDacl=1
Letzter API-Fehler=997
Rückgabe de IsValidAcl para el DACL=1
Letzter API-Fehler=997
DACL es disponible!
Rückgabe de GetAclInformation=1
Letzter API-Fehler=997
Anzahl benutzter Bytes en DACL=108
Anzahl freier Bytes en DACL=0
ACEs en DACL=4
Größe des 1.ACEs=36
ACE Typ des 1.ACEs=ACCESS_ALLOWED_ACE_TYPE
Vererbung=16
Fehlercode IsValidSid=1
Letzter API Fehler=997
Rückgabe de LookupAccountSid=1
Letzter API-Fehler=997
Reset des API-Fehlers se durchgeführt
1. ACE Bezogen en SID=Packard Bell
Accessrechte des 1. ACEs=$1F01FF
Rückgabe de AddAce a Punkt 1=1
Letzter API-Fehler=0
Rückgabe de IsValidAcl para el selbsterzeugten DACL=1
Letzter API-Fehler=0
Größe des 2.ACEs=20
ACE Typ des 2.ACEs=ACCESS_ALLOWED_ACE_TYPE
Vererbung=16
Fehlercode IsValidSid=1
Letzter API Fehler=0
Rückgabe de LookupAccountSid=1
Letzter API-Fehler=997
Reset des API-Fehlers se durchgeführt
2. ACE Bezogen en SID=SYSTEM
Accessrechte des 2. ACEs=$1F01FF
Rückgabe de AddAce a Punkt 2=1
Letzter API-Fehler=0
Rückgabe de IsValidAcl para el selbsterzeugten DACL=1
Letzter API-Fehler=0
Größe des 3.ACEs=24
ACE Typ des 3.ACEs=ACCESS_ALLOWED_ACE_TYPE
Vererbung=16
Fehlercode IsValidSid=1
Letzter API Fehler=0
Rückgabe de LookupAccountSid=1
Letzter API-Fehler=997
Reset des API-Fehlers se durchgeführt
3. ACE Bezogen en SID=Administratoren
Accessrechte des 3. ACEs=$1F01FF
Rückgabe de AddAce a Punkt 3=1
Letzter API-Fehler=0
Rückgabe de IsValidAcl para el selbsterzeugten DACL=1
Letzter API-Fehler=0
Größe des 4.ACEs=20
ACE Typ des 4.ACEs=ACCESS_ALLOWED_ACE_TYPE
Vererbung=0
Fehlercode IsValidSid=1
Letzter API Fehler=0
Rückgabe de LookupAccountSid=1
Letzter API-Fehler=997
Reset des API-Fehlers se durchgeführt
4. ACE Bezogen en SID=Jeder
Accessrechte des 4. ACEs=$1101BF
En ALLOWED_ACE a addierende Rechte=$1001BF
Rückgabe de AddAce a Punkt 4=1
Letzter API-Fehler=0
Rückgabe de IsValidAcl para el selbsterzeugten DACL=1
Letzter API-Fehler=0
En DENIED_ACE...
...a addierende Rechte=$10000
Rückgabe de AddAce a Punkt 0=1
Letzter API-Fehler=0
Rückgabe de IsValidAcl para el selbsterzeugten DACL=1
Letzter API-Fehler=0
Rückgabe de InitializeSecurityDescriptor=1
Letzter API-Fehler=0
Rückgabe de SetSecurityDescriptorDacl=1
Letzter API-Fehler=0
Rückgabe de SetFileSecurity=1
Letzter API-Fehler=0
Fehlercode IsValidSid=1
Letzter API Fehler=0
Fehlercode LookupAccountSid=1
Letzter API Fehler=997
Administratoren
****PROZEDUR comenzó****
Gewählte Datei=Cokumente y EinstellungenPackard BellDesktopunbenannt.bmp
Gruppenname/Username=Administratoren
Zu 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
Letzter API-Fehler=997
Rückgabe de GetVolumeInformation=1
Letzter API-Fehler=997
Laufwerksflags=1010000000011111111
Ausgelesene Partition=NTFS
Zugriff es einschränkbar
Rückgabe de GetFileSecurity=0
Letzter API-Fehler=122
Erforderliche Longitud des Security Descriptor=204
Rückgabe de GetFileSecurity=1
Letzter API-Fehler=0
Rückgabe de IsValidSecurityDescriptor=1
Letzter API-Fehler=0
Rückgabe de GetSecurityDescriptorDacl=1
Letzter API-Fehler=0
Rückgabe de IsValidAcl para el DACL=1
Letzter API-Fehler=0
DACL es disponible!
Rückgabe de GetAclInformation=1
Letzter API-Fehler=0
Anzahl benutzter Bytes en DACL=128
Anzahl freier Bytes en DACL=0
ACEs en DACL=5
Größe des 1.ACEs=20
ACE Typ des 1.ACEs=ACCESS_DENIED_ACE_TYPE
Fehlercode IsValidSid=1
Letzter API Fehler=0
Rückgabe de LookupAccountSid=1
Letzter API-Fehler=997
Reset des API-Fehlers se durchgeführt
Rückgabe de ConvertSidToStringSid=1
Letzter API-Fehler=0
Rückgabe de LocalFree para el String-SID=0
Letzter API-Fehler=0
String-SID des 1. ACEs=S-1-1-0
1. ACE Bezogen en SID=Jeder
1. ACE Bezogen en Domainname=
Accessrechte des 1. ACEs=$10000
Recht en el 1. ACE=_DELETE (Expediente löschen)
Größe des 2.ACEs=36
ACE Typ des 2.ACEs=ACCESS_ALLOWED_ACE_TYPE
Fehlercode IsValidSid=1
Letzter API Fehler=0
Rückgabe de LookupAccountSid=1
Letzter API-Fehler=997
Reset des API-Fehlers se durchgeführt
Rückgabe de ConvertSidToStringSid=1
Letzter API-Fehler=0
Rückgabe de LocalFree para el String-SID=0
Letzter API-Fehler=0
String-SID des 2. ACEs=S-1-5-21-789336058-1343024091-854245398-1004
2. ACE Bezogen en SID=Packard Bell
2. ACE Bezogen en Domainname=C4
Accessrechte des 2. ACEs=$1F01FF
Recht en el 2. ACE=FILE_ALL_ACCESS (Vollzugriff)
Größe des 3.ACEs=20
ACE Typ des 3.ACEs=ACCESS_ALLOWED_ACE_TYPE
Fehlercode IsValidSid=1
Letzter API Fehler=0
Rückgabe de LookupAccountSid=1
Letzter API-Fehler=997
Reset des API-Fehlers se durchgeführt
Rückgabe de ConvertSidToStringSid=1
Letzter API-Fehler=0
Rückgabe de LocalFree para el String-SID=0
Letzter API-Fehler=0
String-SID des 3. ACEs=S-1-5-18
3. ACE Bezogen en SID=SYSTEM
3. ACE Bezogen en Domainname=NT-AUTORITÄT
Accessrechte des 3. ACEs=$1F01FF
Recht en el 3. ACE=FILE_ALL_ACCESS (Vollzugriff)
Größe des 4.ACEs=24
ACE Typ des 4.ACEs=ACCESS_ALLOWED_ACE_TYPE
Fehlercode IsValidSid=1
Letzter API Fehler=0
Rückgabe de LookupAccountSid=1
Letzter API-Fehler=997
Reset des API-Fehlers se durchgeführt
Rückgabe de ConvertSidToStringSid=1
Letzter API-Fehler=0
Rückgabe de LocalFree para el String-SID=0
Letzter API-Fehler=0
String-SID des 4. ACEs=S-1-5-32-544
4. ACE Bezogen en SID=Administratoren
4. ACE Bezogen en Domainname=VORDEFINIERT
Accessrechte des 4. ACEs=$1F01FF
Recht en el 4. ACE=FILE_ALL_ACCESS (Vollzugriff)
Größe des 5.ACEs=20
ACE Typ des 5.ACEs=ACCESS_ALLOWED_ACE_TYPE
Fehlercode IsValidSid=1
Letzter API Fehler=0
Rückgabe de LookupAccountSid=1
Letzter API-Fehler=997
Reset des API-Fehlers se durchgeführt
Rückgabe de ConvertSidToStringSid=1
Letzter API-Fehler=0
Rückgabe de LocalFree para el String-SID=0
Letzter API-Fehler=0
String-SID des 5. ACEs=S-1-1-0
5. ACE Bezogen en SID=Jeder
5. ACE Bezogen en Domainname=
Accessrechte des 5. ACEs=$1001BF
Recht en el 5. ACE=FILE_READ_DATA (Erlaubt Daten de una File a lesen)
Recht en el 5. ACE=FILE_WRITE_DATA (Erlaubt Daten a Scheiben)
Recht en el 5. ACE=FILE_APPEND_DATA (Erlaubt Daten anzuhängen)
Recht en el 5. ACE=FILE_READ_EA (Erlaubt erweiterte Attibute a lesen)
Recht en el 5. ACE=FILE_WRITE_EA (Erlaubt erweiterte Atributos a escribir)
Recht en el 5. ACE=FILE_EXECUTE (Erlaubt una Expediente auszuführen)
Recht en el 5. ACE=FILE_READ_ATTRIBUTES (Lesen el Fileattribute)
Recht en el 5. ACE=FILE_WRITE_ATTRIBUTES (Cambio el Fileattribute)
Recht en el 5. ACE=SYNCHRONIZE (Erlaubt una FileHandle en una Complitition I/O a warten)
Rückgabe de LookupAccountName para Administratoren=0
Letzter API-Fehler=122
Longitud des SIDs=16
Rückgabe de LookupAccountName para Administratoren=1
Letzter API-Fehler=997
Longitud des SIDs=16
Bytes para ACL=128
Rückgabe de InitializeAcl=1
Letzter API-Fehler=997
Rückgabe de GetSecurityDescriptorDacl=1
Letzter API-Fehler=997
Rückgabe de IsValidAcl para el DACL=1
Letzter API-Fehler=997
DACL es disponible!
Rückgabe de GetAclInformation=1
Letzter API-Fehler=997
Anzahl benutzter Bytes en DACL=128
Anzahl freier Bytes en DACL=0
ACEs en DACL=5
Größe des 1.ACEs=20
ACE Typ des 1.ACEs=ACCESS_DENIED_ACE_TYPE
Vererbung=0
Fehlercode IsValidSid=1
Letzter API Fehler=997
Rückgabe de LookupAccountSid=1
Letzter API-Fehler=997
Reset des API-Fehlers se durchgeführt
1. ACE Bezogen en SID=Jeder
Accessrechte des 1. ACEs=$10000
Rückgabe de AddAce a Punkt 0=1
Letzter API-Fehler=0
Rückgabe de IsValidAcl para el selbsterzeugten DACL=1
Letzter API-Fehler=0
Größe des 2.ACEs=36
ACE Typ des 2.ACEs=ACCESS_ALLOWED_ACE_TYPE
Vererbung=16
Fehlercode IsValidSid=1
Letzter API Fehler=0
Rückgabe de LookupAccountSid=1
Letzter API-Fehler=997
Reset des API-Fehlers se durchgeführt
2. ACE Bezogen en SID=Packard Bell
Accessrechte des 2. ACEs=$1F01FF
Rückgabe de AddAce a Punkt 1=1
Letzter API-Fehler=0
Rückgabe de IsValidAcl para el selbsterzeugten DACL=1
Letzter API-Fehler=0
Größe des 3.ACEs=20
ACE Typ des 3.ACEs=ACCESS_ALLOWED_ACE_TYPE
Vererbung=16
Fehlercode IsValidSid=1
Letzter API Fehler=0
Rückgabe de LookupAccountSid=1
Letzter API-Fehler=997
Reset des API-Fehlers se durchgeführt
3. ACE Bezogen en SID=SYSTEM
Accessrechte des 3. ACEs=$1F01FF
Rückgabe de AddAce a Punkt 2=1
Letzter API-Fehler=0
Rückgabe de IsValidAcl para el selbsterzeugten DACL=1
Letzter API-Fehler=0
Größe des 4.ACEs=24
ACE Typ des 4.ACEs=ACCESS_ALLOWED_ACE_TYPE
Vererbung=16
Fehlercode IsValidSid=1
Letzter API Fehler=0
Rückgabe de LookupAccountSid=1
Letzter API-Fehler=997
Reset des API-Fehlers se durchgeführt
4. ACE Bezogen en SID=Administratoren
Accessrechte des 4. ACEs=$1F01FF
Größe des 5.ACEs=20
ACE Typ des 5.ACEs=ACCESS_ALLOWED_ACE_TYPE
Vererbung=0
Fehlercode IsValidSid=1
Letzter API Fehler=0
Rückgabe de LookupAccountSid=1
Letzter API-Fehler=997
Reset des API-Fehlers se durchgeführt
5. ACE Bezogen en SID=Jeder
Accessrechte des 5. ACEs=$1001BF
Rückgabe de AddAce a Punkt 3=1
Letzter API-Fehler=0
Rückgabe de IsValidAcl para el selbsterzeugten DACL=1
Letzter API-Fehler=0
En ALLOWED_ACE...
...a addierende Rechte=$11F01FF
Rückgabe de AddAce a Punkt 4=1
Letzter API-Fehler=0
Rückgabe de IsValidAcl para el selbsterzeugten DACL=1
Letzter API-Fehler=0
Rückgabe de InitializeSecurityDescriptor=1
Letzter API-Fehler=0
Rückgabe de SetSecurityDescriptorDacl=1
Letzter API-Fehler=0
Rückgabe de SetFileSecurity=1
Letzter API-Fehler=0[/quote:8354fe1111]
Lol ik voluntad sí nüscht sagen - pero si alguien el Gefühl ha esta Página braucht länger para Mostrar... kein Wunder - es sí ahora ya 2909.21 KB groß.

Salve.
 
21.05.2005  
 




Respuesta


Título del Tema, max. 100 Signo.
 

Systemprofile:

Kein Systemprofil creado. [anlegen]

XProfan:

 Contribución  Font  Smilies  ▼ 

Bitte registro en una Contribución a verfassen.
 

Tema opciones

2.518 Views

Untitledvor 0 min.
H.Brill13.05.2021
RudiB.31.01.2016
Andreas Koch12.06.2012

Themeninformationen

Dieses Thema ha 4 subscriber:

unbekannt (10x)
iF (5x)
Rolf Koch (2x)
CB (1x)


Admins  |  AGB  |  Applications  |  Autores  |  Chat  |  Política de Privacidad  |  Descargar  |  Entrance  |  Ayuda  |  Merchantportal  |  Pie de imprenta  |  Mart  |  Interfaces  |  SDK  |  Services  |  Juegos  |  Búsqueda  |  Support

Ein Projekt aller XProfan, el lo son!


Mi XProfan
Privado Noticias
Eigenes Ablageforum
Temas-Merkliste
Eigene Beiträge
Eigene Temas
Zwischenablage
Cancelar
 Deutsch English Français Español Italia
Traducciones

Política de Privacidad


Wir uso Cookies sólo como Session-Cookies wegen el technischen Notwendigkeit y en uns hay no Cookies de Drittanbietern.

Wenn du hier en unsere Webseite klickst oder navigierst, stimmst du unserer Erfassung de Informationen en unseren Cookies en XProfan.Net a.

Weitere Informationen a unseren Cookies y dazu, como du el Kontrolle darüber behältst, findest du en unserer nachfolgenden Datenschutzerklärung.


einverstandenDatenschutzerklärung
Yo möchte no Cookie