У меня есть проект, который внутренне использует cmd /c "..."
для запуска некоторых небольших утилит, которые являются частью программного пакета и разработаны мной.
Сегодня я понял о существовании переключателя /D
в cmd
:
/D Disable execution of AutoRun commands from registry (see below)
...
If /D was NOT specified on the command line, then when CMD.EXE starts, it
looks for the following REG_SZ/REG_EXPAND_SZ registry variables, and if
either or both are present, they are executed first.
HKEY_LOCAL_MACHINE\Software\Microsoft\Command Processor\AutoRun
and/or
HKEY_CURRENT_USER\Software\Microsoft\Command Processor\AutoRun
Интересно, стоит ли мне включать такой переключатель, чтобы избежать непреднамеренного поведения (например, внедрения приложения, установки нежелательных переменных env и т. Д.), Или использование этого параметра приведет к возникновению дополнительных проблем (таких как неустановленные системные переменные, не знаю).
Примечание: причина, по которой я использую cmd
, связана с проблемами, которые у меня были с UAC (как повышение или понижение привилегий), и другими проблемами в прошлом с другими методами, такими как CreateProcess
, что я думаю, далеко от объема этого вопроса.