1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25
| string nomFichier = "blabla";
PSID psidProprio = nullptr;
/*GetNamedSecurityInfo(
_In_ LPTSTR pObjectName,
_In_ SE_OBJECT_TYPE ObjectType,
_In_ SECURITY_INFORMATION SecurityInfo,
_Out_opt_ PSID *ppsidOwner,
_Out_opt_ PSID *ppsidGroup,
_Out_opt_ PACL *ppDacl,
_Out_opt_ PACL *ppSacl,
_Out_opt_ PSECURITY_DESCRIPTOR *ppSecurityDescriptor);*/
DWORD erreur = GetNamedSecurityInfoA(const_cast<LPSTR>(nomFichier.c_str()), SE_FILE_OBJECT, OWNER_SECURITY_INFORMATION, &psidProprio, nullptr, nullptr, nullptr, nullptr);
if(erreur == ERROR_SUCCESS)
{
const int TAILLE_BUFFER = 256;
char buffer[TAILLE_BUFFER] = "";
DWORD cchBuffer = TAILLE_BUFFER;
SID_NAME_USER type;
BOOL bObtenuNom = LookupAccountSidA(nullptr, psidProprio, buffer, &cchBuffer, nullptr, nullptr, &type)
if(bObtenuNom)
cout << "Nom proprietaire: "<< buffer << endl;
FreeSid(psidProprio);
} |
Partager