Взаимодействие с Get-WmiObject через ядро ​​.NET

Мне нужно получить информацию о системе. Я могу получить его из Get-WmiObject с помощью Powershell. Но мне нужно собрать его с помощью приложения.NET core.

Я могу выполнять некоторые базовые команды, например Get-Command или Get-Process.

Когда я пытаюсь выполнить Get-WmiObject, у меня появляется эта ошибка

Термин "Get-WmiObject" не распознается как имя командлета, функции, файла сценария или работающей программы. Проверьте написание имени или, если был включен путь, проверьте правильность пути и повторите попытку.

Та же проблема с этой командой с использованием (Get-CIMInstance CIM_ComputerSystem).

Термин "Get-CIMInstance" не распознается как имя командлета, функции, файла сценария или работающей программы. Проверьте написание имени или, если был включен путь, проверьте правильность пути и повторите попытку.

Знаете ли вы обходной путь для выполнения Get-CIMInstance или Get-WmiObjet с ядром dotnet с использованием PowerShell?

Обновить

private PSDataCollection<PSObject> InvokeScript(string script)
{

    using (PowerShell ps = PowerShell.Create())
    {
        Runspace runspace = RunspaceFactory.CreateRunspace();
        runspace.Open();
        ps.Runspace = runspace;

        ps.AddScript(script);

        ps.Streams.Error.DataAdded += Error_DataAdded;

        PSDataCollection<PSObject> outputCollection = new PSDataCollection<PSObject>();
        outputCollection.DataAdded += OutputCollection_DataAdded;

        var result = ps.BeginInvoke<PSObject, PSObject>(null, outputCollection);

        foreach (var item in ps.Streams.Error)
        {
            _logger.LogError(item.ToString());
        }

        _logger.LogInformation("Execution has stopped. Execution state: " + ps.InvocationStateInfo.State);

        return outputCollection;
    }
}

Когда я вызываю скрипт Get-Command, в результате я нашел Get-WmiObject. Но когда я вызываюGet-WmiObject, это не работает!

0 ответов

Другие вопросы по тегам