通过 Win32 API 更改文件夹安全权限

Posted

技术标签:

【中文标题】通过 Win32 API 更改文件夹安全权限【英文标题】:Changing folder security permissions via Win32 API 【发布时间】:2008-10-24 19:04:55 【问题描述】:

我的 C++ 应用程序将一些常见的用户数据存储在 %CSIDL_COMMON_APPDATA%\Company\Product 中。我想确保用户组对此文件夹具有写入权限,而在 Vista 上则没有。我该怎么做?

【问题讨论】:

【参考方案1】:

我自己用 ATL 想出来的......

CDacl oDacl;
AtlGetDacl(strFolder, SE_FILE_OBJECT, &oDacl);
oDacl.RemoveAces(Sids::Users()); // Remove existing "Users" access
oDacl.AddAllowedAce(Sids::Users(), FILE_ALL_ACCESS, CONTAINER_INHERIT_ACE | OBJECT_INHERIT_ACE);
AtlSetDacl(strFolder, SE_FILE_OBJECT, oDacl);

当然,我的真实代码包含错误检查。

【讨论】:

以上是关于通过 Win32 API 更改文件夹安全权限的主要内容,如果未能解决你的问题,请参考以下文章

无法保存对 Rundll32.exe 权限所作的更改!!!!

win10system权限怎么获得

WIN10需要来自管理员权限才能对此文件进行更改

Win32 API编程——前言

win7 F盘拒绝访问 无法更改权限 怎么办?

win10系统 为啥有完全控制权限也无法消除文件夹只读属性?