如何编写自定义PowerShell主机

类似于nuget

希望在钻研调试器之前寻找任何入门材料

MSDN有一节致力于在PowerShell SDK文档中编写PowerShell主机,这是一个很好的起点。

除此之外, 搜索返回以下内容:

  1. http://powershellstation.com/2009/10/12/writing-your-own-powershell-hosting-app-part-1-introduction/
  2. http://dougfinke.com/blog/index.php/2009/09/02/how-to-host-powershell-in-a-wpf-application/

没有很棒的文档。 我通过实验和例子了解了我所知道的大部分内容。 和反思。 不是个人类型,逆向工程类型。

Joel Bennett的PoshConsole可能是我发现的自定义主机的最佳OSS示例。 StudioShell代码库还包含一个基于winforms的简单交互式主机。

托管可以相对简单,具体取决于您正在寻找的交互级别。 如果您只想运行一些脚本文件,代码就像这样简单:

using( var runspace = RunspaceFactory.Create() ) { runspace.Open(); using( var pipeline = runspace.CreatePipeline( "./myscript.ps1" ) ) { Collection results = pipeline.Invoke(); // ... process the results of running myscript.ps1 } } 

如果您需要任何类型的交互性,例如从脚本中提示用户,那么您将非常有限地使用koolaid并实现大部分PSHost,PSHostUserInterface和PSHostRawUserInterface合同。 再一次,我会先查看现有的生活实例,然后再自行潜入兔子洞。

我有一系列专门针对此的博客文章。

这是第一个。

我还实现了一个调试器。 我很乐意回答你可能有的问题。 在我的博客上联系信息。

此外, 这是一个实际使用API​​实现调试器的项目……这是我发现任何已发布代码的唯一地方。

你可以在博客中找到我自己编写的PowerShell,它可以解释脚本而不显示任何窗口。

来自Leporelo的博客

它实际上是您需要的少数第一行以及PowerShell SDK的快捷方式。

shell响应我自己的需要 (抱歉用法语)