【发布时间】:2016-01-04 14:52:30
【问题描述】:
我正在开发一个 asp.net mvc Web 应用程序,我有以下代码,它定义了一个服务器列表上的循环,并在我的 asp.net mvc 中为每个服务器执行 PowerCli 命令:-
//Start Loop
var shell = PowerShell.Create();
var shell2 = PowerShell.Create();
var shell3 = PowerShell.Create();
string PsCmd = "add-pssnapin VMware.VimAutomation.Core; $vCenterServer = '" + vCenterName + "';$vCenterAdmin = '" + vCenterUsername + "' ;$vCenterPassword = '" + vCenterPassword + "';" + System.Environment.NewLine;
PsCmd = PsCmd + "$VIServer = Connect-VIServer -Server $vCenterServer -User $vCenterAdmin -Password $vCenterPassword;" + System.Environment.NewLine;
PsCmd = PsCmd + "Get-VMHost " + System.Environment.NewLine;
string PsCmd2 = "add-pssnapin VMware.VimAutomation.Core; $vCenterServer = '" + vCenterName + "';$vCenterAdmin = '" + vCenterUsername + "' ;$vCenterPassword = '" + vCenterPassword + "';" + System.Environment.NewLine;
PsCmd2 = PsCmd2 + "$VIServer = Connect-VIServer -Server $vCenterServer -User $vCenterAdmin -Password $vCenterPassword;" + System.Environment.NewLine;
PsCmd2 = PsCmd2 + " Get-VMHost " + vCenterName + "| Get-VMHostNetworkAdapter -VMKernel" + System.Environment.NewLine;
shell.Commands.AddScript(PsCmd);
shell2.Commands.AddScript(PsCmd2);
dynamic results = shell.Invoke();
dynamic results2 = shell2.Invoke();
// end of loop
但我注意到有时 shell 命令会挂起并且执行永远不会结束,所以我可以定义一个超时行为,以便在 5 分钟后如果没有返回结果则跳过命令...
【问题讨论】:
-
为什么投反对票!!!即使没有解释!我不明白什么时候有人在没有说明原因的情况下投反对票!!!
-
我真的更想知道为什么我被否决了,而不是得到任何答案:(
标签: c# asp.net asp.net-mvc powershell powercli