| |
|
|
|
Beschreibung:
GetSecurityDescriptorOwner ermittelt den SID des Eigentümers eines Objektes aus dem Security Descriptor. cet Funktion gibt es seulement sous NT-basierten Windowssystemen.
Deklaration:
DEF @GetSecurityDescriptorOwner(3) !ADVAPI32,GetSecurityDescriptorOwner
paramètre:
1.paramètre: Bereichsvariable avec einer SECURITY_DESCRIPTOR Struktur, aus qui on den propriétaire auslesen veux. 2.paramètre: 4 Byte Bereichsvariable, qui qui Adresse einer SID Struktur aufnimmt, qui den propriétaire des Objektes angibt. 3.paramètre: 2 Byte grand Bereichsvariable ou bien SECURITY_DESCRIPTOR_CONTROL Struktur, en Wert angibt, si qui propriétaire par une Default-Mechanismus festgelegt wurde. (=0 non, <>0 oui)
Rückgabewert:
1 chez Erfolg, 0 chez faute.
Beispiele:
DEF @IsValidSecurityDescriptor(1) !"ADVAPI32","IsValidSecurityDescriptor"
DEF @GetFileSecurity(5) !"ADVAPI32","GetFileSecurityA"
DEF @GetLastError(0) !"KERNEL32","GetLastError"
DEF @SetLastError(1) !"KERNEL32","SetLastError"
DEF @GetSecurityDescriptorOwner(3) !"ADVAPI32","GetSecurityDescriptorOwner"
DEF @IsValidSid(1) !"ADVAPI32","IsValidSid"
DEF @LookupAccountSid(7) !"ADVAPI32","LookupAccountSidA"
Déclarer NEEDED#,SIDa#,Fehler&,NEEDED&,PSECURITY_DESCRIPTOR#
Déclarer FILENAME$,SID#,GFLAG#,SYstem$
Déclarer SID_NAME_USE#,ACCOUNT_NAME#,Domain#
Déclarer SIZE_ACCOUNT#,SIZE_DOMAIN#
DIM Needed#,4
LET FILENAME$=@LOADFILE$("Datei wählen","*.*")
ADDSTRING "Security Descriptor de "+FILENAME$
Claire Needed#
LET Fehler&=@GetFileSecurity(@ADDR(Filename$),$1 | $2 | $4,0,0,Needed#)
ADDSTRING "Rückgabe de GetFileSecurity="+@STR$(Fehler&)
ADDSTRING "Letzter API-Fehler="+@STR$(@GetLastError())
LET NEEDED&=@LONG(Needed#,0)
ADDSTRING "Erforderliche Longueur des Security Descriptor="+@STR$(Needed&)
CASE NEEDED&=0 : LET NEEDED&=1024
DIM PSECURITY_DESCRIPTOR#,Needed&
Claire PSECURITY_DESCRIPTOR#
@SetLastError(0)
LET Fehler&=@GetFileSecurity(@ADDR(Filename$),$1 | $2 | $4,PSECURITY_DESCRIPTOR#,NEEDED&,Needed#)
ADDSTRING "Rückgabe de GetFileSecurity="+@STR$(Fehler&)
ADDSTRING "Letzter API-Fehler="+@STR$(@GetLastError())
LET Fehler&=@IsValidSecurityDescriptor(PSECURITY_DESCRIPTOR#)
ADDSTRING "Rückgabe de IsValidSecurityDescriptor="+@STR$(Fehler&)
ADDSTRING "Letzter API-Fehler="+@STR$(@GetLastError())
DIM SID#,4
DIM GFlag#,2
Claire SID#
Claire GFLAG#
LET FEHLER&=@GetSecurityDescriptorOwner(PSECURITY_DESCRIPTOR#,SID#,GFLAG#)
ADDSTRING "Rückgabe de GetSecurityDescriptorOwner="+@STR$(Fehler&)
ADDSTRING "Letzter API-Fehler="+@STR$(@GetLastError())
LET Fehler&=@IsValidSid(@long(SID#,0))
ADDSTRING "Rückgabe de IsValidSid pour den Besitzer="+@STR$(Fehler&)
ADDSTRING "Letzter API-Fehler="+@STR$(@GetLastError())
LET Fehler&=@IsValidSid(@long(SID#,0))
ADDSTRING "Rückgabe de IsValidSid pour den Besitzer="+@STR$(Fehler&)
ADDSTRING "Letzter API-Fehler="+@STR$(@GetLastError())
DIM ACCOUNT_NAME#,256
DIM SIZE_ACCOUNT#,4
DIM Domain#,256
DIM SIZE_DOMAIN#,4
DIM SID_NAME_USE#,4
Claire SID_NAME_USE#,SYSTEM$
Claire ACCOUNT_NAME#,Domain#
LONG SIZE_ACCOUNT#,0=255
LONG SIZE_DOMAIN#,0=255
LET FEHLER&=@LookupAccountSid(@ADDR(System$),@Long(SID#,0),ACCOUNT_NAME#,SIZE_ACCOUNT#,Domain#,SIZE_DOMAIN#,SID_NAME_USE#)
ADDSTRING "Rückgabe de LookupAccountSid="+@STR$(Fehler&)
ADDSTRING "Letzter API-Fehler="+@STR$(@GetLastError())
ADDSTRING "Reset des API-Fehlers wird durchgeführt"
@SetLastError(0)
ADDSTRING "Besitzer qui Datei="+@String$(ACCOUNT_NAME#,0)
ADDSTRING "Control Flag="+@STR$(@Word(GFLAG#,0))
Dispose SID_NAME_USE#
Dispose ACCOUNT_NAME#
Dispose Domain#
Dispose SIZE_ACCOUNT#
Dispose SIZE_DOMAIN#
Dispose NEEDED#
Dispose PSECURITY_DESCRIPTOR#
Dispose SID#
Dispose GFLAG#
@EDITBOX("Rückgaben",1)
[keywords:b74f001168] propriétaire Owner Besitzer Dossier objet Key Registry Security Descriptor SID Security Identifier [/keywords:b74f001168] |
|
|
| |
|
|