Импорт-модуль powershell из C # всегда дает сбой - PullRequest
0 голосов
/ 21 ноября 2018

Я использую Dot Net версии 4.5 и SCVMM 2012 R2.при попытке запустить приведенный ниже код

InitialSessionState initial = InitialSessionState.CreateDefault();

initial.ImportPSModule(new string[] { "C:\\Program Files\\Microsoft System Center 2012 R2\\Virtual Machine Manager\\bin\\psModules\\virtualmachinemanager\\virtualmachinemanager.psd1" });
Runspace runspace = RunspaceFactory.CreateRunspace(initial);
runspace.Open();
PowerShell ps = PowerShell.Create();
ps.Runspace = runspace;
ps.Commands.AddCommand("Get-SCVMMserver");
ps.AddParameter("ComputerName", "some.domain.com");

foreach (PSObject result in ps.Invoke())
{                   
  Console.WriteLine(result.Members["IsSupported"].Value);
}

Всегда происходит сбой при следующей ошибке

При загрузке файла данных расширенного типа произошла следующая ошибка: Microsoft.PowerShell, C: \Программные файлы \ Microsoft System Center 2012> R2 \ Диспетчер виртуальных машин \ bin \ virtualmachinemanager.types.ps1xml (5): Ошибка> в типе "Microsoft.SystemCenter.VirtualMachineManager.VMCheckpoint":> Исключение: Не удается преобразовать> "Microsoft.SystemCenter.VirtualMachineManager.Cmdlets.VMCheckpointConverter "значение типа" System.String "для типа" System.Type ".Microsoft.PowerShell, C: \ Program Files \ Microsoft System Center 2012> R2 \ Диспетчер виртуальных машин \ bin \ virtualmachinemanager.types.ps1xml (11):> Ошибка типа «Microsoft.SystemCenter.VirtualMachineManager.Task»:> Исключение: невозможнопреобразовать значение> «Microsoft.SystemCenter.VirtualMachineManager.Cmdlets.TaskConverter» типа «System.String» в тип «System.Type».

, пожалуйста, помогите мне с этой ошибкой.Спасибо

1 Ответ

0 голосов
/ 21 ноября 2018

Сообщение об ошибке гласит Cannot convert the >"Microsoft.SystemCenter.VirtualMachineManager.Cmdlets.TaskConverter" value >of type "System.String" to type "System.Type". Просто измените строку 2 с string[] на new[], и я думаю, что все должно быть в порядке.

Как это

initial.ImportPSModule(new[] { "C:\\Program Files\\Microsoft System Center 2012 R2\\Virtual Machine Manager\\bin\\psModules\\virtualmachinemanager\\virtualmachinemanager.psd1" });
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...