PowerShell-Runspace에서 모듈을 가져 오는 방법


C #에서 cmdlet을 만들려고합니다. 코드는 다음과 같습니다.

[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);
        }
    }
}

하지만 PowerShell에서이 CmdLet을 실행하려고하면 다음 오류가 발생합니다. Import-Module이라는 용어는 cmdlet의 이름으로 인식되지 않습니다 . PowerShell의 동일한 명령으로이 오류가 발생하지 않습니다. 대신 'Get-Command'를 실행하면 'Invoke-Module'이 CmdLet으로 나열되는 것을 볼 수 있습니다.

Runspace에서 'Import-Module'을 수행하는 방법이 있나요?

Thanks!

13
задан Absolom 7 June 2011 в 13:41
поделиться