运行 以下代码使用 c#、powershell 和 asp.net 时未获取任何数据
Not getting any data when running the following code with c#, powershell and asp.net
我在这里做错了什么?我有以下内容,它实际上通过 PowerShell 调用 PowerCLI 命令,然后 returns 通过 c# 将数据 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 中的此命令 returns 我的 vCenter 中的一堆对象。这真的很奇怪,没有真正的原因为什么这不起作用,所以任何指针都会有所帮助。
您正在调用 PSINSTANCE.Invoke()
两次,请移除第一个调用并重试。
代码很好。不高兴的是 asp 中传递的变量。网络会话。视图状态来救援。感谢大家花时间回答。
我在这里做错了什么?我有以下内容,它实际上通过 PowerShell 调用 PowerCLI 命令,然后 returns 通过 c# 将数据 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 中的此命令 returns 我的 vCenter 中的一堆对象。这真的很奇怪,没有真正的原因为什么这不起作用,所以任何指针都会有所帮助。
您正在调用 PSINSTANCE.Invoke()
两次,请移除第一个调用并重试。
代码很好。不高兴的是 asp 中传递的变量。网络会话。视图状态来救援。感谢大家花时间回答。