我需要asp.net mvc应用程序的CLI来执行维护任务和某些状态任务。
我认为powershell旨在提供CLI。但是除了名字我什么都不知道。
如何将Powershell托管在iis中运行的asp.net mvc中,以提供自定义任务的CLI?
最佳答案
托管和使用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)。查看Constrained Runspaces以限制可以通过此机制执行的操作。您还可以限制可用的语言功能。
关于asp.net - 在asp.net mvc中托管诸如cli之类的powershell以执行维护,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3543278/