| |
|
|
|
Beschreibung:
GetFileSecurity ermittelt Informationen sur qui Sicherheitseinstellungen einer Dossier (Security Descriptor) de einer dans NTFS partitionierten Festplatte. cet Funktion gibt es seulement sous NT-basierten Windowssystemen. Pour den Zugriff sur qui Sicherheitseinstellungen doit on sur qui Dossier ou bien den Dossier READ_CONTROL Zugriffsrechte avons ou bien qui propriétaire son.
Deklaration:
DEF @GetFileSecurity(5) !ADVAPI32,GetFileSecurityA
paramètre:
1.paramètre: Adresse eines Cordes ou bien Bereichsvariable avec einem String, qui den Dossier- ou bien Ordnernamen contient, trop dem on qui Sicherheitsinformationen nécessaire. 2.paramètre: Flags, qui angeben quelle Informationen on nécessaire. Verschieden Flags peut avec | addiert volonté. => - $1 = Ermittelt Informationen sur den propriétaire des Ordners ou bien qui Dossier (OWNER_SECURITY_INFORMATION). - $2 = Ermittelt qui primäre Gruppe (GROUP_SECURITY_INFORMATION). - $4 = Ermittelt Informationen sur Zugriffsberechtigungen (DACL) de anderen Usern(DACL_SECURITY_INFORMATION) - $8 = Ermittelt Informationen par-dessus, quelle Zugriffe vom System aufgezeichnet (SACL) volonté.(SACL_SECURITY_INFORMATION). Pour cette Zugriff wird un aktives Privileg SeSecurityPrivilege nécessaire (Token). 3.paramètre: Ausreichend dimensionierte Bereichsvariable, qui une SECURITY_DESCRIPTOR Struktur aufnimmt, qui qui angefragten Infos contient. qui Inhalte cette Struktur devrait pas direct ausgelesen volonté - pour gibt es weitere APIs. 4.paramètre: qui Taille qui Bereichsvariablen aus paramètre 3 dans Bytes comme LongInt. 5.paramètre: 4 Byte grand Bereichsvariable, qui qui benötigte Taille de paramètre 3 aufnimmt.
Rückgabewert:
1 chez Erfolg, 0 chez faute.
Beispiele:
KompilierenMarqueSéparationDEF @IsValidSecurityDescriptor(1) !"ADVAPI32","IsValidSecurityDescriptor"
DEF @GetFileSecurity(5) !"ADVAPI32","GetFileSecurityA"
DEF @GetLastError(0) !"KERNEL32","GetLastError"
DEF @SetLastError(1) !"KERNEL32","SetLastError"
Declare NEEDED#,SIDa#,Fehler&,NEEDED&,PSECURITY_DESCRIPTOR#
Declare FILENAME$
DIM Needed#,4
LET FILENAME$=@CHOOSEDIR$("Ordner wählen")
ADDSTRING "Security Descriptor von "+FILENAME$
Clear Needed#
LET Fehler&=@GetFileSecurity(@ADDR(Filename$),$1 | $2 | $4,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$),$1 | $2 | $4,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())
Dispose NEEDED#
Dispose PSECURITY_DESCRIPTOR#
@EDITBOX("Rückgaben",1pan class=s2>)
[keywords:9143fea2ea] Security Descriptor File Dossier Verzeichnis Dossier Zugriff Zugriffe erlauben prohiber auslesen ermitteln verhindern [/keywords:9143fea2ea] |
|
|
| |
|
|