#visual-studio #autohotkey #uac
#visual-studio #autohotkey #uac
Вопрос:
У меня настроен VS2015 так, чтобы он всегда запускался от имени администратора (примерно так https://superuser.com/a/468056/48346 ).
Теперь я хочу создать скрипт AHK для запуска Visual Studio и выполнить несколько команд пользовательского интерфейса / клавиатуры, чтобы подготовить его для меня — я хочу, чтобы этот скрипт запускался при входе в систему, но это более поздняя проблема.
Очевидно, что нулевым решением является отключение UAC, но я не хочу этого делать.
Пока я застрял на том, что приглашение UAC всегда захватывает весь экран, и я не могу использовать AHK для нажатия кнопки «да» или отправки каких-либо команд клавиатуры для нажатия enter или чего-то подобного. Я думаю, в этом весь смысл приглашения UAC, не позволять чему-либо делать это за меня.
Нет ли способа открыть VS без отображения приглашения UAC? Мне нужно будет открыть определенный файл решения, поэтому, если это возможно из командной строки, файл решения должен быть включен в команду, чтобы он открылся.
До сих пор я пробовал запускать команды AHK, но мне не удалось заставить это работать — мой личный пользователь — это пользователь домена, который является членом группы администраторов на моем локальном компьютере. Я попытался создать конкретную учетную запись runner с правами администратора и использовать для этого команду RunAs, но это не сработало. Я получаю отказ в доступе при запуске этого кода AHK:
RunAs, runner, password, LocalComputer-Name
Run, %comspec% /k "start c:UsersmyaccDocumentspathsolution.sln"
Учетная запись runner находится в группе администраторов на моем локальном компьютере, которая имеет полный доступ к папке, в которой хранится файл решения, включая сам файл, поэтому я не понимаю, почему доступ запрещен.
Разве это невозможно?
Ps. Я бы задал этот вопрос на форуме AHK, но регистрация там, похоже, вообще не отправляет электронное письмо с подтверждением (нет, его нет в моей папке со спамом), поэтому я не могу опубликовать его там.
Комментарии:
1. Отключение UAC — единственный способ сделать это. Если бы существовал программный или скриптовый способ обойти UAC, тогда не было бы смысла даже иметь UAC.
2. Я видел несколько сообщений здесь и там, предлагающих то-то и то-то (включая команду RunAs) для предыдущих версий Windows с UAC, является ли это жесткое ограничение чем-то новым?
3. Возможно ли создать сценарий, который просто ждет, пока я не нажму «Да», а затем продолжит выполнение?
4. Кроме того, нет ли какого-либо способа настроить запланированную задачу для запуска при входе в систему, которая выполняется от имени администратора, без использования UAC? Кажется, я помню что-то подобное, я собираюсь инвестировать
Ответ №1:
Ответ заключается в том, чтобы запланировать выполнение задачи с наивысшими привилегиями для запуска сценария при входе в систему. Проблема, с которой я действительно столкнулся, заключалась в создании и отладке сценария — выполнение задачи каждый раз было громоздким. Итак, чтобы отладить сценарий, просто щелкните правой кнопкой мыши сценарий и выберите «Запуск от имени администратора». Тогда приглашение UAC появится перед запуском сценария, но не во время выполнения сценария. Затем, когда сценарий будет готов, просто запланируйте выполнение задачи при входе в систему и установите флажок «Запускать с наивысшими привилегиями» для задачи. Затем вы можете попробовать выполнить задачу, щелкнув правой кнопкой мыши по вновь созданной задаче и выбрав выполнить, после чего вы увидите, что она выполняется без приглашения UAC.
Моя окончательная версия скрипта просто открывает файл решения с помощью Run, никаких запусков не требуется — запланированная задача настроена на запуск от имени моего пользователя с наивысшими привилегиями.
Run, %comspec% /c "start c:Usersmyaccpathsolution.sln"