Начиная с PowerShell 3.0, модуль автоматически импортируется при вызове команды из модуля. Это было блестяще со стороны Microsoft; однако для этого требовалось, чтобы модули находились в том месте, где PowerShell ищет модули по умолчанию. Имеет смысл. Вы можете увидеть эти места, выполнив следующую команду:
$env:PSModulePath -split ';'
Есть ли причина, по которой вы не хотите использовать один из путей, сохраненных в указанной выше переменной среды? Тем не менее, я бы оставил ваш код вне пути "C: \ Windows \ System32 ...". Другие варианты лучше: «C: \ Program Files \ PowerShell \ Modules» (AllUsers) и «C: \ Users \ tommymaynard \ Documents \ PowerShell \ Modules» (CurrentUser). В зависимости от версии / ОС PowerShell эти пути могут быть разными. Вам не нужно будет писать команду Import-Module в сценарии $ PROFILE, если вы поместите модуль в предпочтительное место. Возможно, вы уже знаете это, , но , возможно, нет.
Вы не получите Install-Module для записи в любой из сценариев $ PROFILE.
$PROFILE | Select-Object -Property *
Ну, не по умолчанию в любом случае. Вы можете написать свою собственную функцию Install-Module, которая выполняет функцию Install-Module PowerShellGet и включает в себя запись в различные сценарии $ PROFILE. Проблема в том, что вам нужно включить logi c, чтобы вы не сдували содержимое чьего-либо сценария $ PROFILE, если он не пустой, а только добавляли его.
Серьезно, это превращается в большую работу, когда вы можете поместить модуль в место, где PowerShell может найти его самостоятельно.
Редактировать : мне пришло в голову, вы можете добавить значение / путь к переменной окружения $ env: PSModulePath. Это одна строка с разделителями-запятыми:
$env:PSModulePath.GetType().Name
Следовательно, это выглядело бы так:
$env:PSModulePath += ';C:\Another\Path'
Это здорово и все, но опять же, как вы могли бы поставить это, правильно? Это возвращает вас к проблеме записи в $ PROFILE-scripts, ... хотя вы можете обновить переменную через предпочтения групповой политики. Опять же, вероятно, лучше просто переместить ваш модуль.