0

我需要从创建的 powershell 主机捕获 PowerShell 函数调用并覆盖它。怎么可能?

InitialSessionState iss = InitialSessionState.CreateDefault();
iss.LanguageMode = PSLanguageMode.FullLanguage;
iss.ImportPSModule(new string[] { "TestModule.psm1" });
Runspace rs = RunspaceFactory.CreateRunspace(iss);
rs.Open();
Pipeline pl = rs.CreatePipeline();
pl.Commands.AddScript("TestFunction testParam");
var res = pl.Invoke();
rs.Close();

我的任务是动态覆盖TestFunction,女巫位于TestModule,我该怎么做?

4

1 回答 1

0

您可以定义一个名为“TestFunction”的 cmdlet(在您的 c# 代码中)并将其添加到运行空间配置中,如下所示:

 rs.RunspaceConfiguration.Cmdlets.Append(New CmdletConfigurationEntry("testfunction", GetType(TestFuncitonCmdlet), Nothing))
于 2012-07-19T15:53:25.863 回答