| |
|
|
|
Beschreibung:
GetSecurityDescriptorGroup ermittelt den SID der Primären Gruppe eines Objektes aus dem Security Descriptor. Diese Funktion gibt es nur unter NT-basierten Windowssystemen.
Deklaration:
Def @Getsecuritydescriptorgroup(3) !ADVAPI32,GetSecurityDescriptorGroup
Parameter:
1.Parameter: Bereichsvariable mit einer SECURITY_DESCRIPTOR Struktur, aus der man die Primären Gruppe auslesen will. 2.Parameter: 4 Byte Bereichsvariable, die die Adresse einer SID Struktur aufnimmt, die die Primären Gruppe des Objektes angibt. 3.Parameter: 2 Byte grande Bereichsvariable oder SECURITY_DESCRIPTOR_CONTROL Struktur, deren Wert angibt, ob die Primären Gruppe durch einen Default-Mechanismus festgelegt wurde. (=0 nein, <>0 ja)
Rückgabewert:
1 bei Erfolg, 0 bei Fehler.
Beispiele:
KompilierenMarkierenSeparierenDef @Isvalidsecuritydescriptor(1) !"ADVAPI32","IsValidSecurityDescriptor"
Def @Getfilesecurity(5) !"ADVAPI32","GetFileSecurityA"
Def @Getlasterror(0) !"KERNEL32","GetLastError"
Def @Setlasterror(1) !"KERNEL32","SetLastError"
Def @Isvalidsid(1) !"ADVAPI32","IsValidSid"
Def @Lookupaccountsid(7) !"ADVAPI32","LookupAccountSidA"
Def @Getsecuritydescriptorgroup(3) !"ADVAPI32","GetSecurityDescriptorGroup"
Declare Needed#,Sida#,Fehler&,Needed&,Psecurity_descriptor#
Declare Filename$,Sid#,Gflag#,System$
Declare Sid_name_use#,Account_name#,Domain#
Declare Size_account#,Size_domain#
Dim Needed#,4
Let Filename$=@Loadfile$("Datei 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())
Dim Sid#,4
Dim Gflag#,2
Clear Sid#
Clear Gflag#
Let Fehler&=@Getsecuritydescriptorgroup(Psecurity_descriptor#,Sid#,Gflag#)
Addstring "Rückgabe von Getsecuritydescriptorgroup="+@Str$(Fehler&)
Addstring "Letzter API-Fehler="+@Str$(@Getlasterror())
Let Fehler&=@Isvalidsid(@Long(Sid#,0))
Addstring "Rückgabe von IsValidSid für die Primäre Gruppe="+@Str$(Fehler&)
Addstring "Letzter API-Fehler="+@Str$(@Getlasterror())
Let Fehler&=@Isvalidsid(@Long(Sid#,0))
Addstring "Rückgabe von IsValidSid für die Primäre Gruppe="+@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
Clear Sid_name_use#,System$
Clear 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 von LookupAccountSid="+@Str$(Fehler&)
Addstring "Letzter API-Fehler="+@Str$(@Getlasterror())
Addstring "Reset des API-Fehlers wird durchgeführt"
@Setlasterror(0)
Addstring "die Primäre Gruppe der 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 en", 1)
[keywords:0a26e8f7ef] Gruppe Primäre primary group File Objekt Key Registry Security Descriptor SID Security Identifier [/keywords:0a26e8f7ef] |
|
|
| |
|
|