1

Мои модули не могут жить в стандартных каталогах модулей на наших серверах. Они должны жить на диске E:.Автоматическое добавление к пути модуля с использованием -NoProfile из командной строки

Для разработки я могу изменить свой профиль, чтобы изменить переменную $ ENV: PSModulePath. Но когда я планирую сценарий и вызывать PowerShell из командной строки, нам поручено использовать ключ -NOProfile. Типичный пример может быть:

New-ScheduledTaskAction -Execute 'C:\Windows\System32\WindowsPowerShell\v1.0\powershell.exe' -Argument "-windowstyle hidden -NonInteractive -NoLogo -NoProfile -File `"<Path to Script>`"" 

Как я могу включать в себя изменения пути модуля из командной строки, так что мои сценарии могут найти свои модули без указания, что путь в каждом сценарии?

+1

Вы можете навсегда изменить переменные среды на локальном компьютере, который просто хранятся в виде ключа в реестре , Это говорит о том, что лучше использовать в своем скрипте ресурсы, которые необходимо выполнить, не полагаясь на внешние обходные пути. – BenH

ответ

0

Вы можете отказаться от использования переключателя -NoProfile, так как в этом случае вы хотите его использовать.

Вы можете использовать переключатель -Command вместо -File (а затем точки источника сценария):

powershell.exe -windowstyle hidden -NonInteractive -NoLogo -NoProfile -Command "$env:PSModulePath = (($env:PSModulePath -split ';') + 'E:\Your\Module\Path') -join ';' ; . '<Path to Script>' 
+0

Я использовал ваше предложение опции -Command, и оно отлично работает. Спасибо! –