我在這裏做錯了什麼?我有以下實際上通過PowerShell調用PowerCLI命令,然後通過c#將數據返回到asp.net。即使命令看起來正確,我也沒有收到任何返回的數據。有任何想法嗎?運行c#,powershell和asp.net下面的代碼時沒有得到任何數據
public List<string> ReturnVMsToStrings(string VCENTER_NAME, PSCredential credential)
{
InitialSessionState PS_ISS;
VI_SERVER_NAME = VCENTER_NAME;
string[] IMPORT_MODULES = { "VMWare.PowerCLI", "NimblePowerShellToolkit" };
PS_ISS = InitialSessionState.CreateDefault();
PS_ISS.ImportPSModule(IMPORT_MODULES);
PowerShell PSINSTANCE = PowerShell.Create(PS_ISS);
Collection<PSObject> result;
PSINSTANCE.Commands.AddCommand("Connect-VIServer");
PSINSTANCE.Commands.AddParameter("Server", VI_SERVER_NAME);
PSINSTANCE.Commands.AddParameter("Credential", credential);
PSINSTANCE.Invoke();
// Get the VMs
PSINSTANCE.Commands.AddCommand("Get-VM");
result = PSINSTANCE.Invoke();
List<string> sorted_list = new List<string>();
if (result.Count > 0)
{
foreach (PSObject obj in result)
{
sorted_list.Add(obj.Properties["Name"].Value.ToString());
}
sorted_list.Sort();
}
else
{
Exception e = new Exception("Result is empty");
throw e;
}
return sorted_list;
}
結果中沒有數據。從PowerShell運行此命令會從我的vCenter返回一堆對象。這真的很奇怪,沒有真正的原因,爲什麼這不起作用,所以任何指針都會有幫助。
'result'是否包含'PSObject'還是它是[vmware inventory class?](https://blogs.vmware.com/PowerCLI/2016/04/powercli-best-practice-correct-use-strong- typing.html) – brendan62269
結果包含集合 –
您是否擁有VC上的有效證書?也就是說,如果您從powershell/cli嘗試相同的命令,您是否會收到有關無效證書的警告? – brendan62269