| |
|
|
|
Descripción:
GetFileSecurity ermittelt Informationen en Sicherheitseinstellungen uno Expediente (Security Descriptor) de uno en NTFS partitionierten Festplatte. Diese Función hay sólo bajo NT-basierten Windowssystemen. Für el Zugriff en el Sicherheitseinstellungen muß uno en el Expediente oder el Ordner READ_CONTROL Zugriffsrechte haben oder el Eigentümer ser.
Deklaration:
DEF @GetFileSecurity(5) !ADVAPI32,GetFileSecurityA
Parámetro:
1.Parámetro: Adresse uno Cuerdas oder Bereichsvariable con un String, el el Expediente- oder Ordnernamen enthält, a el uno el Sicherheitsinformationen benötigt. 2.Parámetro: Flags, el angeben welche Informationen uno benötigt. Verschieden Flags puede con | addiert voluntad. => - $1 = Ermittelt Informationen encima el Eigentümer des Ordners oder el Expediente (OWNER_SECURITY_INFORMATION). - $2 = Ermittelt el primäre Gruppe (GROUP_SECURITY_INFORMATION). - $4 = Ermittelt Informationen encima Zugriffsberechtigungen (DACL) de otro Usern(DACL_SECURITY_INFORMATION) - $8 = Ermittelt Informationen darüber, welche Zugriffe vom Sistema aufgezeichnet (SACL) voluntad.(SACL_SECURITY_INFORMATION). Für esta Zugriff se una aktives Privileg SeSecurityPrivilege benötigt (Token). 3.Parámetro: Ausreichend dimensionierte Bereichsvariable, el una SECURITY_DESCRIPTOR Struktur aufnimmt, el el angefragten Infos enthält. El Inhalte dieser Struktur debería no direkt ausgelesen voluntad - dafür hay weitere APIs. 4.Parámetro: El Größe el Bereichsvariablen de Parámetro 3 en Bytes como LongInt. 5.Parámetro: 4 Byte große Bereichsvariable, el el benötigte Größe de Parámetro 3 aufnimmt.
Rückgabewert:
1 en Erfolg, 0 en Fehler.
Beispiele:
KompilierenMarcaSeparaciónDEF @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 Expediente Directorio Ordner Zugriff Zugriffe erlauben verbieten auslesen ermitteln verhindern [/keywords:9143fea2ea] |
|
|
| |
|
|