C#运行空间/管道如何执行powershell脚本

本文关键字:执行 powershell 脚本 何执行 空间 运行 管道 | 更新日期: 2023-09-27 18:25:55

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

我询问的背景是:我已经为powershell脚本构建了一个基本的asp.net前端,该脚本可以建立一个新网站。它在IIS中创建网站,并设置wwwroot文件夹、日志文件夹、AD用户以及所需的所有其他内容。当我在powershell中以管理员身份运行它时,它工作得很好。然而,当我通过C#管道运行它时,它会使用参数绑定异常中断管道。

我不想知道这个特定问题的答案,我只是想了解管道是如何执行我的文件的,这样我就可以更好地了解到底发生了什么。

C#运行空间/管道如何执行powershell脚本

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

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

Powershell运行时作为运行空间调用,同步处理命令并传递处理结果以便将它们返回给用户。

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

希望这能有所帮助。