I only want the UAC prompt to be asked for the net.exe[.] Is it possible?
Até onde sei, a resposta é provavelmente "Não".
O UAC está sendo exibido para nircmd
, portanto, ele pode executar net start
com os privilégios elevados apropriados (exigidos pelo Windows). Essa elevação deve ocorrer antes que net start
seja executado. Na minha experiência, isso geralmente é verdade para muitos programas de terceiros ou scripts que executam uma função semelhante.
Elevar é uma exceção (ou seja, exibirá Net Command
no UAC), mas, novamente, não suprime a janela do console como nircmd
faz.
After that I don't want the console window to appear.
Embora uma janela do console possa aparecer com outras soluções (por exemplo, elevate.exe
, um script .vbs
), uma nova janela do console não será exibida após a execução de nircmd elevatecmd execmd net start example_service
.
Suprimir a janela da consola
Embora seja provável que não seja possível exibir net.exe
no UAC, você pode suprimir a janela do console do arquivo em lote (o que honestamente parece ser seu verdadeiro objetivo, se não estou interpretando mal as coisas):
-
Crie um arquivo
.bat
, por exemplostart_service.bat
com algo como o seguinte:C:\path\to\nircmd.exe elevatecmd execmd net start example_service
-
Crie um novo atalho em algum lugar para executar esse arquivo
.bat
. Torne o alvo semelhante ao seguinte:C:\path\to\nircmd.exe execmd C:\path\to\start_service.bat
Para este exemplo, quando este atalho é usado (não o arquivo .bat
diretamente), somente o prompt do UAC será exibido (nenhuma janela do console aparecerá).