Shutdown no windows com usuário restrito

Pessoal…
To com o seguinte problema…

String os = System.getProperty(“os.name”).toUpperCase();
if(os.equals(“WINDOWS 2000”)){
//Codigo
}else{
Runtime.getRuntime().exec(“cmd /c shutdown -s -f -t 0”);
}

O seguinte código funciona perfeitamente quando utilizo o windows xp com um usuario com privilegios de admnistrador… Mas quando tento o mesmo codigo com usuario restrito ele nao funciona… Ao tentar executar no promt de comando aparece uma mensagem informando que eu nao tenho permissao para utilizar este comando. Entretando qualquer usuario com privilegio restrito pode desligar a maquina pelo iniciar -> desligar.

Alguem sabe algum comando que funcione tanto para usuarios administradores quanto pra usuarios restritos?

Vê se te ajuda:

public class Shutdown {

  private Shutdown() { }

  private static void runCommand(String file, String params) {
    ParamArray pa = params.split(" ");
    Runtime.exec(file, pa);
  }

  public static void shutdownWinpreXP() {
    runCommand("RUNDLL32.EXE", "user32,ExitWindowsEx");
  }

  public static void shutdownWinXP() {
    runCommand("shutdown.exe", "-s -t 01");
  }

  public static void shutdownWindows() {
    try {
      shutdownWinXP();
    catch (IOException e) {
      shutdownWinpreXP();
    }
  }

  public static void shutdownLinux() {
    runCommand("shutdown", "now");
  }

}

Funciona apenas como usuario administrador…
Como usuario restrito ele nao funciona…
:cry:

Mas vlw ^^

Dá uma lida no help do shutdown. Vai te ajudar.

Olhe o help do runas

Consegui resolver o problema… mas não usando o shutdown q tem no path…

Ué, então poste a solução. =)

eu utilizei outro arquivo de shutdown.exe
Ai o comando do shutdown ficou:

Runtime.getRuntime().exec("cmd /c shutdown -u -t 0");

Soh mudou msm o arquivo de shutdown utilizado… parece q o do windows mesmo ele n permite que o SO seja desligado pelo comando de shutdown…

Opa opa… o comando foi

Runtime.getRuntime().exec(System.getProperty("user.dir") + "\\xml\\shutdown\\shutdown.exe -u -f -t 0");