在asp.net mvc中托管类似powershell的cli以执行维护

在asp.net mvc中托管类似powershell的cli以执行维护,asp.net,.net,asp.net-mvc,powershell,powershell-hosting,Asp.net,.net,Asp.net Mvc,Powershell,Powershell Hosting,我需要我们的asp.net mvc应用程序的CLI来执行维护任务和一些状态任务 我认为powershell旨在提供CLI。但除了名字我什么都不知道 如何在iis中运行的asp.net mvc中托管powershell以提供自定义任务的CLI?我以前从未在powershell中执行过CLI,但我以前在.net应用程序中执行过一些powershell操作。这里有一些可能有用的东西 本Channel9集包含在.NET应用程序中运行PowerShell 2.0命令的相关详细信息(比1.0容易得多): (

我需要我们的asp.net mvc应用程序的CLI来执行维护任务和一些状态任务

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


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

我以前从未在powershell中执行过CLI,但我以前在.net应用程序中执行过一些powershell操作。这里有一些可能有用的东西

本Channel9集包含在.NET应用程序中运行PowerShell 2.0命令的相关详细信息(比1.0容易得多):


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

托管和使用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);
        }                
    }
}
private void executepowershell命令(string命令)
{
使用(var invoker=new RunspaceInvoke())
{
收集结果=invoker.Invoke(命令);
foreach(结果中的var结果)
{
_listBox.Items.Add(结果);
}                
}
}

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

这可以调用powershell命令,但我想从powershell调用我的应用程序。我正在寻找允许我通过命令lineAh调用应用程序中的操作的信息,然后您应该查看Powershell 2.0中的扇入远程处理: