Тихий запуск с правами администратора в Windows 5.x, 6.x/10

Обсуждение Total Commander. Установка, использование, настройка, решение проблем, скрытые функции. Обсуждение новых версий.

Модераторы: Avada, CaptainFlint, Nik, d-view, Моторокер

Аватара пользователя
LonerD
Сообщения: 1174
Зарегистрирован: Вт янв 04, 2011 03:56
Откуда: Макеевка
Контактная информация:

Тихий запуск с правами администратора в Windows 5.x, 6.x/10

Сообщение LonerD »

Некоторые программы под Windows v6.x (и уже 10.х) могут нормально работать только если запускать их с правами администратора. Изредка попадаются умные (типа Autoruns), которые при запуске от пользователя ругнутся и сами себя перезапустят с нужными правами. Но большинство запускаются и не работают вообще или работают неполноценно.
В то же время на ХР им свистопляски не нужны.

Ищу простой способ тихо запускать программы на Win 6.x/10.x с правами администратора, а в Win 5.x - с обычными правами.
Звёздочка перед запускаемой программой
cmd=*%commander_path%\Utilities\Program.exe
даёт желаемый результат в Win 6.x/10.x, но под ХР вызывает нежелательный диалог выбора пользователя, от имени которого программу нужно запустить.
Программа Sudo - вызывает тот же эффект...

Знаю решение "Назначить версии ОС на переменные окружения через плагин Autorun, а потом через батник запускать программы с правами администратора или без оных в зависимости от ОС". Но это решение не отличается элегантностью.

Какие ещё варианты? :)
Windows 11 | TC DreamLair eternal pre-α
Аватара пользователя
Flasher
Сообщения: 14229
Зарегистрирован: Пт ноя 06, 2009 00:33
Откуда: Москва

Сообщение Flasher »

LonerD писал(а):а потом через батник запускать программы
Зачем?

Код: Выделить всё

StrMid OSVer %SYSINFO_OSVERSION% 5
If %OSVer% = 2000 Or %OSVer% = XP Or %OSVer% = 2003 Or %OSVer% = 2003R2 Then
  SetEnv ADM
Else
  SetEnv ADM *
После в строках "Команда:" подставляешь %ADM% вместо * и тихо радуешься.
Автору сборки TC Image (Andrey_A) настоятельно рекомендуется не распространять на иных ресурсах любую предоставленную мной где-либо техническую информацию по автоматизации и оптимизации в работе с ТС и системой.
Аватара пользователя
MVV
Сообщения: 4815
Зарегистрирован: Чт окт 15, 2009 10:58
Откуда: Ростов-Дон

Сообщение MVV »

В упор не могу понять, как может работать раскрытие пустой переменной окружения, когда системная функция раскрытия переменных окружения тупо оставляет пустые и отсутствующие переменные как есть... И почему оно то работает, то нет...
Это работает с пустой ADM:

Код: Выделить всё

%ADM%"C:\Windows\notepad.exe"
Это уже НЕ работает:

Код: Выделить всё

%ADM%"C:\Windows\notepad.exe" 1.txt
Это тоже НЕ работает с пустой ADM, и при запуске блокнота чётко видно, что пустая TEST_VAR тоже не раскрывается:

Код: Выделить всё

%ADM%"C:\Windows\notepad.exe" %TEST_VAR%.txt
Последний раз редактировалось MVV Вт ноя 08, 2016 10:20, всего редактировалось 1 раз.
Аватара пользователя
Flasher
Сообщения: 14229
Зарегистрирован: Пт ноя 06, 2009 00:33
Откуда: Москва

Сообщение Flasher »

А *"C:\Windows\notepad.exe" 1.txt работает?
И зачем в кавычки брать, там же пробелов нет?
Автору сборки TC Image (Andrey_A) настоятельно рекомендуется не распространять на иных ресурсах любую предоставленную мной где-либо техническую информацию по автоматизации и оптимизации в работе с ТС и системой.
Аватара пользователя
MVV
Сообщения: 4815
Зарегистрирован: Чт окт 15, 2009 10:58
Откуда: Ростов-Дон

Сообщение MVV »

Да, *"C:\Windows\notepad.exe" 1.txt прекрасно работает. А в кавычки я взял, т.к. думал поначалу, что не запускается из-за того, что звёздочке нужны кавычки, если есть аргументы.
Аватара пользователя
Flasher
Сообщения: 14229
Зарегистрирован: Пт ноя 06, 2009 00:33
Откуда: Москва

Сообщение Flasher »

А если параметр перенести в след. поле?
Автору сборки TC Image (Andrey_A) настоятельно рекомендуется не распространять на иных ресурсах любую предоставленную мной где-либо техническую информацию по автоматизации и оптимизации в работе с ТС и системой.
Аватара пользователя
MVV
Сообщения: 4815
Зарегистрирован: Чт окт 15, 2009 10:58
Откуда: Ростов-Дон

Сообщение MVV »

Тогда я не смогу раскрыть в нём переменную, т.к. тотал раскрывает их только в первом поле.
Аватара пользователя
Flasher
Сообщения: 14229
Зарегистрирован: Пт ноя 06, 2009 00:33
Откуда: Москва

Сообщение Flasher »

Пример такой жизненной потребности можно?
Автору сборки TC Image (Andrey_A) настоятельно рекомендуется не распространять на иных ресурсах любую предоставленную мной где-либо техническую информацию по автоматизации и оптимизации в работе с ТС и системой.
Аватара пользователя
MVV
Сообщения: 4815
Зарегистрирован: Чт окт 15, 2009 10:58
Откуда: Ростов-Дон

Сообщение MVV »

Тут в первую очередь интересен сам факт наличия проблемы.

Примеров может быть много, не так уж и редка необходимость подстановки переменных окружения в комстроку, и далеко не всегда запускаемая программа может раскрыть их сама, особенно если это переменные в окружении тотала, которых в окружении запущенной от админа программы не будет в принципе.
Аватара пользователя
Flasher
Сообщения: 14229
Зарегистрирован: Пт ноя 06, 2009 00:33
Откуда: Москва

Сообщение Flasher »

Факт, может, и интересен, но что толку. Это либо Гислеру писать о поддержке либо принять сам факт.

Внутренние же переменные ТС во многих случаях легко заменяются относительными путями, поэтому я как-то обхожусь.
Меня всегда вопрос допустимости интересовал куда в меньшей степени, чем вопрос необходимости.
Автору сборки TC Image (Andrey_A) настоятельно рекомендуется не распространять на иных ресурсах любую предоставленную мной где-либо техническую информацию по автоматизации и оптимизации в работе с ТС и системой.
Аватара пользователя
MVV
Сообщения: 4815
Зарегистрирован: Чт окт 15, 2009 10:58
Откуда: Ростов-Дон

Сообщение MVV »

Собственно, написал, интересно, что он ответит.

А переменные я имел в виду не внутренние, а просто те, которые определены в окружении тотала (сверху или через Autorun), но не глобально.
Аватара пользователя
Flasher
Сообщения: 14229
Зарегистрирован: Пт ноя 06, 2009 00:33
Откуда: Москва

Сообщение Flasher »

Хорошо, что написал. Посморим на реакцию, если она вообще будет. :)

Я понял, что в окружении. Чем они не внутренние?
Они же переменные внутреннего окружения TC.
Автору сборки TC Image (Andrey_A) настоятельно рекомендуется не распространять на иных ресурсах любую предоставленную мной где-либо техническую информацию по автоматизации и оптимизации в работе с ТС и системой.
Skif_off
Сообщения: 1252
Зарегистрирован: Ср ноя 28, 2012 13:44

Сообщение Skif_off »

Что-то я с этой фичей запутался: если использовать %ADM% вот так

Код: Выделить всё

%ADM%"%AutoIt%" "%COMMANDER_PATH%\restart.au3" --restart
то работает в Win7x64, но не работает в WinXP, а если сделать так

Код: Выделить всё

"%ADM%%AutoIt%" "%COMMANDER_PATH%\restart.au3" --restart
то в Win7x64 выдаёт ошибку, зато работает в WinXP.

Почему? И как сделать, чтобы работало везде?
Последний раз редактировалось Skif_off Вт ноя 08, 2016 14:49, всего редактировалось 1 раз.
Аватара пользователя
Flasher
Сообщения: 14229
Зарегистрирован: Пт ноя 06, 2009 00:33
Откуда: Москва

Сообщение Flasher »

Skif_off
А я что-то запутался в постановке твоего вопроса. :?
Автору сборки TC Image (Andrey_A) настоятельно рекомендуется не распространять на иных ресурсах любую предоставленную мной где-либо техническую информацию по автоматизации и оптимизации в работе с ТС и системой.
Skif_off
Сообщения: 1252
Зарегистрирован: Ср ноя 28, 2012 13:44

Сообщение Skif_off »

Flasher
Я, честно говоря, тоже. Поправил пост.
Ответить