Bom dia,
Tenho uma aplicação que desenvolvi para atualizar o sistema aqui na empresa que trabalho e um dos métodos utilizo para parar uns serviços do windows para poder copiar os arquivos e depois inicio novamente os serviços. Porém no windows 10 quando chamo esse método ocorre o seguinte problema:
[SC] OpenService FALHA 5:
Acesso negado.
A questão é, quando estava no windows sete o mesmo metodo abaixo funcionava, só foi atualizar para windows 10 não funcionou mais. Alguém pode me ajudar??
public void pararServicos() throws InterruptedException {
String stopCommandScript0[] = { “cmd.exe”, “/c”, “sc”, “Stop”, “SocketServer” };
String stopCommandScript1[] = { “cmd.exe”, “/c”, “sc”, “Stop”, “fmpServicoRobo” };
String stopCommandScript2[] = { “cmd.exe”, “/c”, “sc”, “Stop”, “fmpServicoRobo01” };
String stopCommandScript3[] = { “cmd.exe”, “/c”, “sc”, “Stop”, “fsigServico” };
String stopCommandScript4[] = { “cmd.exe”, “/c”, “sc”, “Stop”, “sigWSServicoServidor” };
Process process;
try {
process = new ProcessBuilder(stopCommandScript0).start();
process = new ProcessBuilder(stopCommandScript1).start();
Thread.currentThread().sleep(15000);
process = new ProcessBuilder(stopCommandScript2).start();
Thread.currentThread().sleep(15000);
process = new ProcessBuilder(stopCommandScript3).start();
process = new ProcessBuilder(stopCommandScript4).start();
InputStream is = process.getInputStream();
InputStreamReader isr = new InputStreamReader(is);
BufferedReader br = new BufferedReader(isr);
String line;
// System.out.printf("Output of running cmd /c dir is:");
while ((line = br.readLine()) != null) {
if (line.matches("controlservice failed")) {
System.out.println(".......");
}
System.out.println(line);
}
br.close();
isr.close();
is.close();
process.destroy();
} catch (IOException e) {
e.printStackTrace();
}
}