我的安装程序以提升的权限运行,并将文件(A)写入$APPDATA
(C:/ ProgramData)以及将文件写入$PROGRAMFILES
。文件A
是由名为Revit的应用程序读取的.addin
文件。
我的问题:由于文件A
是由管理进程创建的,因此当用户是非管理员窗口用户时,Revit无法读取此文件。
我想编辑文件A
,以便非管理员窗口用户可以阅读,但我不知道如何。你能建议我怎么做到这一点吗?
我尝试过使用NSIS函数SetFileAttributes "myFilePath.addin" NORMAL
,但这不起作用。
注意:我知道我可以在没有提升权限的情况下运行我的安装程序,然后Revit可以读取文件,但正如我上面提到的,我的安装程序也写入$PROGRAMFILES
所以我需要提升权限
答案 0 :(得分: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"