Inicio › Foros › Lenguajes de programación, desarrollo, código fuente › .Net C# VB y PowerShell › Ejecutar comando PowerShell desde .Net C# › Respuesta a: Ejecutar comando PowerShell desde .Net C#
06/26/2020 a las 14:02
#5195
alonsojpd
Superadministrador
Puedes usar el siguiente código para ejecutar un comando PowerShell desde Visual Studio .Net C# y mostrar el resultado de la ejecución por consola:
C#
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 |
//Creamos un espacio de ejecución para capturar el resultado del comando Runspace espacioEjecucion = RunspaceFactory.CreateRunspace(); //Lo iniciamos espacioEjecucion.Open(); //Creamos el objeto PowerShell PowerShell objPowerShell = PowerShell.Create(); //Al objeto PowerShell le asignamos el espacio de ejecución objPowerShell.Runspace = espacioEjecucion; //Agregamos el comando PowerShell a ejecutar objPowerShell.AddScript(@"Get-NetAdapter | Select Name | Format-Table -HideTableHeaders | Out-String"); //Ejecutamos el comando PowerShell y guardamos su resultado Collection<PSObject> resultadoEjecucion = objPowerShell.Invoke(); //Cerramos el espacio de ejecución espacioEjecucion.Close(); //Recorremos cada línea del resultado para mostrarla por consola StringBuilder stringBuilder = new StringBuilder(); foreach (PSObject lineaResultado in resultadoEjecucion) { Console.WriteLine(lineaResultado.ToString()); } |
Muy importante, tendrás que añadir los using correspondientes al principio:
C#
1 2 3 4 5 6 |
using System; using System.Collections.ObjectModel; using System.Management; using System.Management.Automation; using System.Management.Automation.Runspaces; using System.Text; |