gpt4 book ai didi

powershell - 如何从二进制 cmdlet 调用脚本模块 cmdlet?

转载 作者:行者123 更新时间:2023-12-05 07:42:59 24 4
gpt4 key购买 nike

我正在通过继承 PSCmdlet 在 C# 中编写 Powershell cmdlet。这是包含二进制和脚本组件的 powershell 模块的一部分。

我希望能够从我的二进制 cmdlet 中调用脚本模块 cmdlet。

我发现从 PSCmdlet 继承可以让我访问更多 Powershell 的内容,我专门研究了 InvokeCommand.GetCmdlet()InvokeCommand.GetCommand() 但它们似乎都返回 CommandInfo 对象,这些对象似乎没有调用它们的方法。

我是否应该调用 InvokeCommand.InvokeScript() 来调用我的 cmdlet?如果是这样,应该如何使用 CommandInfo 对象来提供帮助?

最佳答案

InvokeScript 可能是您想要的,因为您想要执行脚本。现在,您可能会遇到问题,因为您会更喜欢使用它

InvokeCommand.InvokeScript("Get-MyCmdlet -ParameterName value");

也就是说,您问题的真正答案是您需要一个代表解释器的 PowerShell 对象。

var ps = PowerShell.Create();
ps.AddCommand(InvokeCommand.GetCmdlet("Get-MyCmdlet"));
ps.AddParameter("ParameterName", "value");

var output = ps.Invoke();

解释器使用 CommandInfo(并且 AddCommand 有一个带有 string 的重载,在后台会创建一个)作为它的反射努力解释你想要的任何东西。

关于powershell - 如何从二进制 cmdlet 调用脚本模块 cmdlet?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44015151/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com