#winapi
#winapi
Вопрос:
У меня есть консольное приложение, написанное на c #, которое загружает файл в program files. Поэтому, конечно, он должен запускаться от имени администратора. Эта программа вызывается из приложения Win32 C , которое почти наверняка запущено не от имени администратора
Какие у меня есть варианты. Как я могу заставить это работать в окнах с поддержкой UAC и без поддержки UAC (я не знаю, нужно ли отдельное решение в каждом случае)
О, и консольное приложение находится в .NET 2.0
Ответ №1:
На компьютере с UAC вам необходимо включить ресурс manifest, чтобы указать, что вы хотите, чтобы процесс запускался от имени администратора.
На компьютере без UAC вам просто нужно будет указать своим пользователям, что им нужно запустить его как пользователь из группы администраторов. Почти все пользователи XP (версии, с которой вы чаще всего сталкиваетесь без UAC) входят в группу администраторов, поэтому вы не столкнетесь со многими проблемами.
Ответ №2:
Я никогда не пробовал это, но это, вероятно, можно сделать с помощью
Комментарии:
1. Чтобы вызвать это, вам нужен токен пользователя с правами на папку Program Files. Где вы собираетесь взять такой токен?
2. Вы можете создать токен, используя функцию LogonUser( msdn.microsoft.com/en-us/library/aa378184(v=vs.85).aspx ) как указано в документации
3. Да, вы можете создать такой токен. Но вам нужно знать имя пользователя и пароль!!
4. Вы не запускаете серверы с CreateProcessAsUser и паролем администратора, отправляемым открытым текстом!
5. Возможно, это ваша реальность. Не моя реальность.