小编md *_*hif的帖子

将文件夹权限分配给“所有应用程序包”组

Win 8 似乎有一个新的用户组“所有应用程序包”。默认情况下,该组似乎对所有文件夹具有读取权限。但是我的要求是在我创建的文件夹上设置一些特定的 ACL。该组目前对我的文件夹没有权限,我编写了一些代码来为“所有应用程序包”添加读取权限。我正在使用 VS 2010,以下是精简后的代码片段。

http://msdn.microsoft.com/en-us/library/cc980032.aspx 中列出的“所有应用程序包”的 SID是 ALL_APP_PACKAGES (S-1-15-2-1)。

但无论我作为受托人以何种方式传递或传递什么值,下面的代码都不起作用。例如,在下面的代码中 SetNamedSecurityInfo() 因 ERROR_INVALID_ACL 失败。但是,如果我使用“管理员”或“所有人”帐户,则它可以工作。

我需要分配的确切权限是“读取和执行”、“列出文件夹内容”和“读取”

#include "stdafx.h"
#include "windows.h"
#include "sddl.h"
#include "Aclapi.h"

int _tmain(int argc, _TCHAR* argv[])
{
TCHAR pszObjName[MAX_PATH] = L"C:\\Program Files\\Common Files\\Test\\";
PACL pOldDACL = NULL, pNewDACL = NULL;
PSECURITY_DESCRIPTOR pSD = NULL;
EXPLICIT_ACCESS ea;
SECURITY_INFORMATION si = DACL_SECURITY_INFORMATION;

// Get a pointer to the existing DACL (Conditionaly).
DWORD dwRes = GetNamedSecurityInfo(pszObjName, SE_FILE_OBJECT, DACL_SECURITY_INFORMATION, NULL, NULL, &pOldDACL, NULL, &pSD);

// Initialize an EXPLICIT_ACCESS structure …
Run Code Online (Sandbox Code Playgroud)

windows desktop-application windows-8

4
推荐指数
1
解决办法
4万
查看次数

标签 统计

desktop-application ×1

windows ×1

windows-8 ×1