.NET-код для размещения и использования механизма PowerShell очень прост:
private void ExecutePowerShellCommand(string command)
{
using (var invoker = new RunspaceInvoke())
{
Collection<PSObject> results = invoker.Invoke(command);
foreach (var result in results)
{
_listBox.Items.Add(result);
}
}
}
Хитрость в том, чтобы сконфигурировать пространство выполнения PowerShell для ограничения доступных команд. Вы, вероятно, не хотите, чтобы кто-то удалял файлы из какого-либо старого каталога, выключал компьютер или форматировал диск (у него был бы доступ к EXE-файлам по пути). Изучите Ограниченные пространства выполнения , чтобы ограничить то, что может быть выполнено с помощью этого механизма. Вы также можете ограничить доступные языковые функции.