2014-09-08 6 views
0

У меня есть 20-летний исполняемый файл в 64-разрядной версии Windows 2008 R2, который нужно запускать при вызове из пакетного файла. Я пробовал настройки в разделе Совместимость | Уровень привилегий | Изменить настройки для всех пользователей | Запустите эту программу как администратор, но она не работает - она ​​всегда вызывает приглашение доступа к UAC.Проблема UAC в Windows Server 2008 R2

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

Кроме того, пути жестко закодированы в программе, поэтому я не могу переустановить в Program Files - он должен находиться непосредственно под диском C :.

Есть ли что-то еще, что я могу сделать, чтобы запустить его с включенным UAC?

+0

Обратите внимание, что поведение, которое вы описываете для параметра «Запуск этой программы как администратора», соответствует ожиданиям. Он не должен обойти приглашение UAC, просто чтобы убедиться, что Windows не запускает программу без прав администратора. –

ответ

2

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

Итак, если вы запускаете командный файл таким образом, что он уже использует повышенный токен, вы не получите приглашение UAC. В интерактивном режиме вы можете открыть командную строку повышенной (которая потребует подтверждения UAC), а затем запустить пакетный файл столько, сколько вы хотите, без каких-либо дополнительных запросов. Кроме того, вы можете запускать его как запланированную задачу. Пока запланированная задача выполняется с правильными учетными данными пользователя (вы можете запустить под учетной записью пользователя с проверенными наивысшими привилегиями или запустить ее под какой-либо системной учетной записью или даже создать совершенно новую учетную запись администратора), она должна иметь возможность запускать без приглашения UAC.

Имейте в виду, что как только у вас будет система, в которой запущен пакетный файл с повышенными привилегиями, любой, кто может изменить этот пакетный файл, может поставить под угрозу ваш компьютер. Вы должны запустить его как учетную запись с максимально возможными привилегиями (пока все еще выполняется успешно) и убедиться, что сам пакетный файл защищен.

+0

+1. Другой вариант для командного файла - запустить его с помощью ярлыка и установить опцию «запустить как admin» в ярлыке. –

+0

@HarryJohnston Я считаю, что это все равно появится приглашение UAC, но оно делает так, что вам не нужно щелкнуть правой кнопкой мыши и выбрать «Запуск от имени администратора». Он также отобразит экран UAC на значке, чтобы вы знали, что это ссылка администратора. – lordjeb

+0

Да, конечно. Вы всегда должны утверждать приглашение UAC, если вы не настроили его как запланированную задачу (или другой подобный метод). –

Смежные вопросы