2010-08-22 38 views
2

我需要CLI来为我们的asp.net mvc应用程序执行维护任务和一些状态任务。在asp.net mvc中托管powershell像cli来执行维护

我认为powershell旨在提供CLI。但除了名字我什么都不知道。

如何在iis中运行在asp.net mvc中的powershell来为自定义任务提供CLI?

回答

0

我以前从未在PowerShell中完成过CLI,但是之前我已经在.NET应用程序中执行过一些PowerShell。这可能有些帮助。

这Channel9的情节包含相关细节,在.NET应用程序运行的PowerShell 2.0命令(这是比1.0更容易很多):http://channel9.msdn.com/posts/bruceky/How-to-Embedding-PowerShell-Within-a-C-Application/

(请注意,工艺的确包括使用System.Diagnostics.Process调用。在操纵进程的标准输入和输出流的任何尝试我做了这条道路的命令遭到了挫折和失败)

2

的.NET代码托管和使用PowerShell引擎是非常简单的:

private void ExecutePowerShellCommand(string command) 
{ 
    using (var invoker = new RunspaceInvoke()) 
    { 
     Collection<PSObject> results = invoker.Invoke(command); 
     foreach (var result in results) 
     { 
      _listBox.Items.Add(result); 
     }     
    } 
} 

诀窍在于配置PowerShell运行空间以限制可用命令。您可能不希望允许某人从任何旧目录中删除文件,关闭计算机或格式化驱动器(他们可以访问路径中的EXE)。查看Constrained Runspaces以限制可通过此机制执行的操作。您还可以限制哪些语言功能可用。

+0

这可以调用powershell命令,但我想从PowerShell中调用我的应用程序。我正在寻找可以通过命令行 – mamu 2010-08-23 04:47:49

+0

在我的应用程序中调用操作的信息,那么您应该考虑Powershell 2.0中的粉丝远程处理:http://blogs.msdn.com/b/powershell/archive/ 2009/04/10 /配置-的powershell换远程处理部分-2-扇in.aspx – 2010-08-23 05:38:19