7

关于如何从 C# 代码执行 powershell 脚本有很多问题和答案,但我想知道运行空间/管道究竟是如何执行.ps1 文件的执行的。

我要问的上下文是这样的:我已经为建立一个新网站的 powershell 脚本构建了一个基本的 asp.net 前端。它在 IIS 中创建站点并设置 wwwroot 文件夹、日志文件夹、AD 用户以及它需要的所有其他内容。当我在 powershell 中以管理员身份运行它时,它可以完美运行。但是,当我通过我的 C# 管道运行它时,它会以参数绑定异常中断管道。

我不是在回答这个特定问题,我只是在寻找有关管道如何执行我的文件的解释,以便我可以更好地了解到底发生了什么。

4

2 回答 2

4

这不是对运行空间如何工作的完整解释,但我已经写了一篇涵盖主要部分的博客文章。

还有一个关于 powershell 如何工作的 msdn 页面的片段:

Powershell 运行时作为运行空间调用,默认情况下,将同步处理命令并将处理结果传递给主机应用程序,以便它们可以返回给用户。

于 2013-09-13T01:20:25.780 回答
1

您是否尝试过使用ILSpy或在“类视图”中打开该类以查看该类的代码?我一直这样做是为了看看微软如何实现一个特定的类。如果它是一个简短的答案,我会在此处粘贴代码,但 System.Management.Automation.Runspaces 或 Microsoft.Powershell 命名空间有很多内容。自己看一下,你就能确切地看到微软是如何实现 Powershell 脚本的执行的。

希望这可以帮助。

于 2013-08-05T05:04:08.220 回答