首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何配置IIS-8及其应用程序池以在托管的Asp.net MVC中执行PowerShell/PowerCli脚本

如何配置IIS-8及其应用程序池以在托管的Asp.net MVC中执行PowerShell/PowerCli脚本
EN

Stack Overflow用户
提问于 2015-10-13 00:55:14
回答 2查看 707关注 0票数 0

我有以下配置:

  • Windows 2012 R2。
  • IIS-8
  • IIS-8下托管的ASP.NET MVC-5 web应用程序.

现在,我的asp.net MVC Web应用程序有了一个执行一些PowerShell & PowerCli命令的方法,下面是脚本的示例:

代码语言:javascript
复制
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)

我所面对的问题如下:

  1. 当我将包含上述方法的asp.net MVC代码部署到IIS-7 + windows服务器2008 R2上时,一切运行良好,脚本将返回结果。
  2. 但是现在,在我们的生产服务器上,我们有IIS-8 + Windows 2012 r2,而上面的方法不起作用,powershell脚本返回空.

以下是我在IIS-8上的设置:

  1. 我为DefaultAppPool定义了一个Domitian用户,并将这个域用户添加到主机服务器上的本地管理组中。
  2. 我还为web应用程序启用匿名身份验证,并将其定义为“应用程序池标识”。

那么,有谁能解释IIS-8为什么不允许托管的asp.net web应用程序运行powershell脚本呢?

EN

回答 2

Stack Overflow用户

发布于 2015-10-13 05:28:04

您是否首先尝试在WS2012r2服务器PowerShell控制台中执行您的PowerShell/PowerCli脚本?

如果是这样,您是否使用32位或64位控制台?每一个都试一试?

如果是这样的话,您是否认为项目的目标平台匹配64位或32位(脚本所在的平台在控制台中工作)。

票数 1
EN

Stack Overflow用户

发布于 2015-10-14 13:09:30

我想知道PowerCLI是否安装在生产服务器上。如果没有,Add-PSSnapin vmware.vimAutomation.core当然会失败。

创建一个空文件或电子邮件的琐碎string PsCmd可能有助于验证您的预感,即新的IIS和PS没有发挥作用。(或者至少帮助将M放在mcve中以回答一个更整洁的问题)。

执行策略和用户帐户控制似乎不太可能破坏这一点,但我还没有进行测试。特别是如果您不想处理代码中的错误,那么让一个测试vm与生产相匹配可能是值得的。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/33092495

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档