2

I need CLI for our asp.net mvc application to perform maintenance tasks and some status tasks.

I think powershell is designed to provide CLI. But i do not know anything about it other than name.

How can i host powershell in asp.net mvc running in iis to provide CLI for custom tasks?

4

2 回答 2

2

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

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)。查看受限运行空间以限制可以通过此机制执行的内容。您还可以限制可用的语言功能。

于 2010-08-22T21:38:34.527 回答
0

我以前从未在 PowerShell 中执行过 CLI,但我之前在 .NET 应用程序中执行过一些 PowerShell 的优点。这可能会有所帮助。

本 Channel9 集包含在 .NET 应用程序中运行 PowerShell 2.0 命令的相关详细信息(比 1.0 容易得多):http ://channel9.msdn.com/posts/bruceky/How-to-Embedding-PowerShell-Within- aC-应用程序/

(请注意,该过程不包括System.Diagnostics.Process操作过程的标准输入和输出流时调用命令。我在这条路上所做的任何尝试都遇到了挫折和失败。)

于 2010-08-22T20:50:28.357 回答