Saltar al contenido

Comando Powershell en C#

Verificamos exhaustivamente cada artículo en nuestra página web con la meta de enseñarte siempre la información con la mayor veracidad y actual.

Solución:

En la línea del enfoque de Keith

using System;
using System.Management.Automation;

namespace ConsoleApplication1

    class Program
    
        static void Main(string[] args)
         Foreach $_.Name
            ";

            var powerShell = PowerShell.Create();
            powerShell.AddScript(script);

            foreach (var className in powerShell.Invoke())
            
                Console.WriteLine(className);
            
        
    

No estoy seguro de por qué mencionó PowerShell; puede hacer esto en C# puro y WMI (el System.Management espacio de nombres, eso es).

Para obtener una lista de todas las clases de WMI, utilice el SELECT * FROM Meta_Class consulta:

using System.Management;
...

try

    EnumerationOptions options = new EnumerationOptions();
    options.ReturnImmediately = true;
    options.Rewindable = false;

    ManagementObjectSearcher searcher =
        new ManagementObjectSearcher("root\cimv2", "SELECT * FROM Meta_Class", options);

    ManagementObjectCollection classes = searcher.Get();

    foreach (ManagementClass cls in classes)
    
        Console.WriteLine(cls.ClassPath.ClassName);
    

catch (ManagementException exception)

    Console.WriteLine(exception.Message);

Solo tenga en cuenta que hay una herramienta disponible que le permite crear, ejecutar y guardar secuencias de comandos WMI escritas en PowerShell, la herramienta PowerShell Scriptomatic, disponible para descargar desde el sitio de Microsoft TechNet.

Con esta herramienta, puede explorar todas las clases de WMI dentro de rootCIMV2 o cualquier otro espacio de nombres de WMI.

|Imagen de la herramienta PowerShell Scriptomatic

No se te olvide comunicar esta noticia si te valió la pena.

¡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 *