Я пытаюсь создать командлет на C #. Код выглядит примерно так:
[Cmdlet(VerbsCommon.Get, "HeapSummary")]
public class Get_HeapSummary : Cmdlet
{
protected override void ProcessRecord()
{
RunspaceConfiguration config = RunspaceConfiguration.Create();
Runspace myRs = RunspaceFactory.CreateRunspace(config);
myRs.Open();
RunspaceInvoke scriptInvoker = new RunspaceInvoke(myRs);
scriptInvoker.Invoke("Set-ExecutionPolicy Unrestricted");
Pipeline pipeline = myRs.CreatePipeline();
pipeline.Commands.Add(@"Import-Module G:\PowerShell\PowerDbg.psm1");
//...
pipeline.Invoke();
Collection<PSObject> psObjects = pipeline.Invoke();
foreach (var psObject in psObjects)
{
WriteObject(psObject);
}
}
}
Но попытка выполнить этот CmdLet в PowerShell дает мне эту ошибку: Термин Import-Module не распознается как имя командлета. Та же команда в PowerShell не дает мне этой ошибки. Если вместо этого я выполню Get-Command, я увижу, что Invoke-Module отображается как CmdLet.
Есть ли способ выполнить «Импорт-модуль» в пространстве выполнения?
Спасибо!