Не удалось установить разрешения для папок после повышения до администратора

Предыстория: Мой установочный пакет Visual-Studio 2010 для моего приложения Windows MFC C ++ создает папку данных C: \ MyDataFolder. Поскольку это создается во время установки, владельцем папки является NT AUTHORITY\SYSTEM, Я хотел бы, чтобы все (не администраторы) пользователи моего приложения имели полный доступ к этой папке, поэтому я добавил некоторый код, чтобы дать всем Аутентифицированным пользователям полные разрешения (SetEntriesInAcl, SetNamedSecurityInfo, так далее.). Это прекрасно работает при запуске от имени администратора.

Чтобы сделать это очень простым для пользователей, я хотел бы разрешить им устанавливать права администратора, а затем запустить программу от имени пользователя с ограниченными правами, который попытается установить эти разрешения, а затем попросить их перейти на уровень администратора, если это необходимо. (Это также относится к существующим установкам, которые еще не имеют этих разрешений.) Я также успешно это сделал (CredUIPromptForWindowsCredentials, CredUnPackAuthenticationBuffer, CredUIParseUserName, LogonUser, ImpersonateLoggedOnUser). Это дает мне повышенный токен. Я пробовал с последним звонком и без ImpersonateLoggedOnUser,

Эта проблема: Повторный вызов SetNamedSecurityInfo все еще терпит неудачу с Доступ закрыт. Я также пытался использовать AdjustTokenPrivileges дать мой повышенный токен SE_TAKE_OWNERSHIP_NAME привилегия, но это не с «Не все привилегии или группы, на которые ссылаются, присваиваются вызывающей стороне«

Я считаю, что мне нужно стать владельцем этой папки, поскольку она принадлежит SYSTEM, но я не уверен, как дать моему повышенному токену привилегию SE_TAKE_OWNERSHIP_NAME, если она еще не установлена.

Я очень новичок во всем этом, поэтому вполне возможно, что мне не хватает чего-то очень простого. У меня также была мысль, что я должен просто сделать небольшое приложение, которое запускается во время установки и делает это, но теперь, когда я зашел так далеко, я упрям ​​и хочу, чтобы часть повышения работала. Спасибо за любую помощь!

0

Решение

Задача ещё не решена.

Другие решения

Других решений пока нет …

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector