Saltar al contenido

Ejecución de comandos de PowerShell en el programa Java

El paso a paso o código que encontrarás en este artículo es la resolución más eficiente y efectiva que hallamos a esta duda o dilema.

Solución:

Debería escribir un programa java como este, aquí hay una muestra basada en el Blog de tecnología de Nirman, la idea básica es ejecutar el comando que llama al proceso de PowerShell de esta manera:

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;

public class PowerShellCommand 

 public static void main(String[] args) throws IOException 

  //String command = "powershell.exe  your command";
  //Getting the version
  String command = "powershell.exe  $PSVersionTable.PSVersion";
  // Executing the command
  Process powerShellProcess = Runtime.getRuntime().exec(command);
  // Getting the results
  powerShellProcess.getOutputStream().close();
  String line;
  System.out.println("Standard Output:");
  BufferedReader stdout = new BufferedReader(new InputStreamReader(
    powerShellProcess.getInputStream()));
  while ((line = stdout.readLine()) != null) 
   System.out.println(line);
  
  stdout.close();
  System.out.println("Standard Error:");
  BufferedReader stderr = new BufferedReader(new InputStreamReader(
    powerShellProcess.getErrorStream()));
  while ((line = stderr.readLine()) != null) 
   System.out.println(line);
  
  stderr.close();
  System.out.println("Done");

 


Para ejecutar un script de PowerShell

String command = "powershell.exe  "C:\Pathtofile\script.ps" ";

No hay necesidad de reinventar la rueda. Ahora solo puedes usar jPowerShell

String command = "Get-ItemProperty " +
                "HKLM:\Software\Wow6432Node\Microsoft\Windows\CurrentVersion\Uninstall\* " +
                "| Select-Object DisplayName, DisplayVersion, Publisher, InstallDate " +
                "| Format-Table –AutoSize";

System.out.println(PowerShell.executeSingleCommand(command).getCommandOutput());

puede intentar llamar a powershell.exe con algunos comandos como:

String[] commandList = "powershell.exe", "-Command", "dir";  

        ProcessBuilder pb = new ProcessBuilder(commandList);  

        Process p = pb.start();  

¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)



Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *