我有一个Configuration.ini
文件,在NSIS安装程序安装期间复制到Program Files (x86)\myapp\
目录。复制时,它没有我需要的权限,所以我尝试使用此处的信息进行更改:
How to grant full permission to a file created by my application for ALL users?
private void GrantAccess(string fullPath)
{
DirectoryInfo dInfo = new DirectoryInfo(fullPath);
DirectorySecurity dSecurity = dInfo.GetAccessControl();
dSecurity.AddAccessRule(new FileSystemAccessRule(new SecurityIdentifier(WellKnownSidType.WorldSid, null), FileSystemRights.FullControl, InheritanceFlags.ObjectInherit | InheritanceFlags.ContainerInherit, PropagationFlags.NoPropagateInherit, AccessControlType.Allow));
dInfo.SetAccessControl(dSecurity);
}
在我的个人电脑上进行开发时,该文件会获得权限设置,但是当我将其部署到Windows 2008或2012服务器时,它不会更改。有2个exe文件需要访问/修改设置,一个是以LocalSystem
运行的服务,另一个是本地用户。
是否有一种更加万无一失的方式适用于Windows 7的所有操作系统?