Программа установки не может установить правильное разрешение для папки% ProgramData% \ MyFirm \ MyApp на WinServer2012 +. - PullRequest
0 голосов
/ 31 октября 2018

Существует моя установка BasicMsi, которая устанавливает приложение (32-разрядное) MyApp для каждой машины. Установщик требует права администратора при запуске. Приложение MyApp устанавливается в папку INSTALLDIR, выбранную Оператором (UI / CommadLine), и создается структура %ProgramData%\<MyFirm>\<MyApp> с подпапками и файлами. В msi-таблице LockPermissions устанавливаются разрешения на изменение (чтение / запись / удаление ...) для папки <MyApp> для LOCAL групп пользователей «Администраторы» и «Пользователи» (расположенных по SID). Файлы в <MyApp> и подпапках используются и модифицируются приложением MyApp во время выполнения. Программа установки устанавливает приложение в системах от Win7 до Win10 и от WinServer2003 до WinServer2016 (32/64; UAC вкл / выкл). Приложение запускается Оператором (-ами) с учетной записью в локальных группах пользователей «Администраторы» или «Пользователи» ( НЕ «Запуск от имени администратора»).

Проблема: после установки на WinServer2012 и ТОЛЬКО WinServer2016 (WinServer2008 не проверен; и WinServer2003 - ОК ) Оператор с учетной записью в локальной группе Администраторы или Пользователи не имеет прав на запись / удаление / создавать файлы в папке <MyApp> и подпапках. Результат - приложение работает неправильно (ТОЛЬКО для WinServer2012 и WinServer2016).

Помогите, пожалуйста, с вопросами:

  • В чем разница в разрешениях для папок в% ProgramData% или в чем разница прав локальных встроенных групп пользователей («Администраторы» или «Пользователи») для Win10 (или WinServer2003) по сравнению с (WinServer2012 и WinServer2016)
  • что еще нужно изменить в системе (WinServer2012 и WinServer2016) установщиком, так что учетные записи из локальной Администраторы группы или Пользователи имеют права на запись / удаление в папке %ProgramData%\<MyFirm>\<MyApp> без «Запуск от имени администратора» (вкл / выкл UAC)?

Заранее спасибо.

1 Ответ

0 голосов
/ 01 ноября 2018

ОБНОВЛЕНИЕ : Настройка разрешений в установщике Windows: MSILockPermissionsEX и ISLockPermissions (с помощью Installshield).


Проверка разрешений : Какие фактические разрешения отображаются в папке? Вы можете использовать Windows Explorer => Properties => Security => Advanced => Double click user / group to see detailed access. Проверьте различия между системами, которые работают и не работают.

Если этого недостаточно, попробуйте инструменты SysInternals AccessEnum или AccessChk , чтобы показать подробную информацию о разрешениях, определенных для рассматриваемый объект.

Проверка привилегий : я бы также использовал Process Explorer , чтобы проверить, какие NT Привилегии работает ваш процесс с - просто для проверки любых различий (" полный спред торпеды " в научном плане - как в " что, черт возьми, мы делаем " - не повредит). Я не думаю, что это должно влиять на вещи - привилегии и разрешения различны (привилегии применяются для всей системы - например, изменение системного времени, вход в систему как сервис и т. Д. .. - разрешения определены для защищаемых объектов, таких как файлы и папки).

  • Запустить Process Explorer
  • Дважды щелкните процесс приложения (если он запускается)
  • Перейдите на вкладку «Безопасность» и посмотрите на нижнее поле:

Process Explorer


Ведение журнала : Правильно ли вы ведете журнал? Если нет, установите и создайте подробный файл журнала . И возможно, проверьте мой ответ здесь . И более сложная версия с большим количеством подсказок для понимания записей журнала.

...