Оптимизация импорта модуля PowerShell

В настоящее время у меня есть сценарий PowerShell, который используется для сложного автоматизированного управления почтовыми ящиками Exchange. Иногда скрипт будет запускать 20-40 экземпляров одновременно. Сам сценарий не требует много времени для запуска; однако для сценария требуется модуль ActiveDirectory, модуль ServerManager и оснастка Exchange 2010 PS. Загрузка этих модулей и оснасток занимает несколько секунд, если запущен только 1 экземпляр скрипта. Это, конечно, усугубляется, когда выполняется несколько экземпляров скрипта. Это приводит к чрезвычайно высокому использованию ресурсов, поскольку он пытается загрузить эти модули 20-40 раз одновременно.

Вопрос заключается в следующем:

Есть ли способ сохранить 3 требуемых модуля загруженными в память, так сказать, или есть какой-то другой способ оптимизировать это, о котором может подумать любой, который не потребует загрузки эти 3 модуля каждый раз, когда вызывается новый экземпляр сценария PowerShell?

Вот упрощенные основы сценария (без: тел функций, операторов if, обработки ошибок) - Сообщите мне, если вам нужно добавить какой-либо раздел

CODE SNIPPIT:

param($ARG1,$ARG2,$ARG3) # Grab arguments from command line

# Load Modules
Import-Module ActiveDirectory
Import-Module ServerManager
Add-pssnapin Microsoft.Exchange.Management.PowerShell.E2010

# Pass Arguments to Variables
$username = $ARG1

# Create Functions
function checkValidADUser {}
function checkOldMailbox {}
function chooseMailstore {}
function createMailbox {}

# Run Functions
checkValidADUser $username
checkOldMailbox $username
chooseMailstore $username
createMailbox $username $mailstore
5
задан Eli 7 February 2012 в 04:29
поделиться