Импорт определенных командлетов из модулей для использования в Runspacepool

В C# класс InitialSessionState предоставляет способ импортировать определенные модули и сделать их доступными для всех пространств выполнения в пуле пространств выполнения с помощью метода ImportPSModule. (Но это импортирует все командлеты в импортируемом модуле)

Чтобы импортировать определенные командлеты из модуля, команда «Import-Module» принимает параметр «Командлет», с помощью которого мы можем импортировать только определенные командлеты из этого модуля. Как добиться такого поведения (импорт только определенных командлетов из модуля) в Runspacepool


person Praveen Kumar    schedule 10.08.2015    source источник
comment
Зачем это нужно? Если это необходимо по соображениям производительности/ресурсов, то я бы не стал заморачиваться, я не думаю, что есть существенная разница, если она есть.   -  person Roman Kuzmin    schedule 10.08.2015


Ответы (1)


Вы можете добавить команды в свойство Commands вашего экземпляра InitialSessionState (здесь в качестве примера используется команда типа 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);
person Mathias R. Jessen    schedule 10.08.2015