Execute a função exec do php para parar os serviços do Windows

1

Eu escrevi um programa web em php que precisa parar um serviço do windows e iniciá-lo quando executado assim:

 exec('net stop spooler'); //to stop printer spooler
 exec('net start spooler'); //to start printer spooler

os códigos acima não param o spooler da impressora e eu acho que sei porque, quando eu abrir o prompt de comando cmd normalmente e digite net start spooler i obter acesso negar ... mas quando eu abro cmd - prompt de comando como administrador a linha de comando funcionará, então acho que o apache também precisa receber permissão do administrador para que o código acima funcione, mas não consigo descobrir como conceder o código para ser executado como administrador.

o serviço de janelas do spooler da impressora pode ser encontrado quando você clica em iniciar > tipo run > em executar o tipo de comando services.msc, em seguida, você verá o spooler da impressora como um dos serviços do Windows ... quando o código acima é executado ... ele deve parar o serviço ou iniciá-lo

    
por user2666633 13.04.2015 / 22:54

1 resposta

0

Já experimentou o comando sc ? Questão semelhante

Ao invés de pular através de arcos de execução administrativa, que tal você ter PHP escrito em um arquivo, um arquivo físico, e ter um programa separado , rodando com direitos Administrativos, disparando o comando net stop ? Isso não apenas garante a execução, mas também garante segurança. Para melhor confiabilidade, você pode ter um aplicativo VB.NET rápido com um Timer para verificar o arquivo a cada x segundos, mas tenho certeza que você pode usar um arquivo de lote em execução também, em um piscar de olhos. Mas com o VB.NET você pode executar o processo em segundo plano em seu próprio segmento e garantir que ele continue em execução.

Espero que isso lance uma luz.

    
por 13.04.2015 / 23:07