【发布时间】:2016-03-22 16:53:39
【问题描述】:
我需要从我的 asp.net MVC Web 应用程序中执行一个 powershell 脚本。我的要求是动态创建网站集。我有它的脚本,它工作得很好。没有要传递给脚本的参数。我一直在使用的代码如下所示:
RunspaceConfiguration runspaceConfiguration = RunspaceConfiguration.Create();
Runspace runspace = RunspaceFactory.CreateRunspace(runspaceConfiguration);
runspace.Open();
RunspaceInvoke scriptInvoker = new RunspaceInvoke(runspace);
Pipeline pipeline = runspace.CreatePipeline();
//Here's how you add a new script with arguments
Command myCommand = new Command(scriptfiellocation);
pipeline.Commands.Add(myCommand);
pipeline.Commands.Add("Out-String");
// Execute PowerShell script
var result = pipeline.Invoke();
在执行代码时,当我检查变量结果的计数时,它给出的计数为 1。但是在检查我的网站时,没有创建任何网站集。我无法确定哪里出错了,因为没有运行时错误,并且 Invoke 命令似乎也运行正常。
谁能告诉我我可能会在哪里失控?考虑到 PowerShell 脚本在通过管理 shell 运行时可以完美运行。
【问题讨论】:
-
可能是权限问题。运行站点的帐户是否具有所需的权限?在 Invoke 操作之后检查管道的状态。
-
操作结束后,管道状态显示为 Completed。是的,该帐户也具有所需的权限。关于还有什么可能导致问题的任何想法?
标签: c# asp.net-mvc powershell scripting