Skip to content

Проблема с правами при доступе к расшаренному ресурсу.

Разрабатываю программу на С++, под Windows, для заказчика. Программа работает как служба и собирает различную системную информацию, в том числе и ищет свежие бэкапы и отсылает эти данные для мониторинга на специальный веб-сервис. При указании пути поиска бэкапов расшаренной папки, в режиме службы не может получить доступ. (работает с правами СИСТЕМА), если запускать под учетной записью своей, то работает нормально (но это, плохой вариант). Можно ли как временно получать права администратора системы (при проверки бэкапов)? учитывая что на различных компьютерах администратор может иметь различные имена?
Пока нагуглил LogonUser функцию… но там нужно указывать пароль, и иногда домен… (а его спрашивать у пользователя не комильфо… да и данные могут меняться).
Подскажите куда копать…  

One Comment

  1. Sandro84

    По идее SYSTEM может открыть на машине любой процесс любого пользователя, особенно при наличии SeDebugPrivilege. Наверное можно открыть Token процесса пользователя и присвоить его своему потоку. Но в системе должен быть процесс, запущенный под соответствующим пользователем, что для службы несколько странное требование. Или так или запуском от конкретного пользователя с соответствующим запросом логина и пароля при установке. Поскольку речь скорее всего о домене, то даже хакнув lsass войти под пользователем не получится.

Comments are closed.