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.batcom 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á).