Взаимодействие с 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
, это не работает!