profile.ps1 как импортировать скрипты и функции - PullRequest
0 голосов
/ 09 января 2020

У меня есть некоторые функции и скрипты, которые я делаю сам. Проблема в том, что я не уверен, где это сохранить и как загрузить.

В локальном профиле у меня есть это: C: \ Users \ Plazma \ Documents \ WindowsPowerShell \ Microsoft.PowerShell_profile.ps1

При этом:

Import-Module c:\Users\Plazma\Documents\WindowsPowerShell\Get-serialnumber.ps1 -Force
Import-Module c:\Users\Plazma\Documents\WindowsPowerShell\Invoke-AutoIPAssigning.ps1 -Force
Import-Module C:\Users\Plazma\Documents\WindowsPowerShell\Reset-Password.ps1 -Force
Import-Module C:\Users\Plazma\Documents\WindowsPowerShell\Send-Email.ps1 -Force

В эти файлы у меня есть функции / скрипты. Это хорошая практика или, может быть, я должен импортировать ее по-другому? Использовать ForEach для загрузки всех файлов в этом месте? Если одна функция будет использовать другую (например, всегда после сброса пароля я хочу отправить по электронной почте), как я должен импортировать ее?

1 Ответ

2 голосов
/ 09 января 2020

Я никогда не видел, чтобы Import-Module использовался для импорта определений из скрипта, я даже не знаю, сработает ли это. Обычно можно поставить точечные исходные . библиотечные сценарии из их $profile примерно так:

Microsoft.Powershell_profile.ps1

. c:\Users\Plazma\Documents\WindowsPowerShell\Get-serialnumber.ps1
. c:\Users\Plazma\Documents\WindowsPowerShell\Invoke-AutoIPAssigning.ps1
. C:\Users\Plazma\Documents\WindowsPowerShell\Reset-Password.ps1
. C:\Users\Plazma\Documents\WindowsPowerShell\Send-Email.ps1

Dot Sourcing выполняет сценарий в контексте вызывающего сеанса, поэтому все, что определено в области действия сценария, например функции или переменные, становится доступным в родительском сеансе.


Однако, если у вас есть МНОЖЕСТВО этих сценариев, вы перемещаетесь по сети, лучшее решение - записать их в (один или несколько) модулей, так как модули более переносимы, и вы можете разместить свой собственный канал NuGet , если вы не хотите загружать его в публичные c Галерея PowerShell .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...