从模块导入特定cmdlet以在Runspacepool中使用

时间:2015-08-10 16:04:06

标签: c# powershell runspace

在C#中,InitialSessionState类提供了一种导入特定模块的方法,并使用“ImportPSModule”方法使其可用于runspacepool中的所有运行空间。 (但这会导入正在导入的模块中的所有cmdlet)

要从模块导入特定cmdlet,“Import-Module”命令接受参数“Cmdlet”,使用该参数我们只能导入该模块中的特定cmdltes。 如何在Runspacepool中实现此行为(仅从模块导入特定cmdlet)

1 个答案:

答案 0 :(得分:2)

您可以向InitialSessionState实例的Commands属性添加命令(此处使用Cmdlet类型命令作为示例):

InitialSessionState iss = InitialSessionState.CreateDefault();
SessionStateCmdletEntry resolveCmdlet = new SessionStateCmdletEntry("Resolve-DnsName", 
    typeof(Microsoft.DnsClient.Commands.ResolveDnsName), 
    "dnslookup.dll-Help.xml");
iss.Commands.Add(resolveCmdlet);
Runspace rs = RunspaceFactory.CreateRunspace(iss);