Можете ли вы заставить Visual Studio всегда запускаться от имени администратора в Windows 8?

1013

В Windows 7 вы можете зайти в настройки совместимости программ и установить флажок, чтобы всегда работать от имени администратора. Есть ли подобная опция в Windows 8?

Я всегда отключал UAC на своих машинах и делал то же самое после обновления до Windows 8, или так я думал. Оказывается, нет никакой offопции, только отключение уведомлений.

Это означает, что ничто не запускается от имени администратора, несмотря на то, что он входит в группу администраторов. Мне нужно продолжать закрывать и снова открывать мои консоли \ Visual Studio, когда я пытаюсь отладить (присоединиться к процессу, а не F5), что очень расстраивает.

Это действительно раздражает, что мне нужно либо не забыть предпринять дополнительные шаги, чтобы открыть его в качестве администратора, либо сказать, чтобы он закрывался и снова открывался, когда я впервые иду на отладку.

Брайан Суровец
источник
6
Я думаю, что это правильный вопрос здесь, но я думаю, что вы должны спросить и о SuperUser - может быть общий ответ.
Прит Сангха
4
Если VS необходимо запустить как администратор, то ваши права доступа к файлам неверны. Их легко испортить с отключенным UAC.
KeatsPeeks
19
@Keats Административные привилегии требуются для запуска приложения ASP.NET в IIS (так как оно будет пытаться автоматически создать виртуальный каталог и т. Д.)
codemonkeh
4
@camelBase Я считаю, что программы должны запускаться от имени администратора только при необходимости. Обычно они должны работать под более низкими привилегиями. Это то, чем я занимаюсь.
VivekDev
1
Вы действительно не должны этого делать, потому что, если вы работаете с двумя проектами, и только один должен работать от имени администратора, вы не должны запускать другой экземпляр с правами администратора.
Phil1970

Ответы:

2013

В Windows 8 и 10 вы должны щелкнуть правой кнопкой мыши devenv.exeи выбрать «Устранение неполадок совместимости».

  1. Выберите «Устранение неполадок программы»
  2. Проверьте «Программа требует дополнительных разрешений»
  3. Нажмите кнопку "Далее"
  4. Нажмите «Проверить программу ...»
  5. Дождитесь запуска программы
  6. Нажмите кнопку "Далее"
  7. Выберите «Да, сохранить эти настройки для этой программы»
  8. Нажмите «Закрыть»

Если при открытии Visual Studio он просит сохранить изменения в devenv.sln, посмотрите этот ответ, чтобы отключить его:

Отключить диалог сохранения решения Visual Studio devenv


Если вы передумали и хотите отменить параметр совместимости «Запуск от имени администратора», см. Ответ здесь: Как исправить формат нераспознанного Guid в Visual Studio 2015

Siewers
источник
40
Это лучшее решение, с которым я столкнулся. Теперь я могу снова открыть .sln файлы из Windows Explorer!
Макс Шиллинг
39
Кроме того, он также позволяет закрепленным решениям работать в качестве администратора. Спасибо.
Берн
183
Вы также можете сделать это для C:\Program Files (x86)\Common Files\Microsoft Shared\MSEnv\VSLauncher.exeфайла, если у вас установлено несколько версий Visual Studio. Кроме того, по умолчанию пути к файлам devenv.exe: Visual Studio 2010 - C:\Program Files (x86)\Microsoft Visual Studio 10.0\Common7\IDE\devenv.exe. Visual Studio 2012 -C:\Program Files (x86)\Microsoft Visual Studio 11.0\Common7\IDE\devenv.exe
deadlydog
61
Как вы вернете это обратно к тому, что было?
Роберт Коритник
96
@RobertKoritnik Это эквивалент добавления записи реестра с именем C:\Program Files (x86)\Microsoft Visual Studio 10.0\Common7\IDE\devenv.exeи значением RUNASADMINв HKEY_CURRENT_USER\Software\Microsoft\Windows NT\CurrentVersion\AppCompatFlags\Layers. Удаление записи возвращает настройки обратно.
Петр Шмыд,
168

После просмотра Super User я нашел этот вопрос, который объясняет, как сделать это с помощью ярлыка на стартовом экране. Точно так же вы можете сделать то же самое, когда Visual Studio закреплен на панели задач. В любом месте:

  1. Щелкните правой кнопкой мыши значок Visual Studio
  2. Перейти к Properties
  3. Под Shortcut tabизбраннымAdvanced
  4. Проверьте Run as administrator

настройка операции по умолчанию в режиме администратора

В отличие от Windows 7, это работает, только если вы запускаете приложение из ярлыка, который вы изменили. После обновления обоих ярлыков Visual Studio он также работает при открытии файла решения из Проводника.

Предупреждение об обновлении: похоже, что один из основных недостатков в работе Visual Studio с повышенными разрешениями заключается в том, что Explorer не работает с ними, и вы не можете перетаскивать файлы в Visual Studio для редактирования. Вам нужно открыть их через диалог открытия файла. Также вы не можете дважды щелкнуть по любому файлу, связанному с Visual Studio, и открыть его в Visual Studio (кроме решений, как кажется), потому что вы получите сообщение об ошибке, говорящее, как There was a problem sending the command to the program.только я снимаю флажок, чтобы всегда начинать с повышенными правами (используя VSCommands), тогда я ' я могу открывать файлы напрямую и помещать их в открытый экземпляр Visual Studio.

Обновление для смелых: несмотря на то, что, как я видел, в прошлом не было пользовательского интерфейса для отключения UAC, по крайней мере, вы все равно можете сделать это через реестр. Ключ для редактирования:

HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System
EnableLUA - DWORD 1-Enabled, 0-Disabled

После изменения этого Windows предложит перезагрузить компьютер. После перезапуска вы вернетесь ко всему, что работает с правами администратора, если вы являетесь администратором. Проблемы, о которых я говорил выше, теперь также исчезли.

Брайан Суровец
источник
9
Если вы отключите UAC, некоторые приложения Metro, такие как SkyDrive, больше не будут работать.
Крисдисон
1
Для Windows 8 приведенный ниже ответ TigerShark (rightclick devenv.exe в обозревателе, устранение неполадок ...) выглядит как более полное решение.
Джеймс Уайт
3
@ClaraOnager Щелкните правой кнопкой мыши значок на начальном экране и выберите «Открыть местоположение файла». Откроется папка, в которой сохранен ярлык, и вы сможете просмотреть его свойства оттуда.
Брайан Суровец
19
@Boomerangertanger О нет, не мои приложения метро! </ sarcasm>
Роберт Христос
2
Метро приложения рок. Конец.
Крисдисон
59

ПРИМЕЧАНИЕ В последних версиях VS (2015+) кажется, что это расширение больше не существует / имеет эту функцию.


Вы также можете скачать VSCommands для VS2012 от Squared Infinity, который имеет функцию, позволяющую изменить его для запуска с правами администратора (а также некоторые другие интересные элементы)

введите описание изображения здесь

Обновить

Команды можно установить из строки меню Visual Studio, используя Tools-> Extensions and Updatesвыбор Onlineи поиск того vscommandsместа, которое затем выбирается в VSCommands for Visual Studio 20XXзависимости от того, используется ли 2012 или 2013 (или более поздняя версия), а также загрузка и установка.

Не любил
источник
2
Я установил это после того, как я обновил разрешения ярлыка, таким образом я не уверен, что это делает по-другому. Помимо прав администратора, у этого плагина есть несколько приятных функций, которые стоит проверить самостоятельно.
Брайан Суровец
3
Функция VSCommands также работает, когда вы запускаете проект из меню быстрого доступа на панели задач. Прекрасные вещи!
Шон Кирон
@BrianSurowiec, что он делает, он помещает что-то в запуск VS, так что, если он не работает с администратором, он убивает себя и запускает новый экземпляр с правами администратора
Не любил
@DaveInCaz, к сожалению, правда. Я думаю, что он перестал это делать. Я отредактировал ответ, чтобы отметить это.
Не любил
36
  1. В меню «Пуск» Windows 8 выберите «Все приложения».
  2. Щелкните правой кнопкой мыши значок Visual Studio 2010
  3. Выберите Открыть местоположение файла
  4. Щелкните правой кнопкой мыши значок ярлыка Visual Studio 2010
  5. Нажмите кнопку Дополнительно
  6. Установите флажок Запуск от имени администратора
  7. Нажмите ОК
Лу
источник
2
Хороший ответ, но он будет работать только при запуске с пиктограммы, а НЕ при щелчке правой кнопкой мыши по иконке и запуске закрепленных решений. Пробовал на Windows 8 и 10, и пока у меня работает только метод устранения неполадок при запуске закрепленных решений.
djangojazz
23

Это копия моего ответа на аналогичный пост на SuperUser :

Вариант 1. Установите VSLauncher.exe и DevEnv.exe, чтобы они всегда запускались с правами администратора.

Чтобы Visual Studio всегда запускалась от имени администратора при открытии любого файла .sln :

  1. Перейдите к C:\Program Files (x86)\Common Files\Microsoft Shared\MSEnv\VSLauncher.exe.
  2. Щелкните правой кнопкой мыши VSLauncher.exeи выберите Устранение неполадок совместимости .
  3. Выберите программу устранения неполадок .
  4. Отметьте галочкой . Программа требует дополнительных разрешений и нажмите Далее.
  5. Нажмите кнопку Test the program ... , чтобы запустить VS.
  6. Нажмите Далее, затем нажмите Да, сохраните эти настройки для этой программы , а затем нажмите кнопку закрытия .

Чтобы Visual Studio всегда запускалась от имени администратора при открытии Visual Studio напрямую , проделайте то же самое с файлом (файлами) DevEnv.exe. Эти файлы расположены по адресу:

Visual Studio 2010

C:\Program Files (x86)\Microsoft Visual Studio 10.0\Common7\IDE\devenv.exe

Visual Studio 2012

C:\Program Files (x86)\Microsoft Visual Studio 11.0\Common7\IDE\devenv.exe

Visual Studio 2013

C:\Program Files (x86)\Microsoft Visual Studio 12.0\Common7\IDE\devenv.exe

Visual Studio 2015

C:\Program Files (x86)\Microsoft Visual Studio 14.0\Common7\IDE\devenv.exe

Visual Studio 2017

C:\Program Files (x86)\Microsoft Visual Studio\2017\[VS SKU]\Common7\IDE\devenv.exe

Вариант 2 - использовать расширение VSCommands для Visual Studio

Установите бесплатное расширение VSCommands для Visual Studio (оно находится в галерее расширений Visual Studio ), а затем настройте его так, чтобы Visual Studio всегда запускалась с правами администратора, для этого выберите Сервис -> VSCommands -> Параметры -> Расширения IDE -> Общие и снимите флажок Always start Visual Studio with elevated permissionsи нажмите кнопку Сохранить.

Примечание. VSCommands в настоящее время недоступны для VS 2015, но на их сайте говорится, что они работают над его обновлением для поддержки VS 2015.

Мое мнение

Я предпочитаю вариант 2, потому что:

  • это также позволяет вам легко отключить эту функцию.
  • VSCommands поставляется с множеством других замечательных функций, поэтому я всегда его устанавливаю.
  • это проще сделать, чем вариант 1.
deadlydog
источник
1
Windows 10 - каждый раз, когда я открываю .sln файл VS 2015 спрашивает меня, хочу ли я сохранить изменения в devenv.exe
FrenkyB
1
@FrenkyB Вы делали шаги, перечисленные для Варианта 1 для VS 2015? Настройка для запуска от имени администратора должна решить эту проблему. stackoverflow.com/a/14423461/602585
deadlydog
1
Это работает сейчас. Я только что сохранил devenv.exe и больше не жалуюсь.
FrenkyB
15

VSCommands не работали для меня и вызвали проблему, когда я установил Visual Studio 2010 помимо Visual Studio 2012.

После некоторых экспериментов я нашел хитрость:

Перейти HKEY_CURRENT_USER\Software\Microsoft\Windows NT\CurrentVersion\AppCompatFlags\Layersи добавить запись с именем "C:\Program Files (x86)\Common Files\Microsoft Shared\MSEnv\VSLauncher.exe"и значением "RUNASADMIN".

Это должно решить вашу проблему. Я также написал об этом в блоге .

Даниэль Ланг
источник
По некоторым причинам это не сработало для меня, но добавление записи HKEY_LOCAL_MACHINE\Software\Microsoft\Windows NT\CurrentVersion\AppCompatFlags\Layersвместо этого помогло.
Петр Шмыд,
1
Разве этот ответ функционально не идентичен первым двум?
Мори Марковиц
7

Я знаю, что это немного поздно, но я просто выяснил, как это сделать, изменив (читай, «взлом») манифест файла devenv.exe. Я должен был прийти сюда первым, потому что заявленные решения кажутся немного проще и, вероятно, больше поддерживаются Microsoft. :)

Вот как я это сделал:

  1. Создайте проект в VS под названием «Exe Manifests». (Я думаю, что любая версия будет работать, но я использовал 2013 Pro. Кроме того, не имеет значения, как вы это называете.)
  2. «Добавить существующий элемент» в проект, найдите исполняемый файл Visual Studio и нажмите «ОК». В моем случае это было «C: \ Program Files (x86) \ Microsoft Visual Studio 12.0 \ Common7 \ IDE \ devenv.exe».
  3. Дважды щелкните файл «devenv.exe», который теперь должен быть указан как файл в вашем проекте. Это должно вызвать exe в редакторе ресурсов.
  4. Разверните узел «RT_MANIFEST», затем дважды щелкните «1» под ним. Это откроет манифест исполняемого файла в бинарном редакторе.
  5. Найдите запрашиваемый тегExectionLevel и замените «asInvoker» на «requireAdministrator». А ля: <requestedExecutionLevel level="requireAdministrator" uiAccess="false"></requestedExecutionLevel>
  6. Сохраните файл.

Вы только что сохранили копию исполняемого файла, которая была добавлена ​​в ваш проект. Теперь вам нужно сделать резервную копию оригинала и скопировать измененный exe-файл в каталог установки.

Как я уже сказал, это, вероятно, не правильный способ сделать это, но, похоже, работает. Если кто-нибудь знает о каких-либо негативных последствиях или необходимом ударе запястья, пожалуйста, присоединяйтесь!

Джим Строун
источник
Если вы сделаете это, то станет невозможным запускать приложение как LUser, и ничто не должно запускаться с правами администратора, если только они не требуются по известной, уважительной причине (такой как автоматическая настройка IIS)
EKW
6

Если вы используете Total Commander, как и я, вы должны сделать то же самое, чтобы Total Commander всегда запускался от имени администратора. Затем вы сможете открыть файл sql двойным щелчком в том же экземпляре управления SQL Server или открыть любой файл Visual Studio двойным щелчком и не открывать несколько экземпляров.

Эта программа устранения неполадок добавляет значение реестра в HKEY_CURRENT_USER \ Software \ Microsoft \ Windows NT \ CurrentVersion \ AppCompatFlags \ Layers для любой программы, поэтому, если вы хотите написать ее напрямую, вы можете.

drejKamikaza
источник
1
По сути, он добавляет новое строковое значение к этому пути в реестре, где имя является полным путем к исполняемому файлу (без кавычек), а данные - RUNASADMINна случай, если вы захотите сделать это вручную.
Рэй
6

Я нашел простой способ сделать это на EightForums ( вариант 8 ), создать строковое значение в HKEY_CURRENT_USER \ Software \ Microsoft \ Windows NT \ CurrentVersion \ AppCompatFlags \ Layers. Установите имя для пути к программе и значение ~ RUNASDMIN. В следующий раз, когда вы откроете программу, она откроется как администратор.

[HKEY_CURRENT_USER\Software\Microsoft\Windows NT\CurrentVersion\AppCompatFlags\Layers]
    "C:\\Program Files (x86)\\Microsoft Visual Studio 12.0\\Common7\\IDE\\devenv.exe"="~RUNASADMIN"
Майк
источник
5

Просто найдите программу в каталоге Program Files (или в другом месте). Щелкните правой кнопкой мыши по файлу EXE, на второй вкладке внизу установите флажок для принудительного запуска этой программы с правами администратора. Отныне все ярлыки исполняемого файла будут запущены с правами администратора :)

BlueMan
источник
1
Это работает во всех системах, где в окне «Свойства» есть вкладка «Совместимость», а в Windows 8 - нет (хотя в Windows 8.1 это делается).
ThePyroEagle
5

Кроме того, вы можете проверить совместимость устранения неполадок

  • Щелкните правой кнопкой мыши Visual Studio> выберите Устранение неполадок совместимости.
  • Выберите «Устранение неполадок программы».
  • Проверка Программа требует дополнительных разрешений.
  • Нажмите на кнопку Проверить программу.
  • Подождите немного до запуска программы. Нажмите кнопку "Далее.
  • Выберите Да, сохранить эти настройки для этой программы.
  • Ждите, чтобы решить проблему.
  • Убедитесь, что окончательный статус зафиксирован. Нажмите Закрыть.

Ознакомьтесь с подробными инструкциями и другими способами, чтобы всегда открывать VS в качестве администратора в Visual Studio, чтобы приложение имело повышенные разрешения .

MVP Мохамеда Эль-Кассаса
источник
2

Visual Studio автоматически поднимается, если в манифесте приложения проекта указан административный элемент requestedExecutionLevel, поэтому вам просто нужно отредактировать его. Visual Studio обнаружит это и при необходимости перезапустит себя с правами администратора.

beppe9000
источник