我为以下Powershell命令编写了相应的C#代码(在Powershell命令行上正常工作):
Get-VMNetworkAdapter -VM $vm
这是C#代码:
PSObject vmFound;
// initizalize vmFound from another PowerShell cdmlet in C#
PowerShell psGetNic = PowerShell.Create();
psGetNic.AddCommand("Get-VMNetworkAdapter");
psGetNic.AddParameter("VM", vmFound);
我尝试了以下作为第二个参数 - 没有任何作用:
psGetNic.AddParameter("VM", vmFound);
psGetNic.AddParameter("VM", (object)vmFound);
psGetNic.AddParameter("VM", vmFound.ImmediateBaseObject);
psGetNic.AddParameter("VM", vmFound.BaseObject);
运行命令psGetNic.Invoke()
后,我没有得到任何返回值。换句话说,如何将PSObject
转换为object
并将其作为参数传递。