#vb.net #visual-studio #administration
#vb.net #visual-studio #администрирование
Вопрос:
Я разрабатываю переносимое приложение (без установки), которому для правильной работы требуются права администратора, и я хочу, чтобы оно запускалось автоматически от имени администратора, чтобы пользователю не приходилось. В файле app.manifest я изменил уровень выполнения запроса с asInvoker на highestAvailable:
<requestedExecutionLevel level="highestAvailable" uiAccess="false" />
(Я также попробовал requireAdministrator)
И действительно, теперь мое приложение всегда запускается от имени администратора автоматически. Когда я захожу в свою папку debug ([папка приложения] /bin / debug) и запускаю .exe напрямую, он также запускается от имени администратора по умолчанию. Даже если я скопирую его в какую-нибудь другую папку на своем компьютере, все хорошо. У .exe даже есть этот типичный знак администратора на его значке.
К сожалению, когда я отправил свое приложение своему другу, он сообщил, что мое приложение не запускается автоматически от имени администратора, и на значке приложения также нет знака администратора. Я пытался выяснить, в чем может быть причина, но безрезультатно. Я даже не уверен, какую информацию предоставить по этому вопросу, поскольку я понятия не имею, что может быть актуально в этом случае. Насколько я понимаю, app.manifest автоматически включается в EXE-файл. В папке [application folder] / My Project есть файл app.manifest, но даже если я удалю его оттуда, мой application .exe по-прежнему запускается от имени администратора, поэтому я предполагаю, что manifest компилируется в exe во время сборки.
Кто-нибудь может подсказать, в чем может быть причина? Если требуется дополнительная информация, которую я не знал включить, пожалуйста, сообщите.
Комментарии:
1. Какую версию Windows вы используете и какую версию использует ваш друг?
2. Я использую Windows 10 x64, мой друг использует Windows 7 N x64.
3. Вашему другу нужно починить свою машину. Довольно традиционная ошибка — «отключить UAC». Его нельзя отключить, можно только запретить запрашивать пользователя.
4. Но когда я запускаю свое приложение на своем собственном компьютере, я не получаю никаких запросов, и оно все равно запускается от имени администратора. (Я тоже «отключил» UAC)
5. вы также пытались отправить ему манифест
Ответ №1:
Причина в том, что вы создаете решение в режиме отладки. Пожалуйста, переключитесь с debug на Release, а затем перестройте. Это должно сработать, поскольку у меня это сработало. Он будет находиться в ([папка приложения] / bin/ release).
Комментарии:
1. Спасибо за ваш ответ. Я создал его как релиз, но мой друг сообщил, что он по-прежнему запускается без прав администратора…
2. @JustinasRubinovas на компьютере ваших друзей отображается маленький экран Windows?
3. Нет, это не так, что особенно странно. Я попытался отправить свой exe-файл, упакованный в ZIP-файл, думая, что, возможно, приложение каким-то образом изменяется во время отправки (браузером или антивирусом) в качестве меры безопасности, но, к сожалению, независимо от того, как этот exe попадает на его компьютер, у него нет маленького экрана Windows.
4. @JustinasRubinovas вполне может быть версией Windows, которую он запускает. Пожалуйста, прочтите это. Windows 7 N
5. да, я исследовал это, но, похоже, я не могу найти ничего конкретного в этой версии Windows, что имело бы отношение к проблеме. Некоторые другие люди выше отметили, что это может быть связано с отключением UAC на этом компьютере, поэтому Windows не спрашивает, действительно ли мой exe-файл должен запускаться от имени администратора, и поэтому по умолчанию запускает его как не-администратор. Я надеюсь, что есть какой-то способ автоматически принудительно запускать мой exe-файл от имени администратора независимо от этого.