Ich habe nun einen Code, mit dem der Zugriff wieder möglich ist.
Wer selbst experimentieren möchte, sollte UNBEDINGT eine leere HDD oder eine mit nutzlosen Daten nehmen!
Delphi-Quellcode:
procedure TForm1.Button8Click(Sender: TObject); //FULL_CONTROL for Everyone
var
TmpString: String;
pSD : Pointer;
NewDacl, OldDacl: PACl;
EA: array [0..5] of EXPLICIT_ACCESS;
ret : Cardinal;
begin
TmpString := 'G:\';
GetNamedSecurityInfo(PChar(TmpString), SE_FILE_OBJECT,
DACL_SECURITY_INFORMATION, nil, nil, @OldDacl, nil, pSD);
BuildExplicitAccessWithName(@EA, PChar('Everyone'), GENERIC_ALL,
GRANT_ACCESS, SUB_CONTAINERS_AND_OBJECTS_INHERIT);
SetEntriesInAcl(1, @EA, OldDacl, NewDacl);
ret:= SetNamedSecurityInfo(PChar(TmpString), SE_FILE_OBJECT,
DACL_SECURITY_INFORMATION, nil, nil, NewDacl, nil);
if ret= ERROR_SUCCESS then
ShowMessage('Bei diesem Objekt wurden keine Objekttypen zugeordnet.'+#13#10+
'Achtung: Dies ist ein mögliches Sicherheitsrisiko, weil jeder,'+#13#10+
'der Zugriff auf dieses Objekt hat, dieses besitzen kann.'+#13#10+
'Der Besitzer dieses Objekts sollte so bald wie möglich'+#13#10+
'Berechtigungen zuordnen.');
end;