在asp.net mvc中托管类似powershell的cli以执行维护
我需要我们的asp.net mvc应用程序的CLI来执行维护任务和一些状态任务 我认为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容易得多): (
如何在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中的扇入远程处理: