首页 文章

允许非管理员用户进程读取文件

提问于
浏览
0

我的安装程序以提升的权限运行,并将文件(A)写入 $APPDATA (C:/ ProgramData)以及将文件写入 $PROGRAMFILES . 文件 A 是由名为Revit的应用程序读取的 .addin 文件 .

My Problem: 由于文件 A 是由管理进程创建的,因此当用户是非管理员窗口用户时,Revit无法读取此文件 .

我想编辑文件 A so that it can be read by the a Non-Admin windows user ,但我不知道如何 . 你能建议我怎么做到这一点吗?

我尝试过使用NSIS函数 SetFileAttributes "myFilePath.addin" NORMAL ,但这不起作用 .

Note: 我知道我可以在没有提升权限的情况下运行我的安装程序,然后Revit可以读取文件,但正如我上面提到的,我的安装程序也写入 $PROGRAMFILES 所以我需要提升权限 .

1 回答

  • 1

    使用AccessControl plugin更改DACL:

    ; This gives read access to the everyone group, use (BU) or (S-1-5-32-545) for BUILTIN\Users
    AccessControl::GrantOnFile "$INSTDIR\myfile" "(S-1-1-0)" "GenericRead"
    

相关问题