我试图用Get-VM
Cmdlet的从C#叫做Hyper-V主机上。
显然,根据PowerShell的模块Hyper-V
必须首先导入。 然而,导入失败, -显然是因为该模块仅在PowerShell的3.0的支持(至少这是我从图文章 )。 通过System.Management.Automation使用PowerShell的似乎是2.0版本,虽然。
InitialSessionState iss = InitialSessionState.CreateDefault();
iss.ImportPSModule(new string[] { "Hyper-V" });
Runspace runSpace = RunspaceFactory.CreateRunspace(iss);
runSpace.Open();
foreach (var err in (ArrayList)runSpace
.SessionStateProxy.PSVariable.GetValue("Error"))
Console.WriteLine(err.ToString());
runSpace.Close();
回报
在 'C:\ WINDOWS \ SYSTEM32 \ WindowsPowerShell \ V1.0 \模块\的Hyper-V \超V.psd1' 模块不能导入,因为它的清单包含一个或多个成员,是无效的。 有效的清单成员是( 'ModuleToProcess',...)。 删除无效的(“HelpInfoUri”)成员,然后尝试再次导入模块。
有没有在C#中使用PowerShell的特定版本的方法吗?