
У меня есть старая игра, в которую мы с женой любим играть. Я установил ее на совершенно новый компьютер с Windows 10, и она прекрасно запускается из командной строки и при двойном щелчке по исполняемому файлу в Проводнике.
Однако при таком запуске он всегда выводит запрос UAC «Разрешить этой программе вносить изменения», а я пытаюсь запустить игру без этого запроса.
Различные инструкции отсылают меня к планировщику задач: создать задачу, предоставить ей «максимальные привилегии», разрешить ее запуск по требованию, затем создать ярлык для запуска этой задачи.
Итак, я создаю задачу в Планировщике задач, и инструкции разумно предлагают протестировать ее запуск оттуда, и вот где я сейчас застрял. Похоже, я не могу запустить игру, заставив Планировщик задач запустить созданную мной задачу.
В разделе «Общие» (в свойствах планировщика задач для этой задачи) у меня есть «запускать только при входе пользователя в систему», «запускать с наивысшими привилегиями» и «настроить для Windows 10». Триггеры пусты. Действия имеют «Запустить программу» и полный путь, включая имя исполняемого файла и «.exe». В условиях я снял флажок «запускать задачу, только если компьютер подключен к сети переменного тока» и не ставил никаких других флажков.
Если я нажму правой кнопкой мыши на задачу и выберу «Выполнить», статус задачи изменится на «Выполняется», но больше ничего не произойдет. Если я перейду в привилегированную командную строку и попробую использовать «schtasks /run /tn taskName», я получу сообщение о том, что задача успешно запущена, и больше ничего не произойдет.
Думаю, мне стоит упомянуть, что эта игра — «полноэкранная»; все обычные окна Windows исчезают, и на экране остается только это. Я, конечно, не знаю, имеет ли это какое-то значение.
Еще одна странность — я подумал, что, возможно, проблема может возникнуть из-за изменения параметра по умолчанию «Запускать задачу только если компьютер подключен к сети переменного тока», поэтому я вернулся к свойствам задачи и попытался изменить его. Когда я это делаю, я получаю что-то вроде «xml задачи содержит значение, которое неправильно отформатировано или выходит за пределы диапазона». Я ожидал бы получить ошибку при попытке запустить задачу в этом случае, но подумал, что стоит упомянуть об этом, если это того стоит.
Игра называется "Caesar III", если это имеет значение для кого-то. Как мне запустить ее без запроса UAC, через планировщик задач или как-то еще?
решение1
Планировщик задач — это не то место, где нужно искать. Это обходной путь, но вы боретесь противUAC (контроль учетных записей пользователей). Настройки по умолчанию требуют, чтобы любое приложение, запрашивающее административный доступ, получило разрешение от пользователя, отсюда и запрос.
Прежде чем сделать следующее, проверьте свойства ярлыка и убедитесь, что приложение не настроено на запуск от имени администратора. Если это так, снимите этот флажок, и проблема должна исчезнуть. Если нет, пожалуйста, продолжайте.
UAC — это не так уж плохо (как когда-то). Это импорт из концепции разрешений Linux, чтобы защитить вас от приложений, которые являются вредоносным ПО и пытаются захватить вашу машину с помощью административных привилегий. Он агрессивно контролирует папки Program Files и Program Files(x86), где у вас, скорее всего, установлена ваша игра, чтобы помешать пользователю установить что-то, что кажется невинным, но таковым не является (например, приложение для мониторинга кредитоспособности, которое на самом деле просто устанавливает кейлоггер, 20 панелей инструментов и кражу ваших личных данных). По этой причине я советуютерпеть всплывающее окно, если вы действительно не знаете, что делаете и как защитить свой компьютер.
Если вы хотите защитить свой компьютер как профессионал или просто решили не следовать моему совету, вот как можно изменить настройки UAC:
- Открыть панель управления
- Выберите учетные записи пользователей и семейную безопасность.
- Выберите учетные записи пользователей
- Изменить настройки контроля учетных записей пользователей
- Установите ползунок в нижнее положение или полностью вниз, чтобы отключить UAC.
Обратите внимание, что большинство современных приложений не помечены UAC. Старые игры (включая вашу) часто запрашивали административные разрешения или пытались записать в защищенные папки, и им просто разрешалось это делать. В вашем случае ярлык ведет в защищенную папку, и UAC не нравится, как он это делает, что, вероятно, и является вашей основной причиной.
решение2
Я нахожу это полезным предупреждением о том, что что-то делает что-то за пределами обычных границ приложения. Но мне не нужно предупреждение об этой (и, вероятно, нескольких других) конкретных программах.
Вот как работает UAC:
Так как программы Windows Vista не имеют административных привилегий по умолчанию. Даже если ваша учетная запись является учетной записью администратора, программам не разрешено выполнять административные действия, если они не запущены с повышенными разрешениями. Если программа попытается выполнить ограниченное действие без повышенных разрешений, она потерпит неудачу.
UAC — это не просто предупреждение, которое можно проигнорировать. Оно информирует вас о том, что если вы позволите этой программе работать, то она сможет делать все, что захочет, в том числе:
- Запуск других программ с повышенными привилегиями
- Изменение файлов других программ
- Изменение настроек безопасности
- Повреждение окон
Вы можете либо довериться программе и не запускать ее, либо запретить ее запуск.
Если программа запущена без повышенных разрешений, всплывающее окно UAC не появится, но она также даст сбой, как только попытается сделать что-то запрещенное для обычных пользователей. Это, скорее всего, приведет к сбою.
Нет золотой середины: вам придется либо явно повышать привилегии каждый раз, либо запускать программу без повышенных привилегий. Это разумная модель безопасности: вы не выполняете административные задачи ежедневно. В обычном рабочем процессе вы не должны слишком часто видеть UAC в действии. Если только вы не используете программы, которые не заботятся о безопасности.
Поскольку программа была написана до UAC, я сомневаюсь, что она «запрашивает разрешения».
Все немного сложнее.
По сути, любой процесс может запросить запуск другого процесса с повышенными привилегиями. Наиболее распространенные причины запуска программы с повышенными привилегиями:
Манифест UAC. Разработчики могут встраивать манифест в свои исполняемые файлы, который обеспечивает их запуск с повышенными привилегиями. При запуске исполняемого файла Windows проверит наличие этого манифеста, и если он присутствует, программа всегда будет запускаться от имени администратора.
Атрибут UACв свойствах исполняемого файла (или ярлыка), наСовместимостьвкладка. Если она присутствует, Windows повысит уровень программы.
Настройки совместимости в свойствах. Опять же, некоторые настройки наСовместимостьвкладка вХарактеристикиможет принудительно повысить привилегии. Например, включение совместимости с системами до Vista делает это.
Дополнительные настройки совместимости.Инструментарий совместимости— это надстройка, которая позволяет осуществлять детальный контроль над некоторыми функциями совместимости. Опять же, некоторые из них могут принуждать к повышению привилегий.
Политики совместимости по умолчанию, может быть? Я не уверен в этом, но подозреваю, что в Windows есть некая эвристика, которая решает, какие приложения должны запускаться с повышенными привилегиями, даже если они явно не включены. В Vista были некоторые функции, которые были созданы для облегчения перехода на UAC, например VirtualStore. Возможно, есть и другие.
Скорее всего, игра запрашивает административные привилегии, потому что использует административные функции. Тогда никто не заботился об этом. Программы раскладывали свои файлы повсюду:Программные файлы,Окнакаталог, как хотите. Это защищенные местоположения.
Есть также некоторые функции совместимости, которым просто нужен UAC для правильной работы. Насколько я помню, некоторые устаревшие графические настройки могут использоваться только администратором.
Короче говоря:
Если игра запрашивает повышенные привилегии, то можно смело предположить, что она ДОЛЖНА их предоставить.
Это не просто предупреждение. Это важнейшая часть модели безопасности.
Кстати, если вы купили игру на GOG.com, то вы, скорее всего, не получили оригинальный исполняемый файл, выпущенный в 1999 году. GOG.com патчит свои игры, чтобы они работали на современном оборудовании и операционных системах. Они могут добавлять свой манифест UAC в EXE, если они поняли, что это необходимо.
решение3
Попробуйте щелкнуть правой кнопкой мыши по файлу приложения .exe и запустить его от имени администратора.
Вы также можете щелкнуть правой кнопкой мыши по ярлыку приложения или файлу .exe приложения -> Свойства -> вкладка Совместимость -> поле «Запускать эту программу от имени администратора» -> ОК.