Я только хочу, чтобы запрос UAC запрашивался для net.exe [.] Возможно ли это?
Насколько мне известно, ответ, скорее всего, "Нет".
UAC отображается для того, nircmd
чтобы он мог работать net start
с надлежащими повышенными привилегиями (которые требуются в Windows). Это повышение должно произойти до net start
запуска. По моему опыту, это в целом верно для многих сторонних программ или скриптов, которые выполняют аналогичную функцию.
Elevate является исключением (то есть он будет отображаться Net Command
в UAC), но, опять же, он не подавляет окно консоли, как это nircmd
происходит.
После этого я не хочу, чтобы появилось окно консоли.
Хотя окно консоли может отображаться с другими решениями (например elevate.exe
, .vbs
сценарием), новое окно консоли не отображается после запуска nircmd elevatecmd execmd net start example_service
.
Подавление Консольного Окна
Хотя это, вероятно, невозможно отобразить net.exe
в UAC, вы можете отключить окно консоли для командного файла (что, честно говоря, и есть ваша истинная цель, если я не слишком неправильно читаю вещи):
Создайте
.bat
файл, например,start_service.bat
с чем-то вроде следующего:C:\path\to\nircmd.exe elevatecmd execmd net start example_service
Создайте новый ярлык где-нибудь для запуска этого
.bat
файла. Сделайте цель похожей на следующую:C:\path\to\nircmd.exe execmd C:\path\to\start_service.bat
В этом примере, когда используется этот ярлык (не .bat
файл напрямую), будет отображаться только приглашение UAC (окно консоли не будет отображаться).