我有以下配置:
现在,我的asp.net MVC Web应用程序有了一个执行一些PowerShell & PowerCli命令的方法,下面是脚本的示例:
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;
// PowerCLI script to the the hypervisor network info
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(); // execute the first PowerCLI script
dynamic results2 = shell2.Invoke(); // execute the second PowerCLI script
// the PowerCLI executed successfully
if (results != null && results.Count > 0 && results[0].BaseObject != null)我所面对的问题如下:
以下是我在IIS-8上的设置:
那么,有谁能解释IIS-8为什么不允许托管的asp.net web应用程序运行powershell脚本呢?
发布于 2015-10-13 05:28:04
您是否首先尝试在WS2012r2服务器PowerShell控制台中执行您的PowerShell/PowerCli脚本?
如果是这样,您是否使用32位或64位控制台?每一个都试一试?
如果是这样的话,您是否认为项目的目标平台匹配64位或32位(脚本所在的平台在控制台中工作)。
发布于 2015-10-14 13:09:30
我想知道PowerCLI是否安装在生产服务器上。如果没有,Add-PSSnapin vmware.vimAutomation.core当然会失败。
创建一个空文件或电子邮件的琐碎string PsCmd可能有助于验证您的预感,即新的IIS和PS没有发挥作用。(或者至少帮助将M放在mcve中以回答一个更整洁的问题)。
执行策略和用户帐户控制似乎不太可能破坏这一点,但我还没有进行测试。特别是如果您不想处理代码中的错误,那么让一个测试vm与生产相匹配可能是值得的。
https://stackoverflow.com/questions/33092495
复制相似问题