У меня есть эта простая программа, использующая powershell. Это просто подтверждение концепции, я использую тот же код в более крупном приложении. Проблема в том, что значения некоторых свойств в коде ниже не могут быть прочитаны. Чтение свойства Value вызывает исключение GetValueInvocationException.
На самом деле это даже происходит с одним из примеров проектов Microsoft, который поставляется с PowerShell SDK. Почему это так и есть ли решение?
static void Main(string[] args)
{
var powerShell = System.Management.Automation.PowerShell.Create();
var runspace = RunspaceFactory.CreateRunspace();
runspace.Open();
Runspace.DefaultRunspace = runspace;
powerShell.Runspace = runspace;
powerShell.AddScript("Get-Process");
var results = powerShell.Invoke();
foreach (var prop in results.First().Properties)
{
try
{
Console.WriteLine(prop.Name + " : " + prop.Value);
}
catch (Exception e)
{
Console.WriteLine(string.Format("Exception {0} on {1}", e.GetType(), prop.Name));
}
}
Console.ReadKey();
}