System.Management.Automation.PSArgumentException
У меня проблема с запуском скрипта PowerShell из моего кода C#. Скрипт содержит функции из оснастки PowerShell VMWare.View.Broker
, Я делаю это следующим образом:
PSSnapInException psEx;
RunspaceConfiguration runConfig = RunspaceConfiguration.Create();
runConfig.AddPSSnapIn("VMWare.View.Broker", out psEx);
using (Runspace runspace = RunspaceFactory.CreateRunspace(runConfig))
{
runspace.Open();
using (Pipeline pipeline = runspace.CreatePipeline())
{
string scriptContent = ReadScriptFromFile(scriptPath);
if (!String.IsNullOrEmpty(scriptContent))
{
pipeline.Commands.AddScript(scriptContent);
var results = pipeline.Invoke();
runspace.Close();
foreach (var result in results)
{
Console.WriteLine(result);
if(!String.IsNullOrEmpty(result.ToString()))
scriptResult += result+"_";
}
}
}
}
Когда я запускаю свою программу с целевой платформой x64, она работает нормально. Но когда я пытаюсь выполнить свою программу с x86, я получаю следующее исключение (мне нужно запустить программу с x86 из-за других зависимостей):
System.Management.Automation.PSArgumentException: The Windows PowerShell snap-in
'VMWare.View.Broker' is not installed on this machine.
at System.Management.Automation.PSSnapInReader.ReadOne(RegistryKey mshSnapInRoot, String mshsnapinId)
1 ответ
Оснастка Vmware является 64-битной, а не 32-битной. Ответ в сообщении об ошибке. Вы можете попытаться найти 32-битную оснастку Vmware и установить ее.