Inno Setup - 如何授予一个特定用户对文件夹的权限

Inno Setup - How to give one specific user rights to a folder

我想将文件夹权限授予一个特定用户(而不是用户组)。我见过多个例子,但它赋予了整个用户组权利。

[Dirs]
Name: "{app}"; Permissions: users-full

http://www.jrsoftware.org/ishelp/index.php?topic=dirssection

我试过了,但收到错误消息

[Dirs]
Name: "{app}"; Permissions: John-full

Error on line 68 in D:\installer.iss: Parameter "Permissions" includes an unknown SID: "John"

是否可以将权限授予一位特定用户(硬编码字符串)?

我必须说我觉得这很可疑。用户不应具有对应用程序安装文件夹的写入权限。如果应用程序需要存储一些数据,它应该将它们写入用户配置文件文件夹 (C:\Users\username\AppData) 或通用数据文件夹 (C:\ProgramData)。
另见 Application does not work when installed with Inno Setup


无论如何,Inno Setup 不支持向用户授予权限。我实际上认为,这是因为没有真正好的用例(如上所述)。

但您可以使用 Windows icacls or cacls commands from [Run] section 代替。

[Run]
Filename: "icacls"; Parameters: """{app}"" /grant John:w"; Flags: runhidden
[Run]
Filename: "cacls"; Parameters: """{app}"" /e /g John:w"; Flags: runhidden