У меня есть файл Configuration.ini
, который копируется в каталог Program Files (x86)\myapp\
во время установки установщиком NSIS.Когда он копируется, у него нет необходимых мне разрешений, поэтому я попытался изменить его, используя следующую информацию: Как предоставить полное разрешение файлу, созданному моим приложением, для ВСЕХ пользователей?
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 и выше?