Можно ли запустить команду без повышенных привилегий из командного файла, который был запущен с повышенными привилегиями?
2 ответа
Это похоже на работу.
runas /trustlevel:0x20000 <program>
(привилегия повышения может быть проверена в командном файле, как это)
Я получил подсказку от runas /?
где это говорит
/showtrustlevels displays the trust levels that can be used as arguments
to /trustlevel.
/trustlevel <Level> should be one of levels enumerated
in /showtrustlevels.
выходы runas /showtrustlevels
The following trust levels are available on your system:
0x20000 (Basic User)
У меня нет более глубокого понимания, но, кажется, это делает работу.
Уэлп, оказывается, это вызывает проблемы, по крайней мере, для меня.
Моя цель состояла в том, чтобы запустить Chrome, но все страницы вылетали и не загружались.
Другая проблема заключается в том, что я не могу перетаскивать элементы в и из приложений, запущенных таким и обычным способом.
Планировщик заданий - это еще один способ. Это не вызывает вышеупомянутых проблем. Хотя нужно заранее создавать конкретные задачи.
Я нашел два способа сделать это:
Для начала требуется программа Nirsoft RunFromProcess.exe. Предполагая, что процесс explorer.exe не работает с повышенными правами, это будет работать:
runfromprocess explorer.exe cmd.exe /k pushd %temp%
или же
runfromprocess explorer.exe "C:\full path\to\bat\file.bat
Лучший способ сделать это - использовать программу DeElevate.exe от Stardock:
DeElevate.exe "C:\full path\to\bat\file.bat" ["parameters"]
или же
DeElevate.exe "C:\full path\to\program.exe" ["parameters"]
например, это будет работать:
DeElevate.exe cmd.exe "/k pushd %temp%"
Вы можете найти программу DeElevate.exe в составе приложения Groupy:
http://storage.stardock.com/files/current/Groupy-sd-setup.exe
после его установки (желательно в песочнице или на виртуальной машине) вам понадобятся только файлы DeElevate64.exe, DeElevator64.dll из каталога "C:\Program Files (x86)\Stardock\Groupy\", если ваша система 64 биты или файлы DeElevate.exe, DeElevator.dll из "C:\Program Files\Stardock\Groupy\", если ваша система имеет 32 бита.