Функции Powershell сохраняются как сам сеанс powershell, поэтому, когда вы определяете функцию в консоли, вы все равно можете вызывать ее во время работы этой консоли, и после ее закрытия вам придется снова определить функцию.
Однако в системе Powershell есть определенные сценарии, которые запускаются при каждом запуске сеанса Powershell, эти сценарии называются профилями Powershell.
Так что в вашем случае, если вы поместите функцию в профиль Powershell, это будетопределяется непосредственно при открытии сеанса Powershell, и он будет определен навсегда.
Посмотрите здесь, чтобы увидеть профиль powershell
Этот код поместит вашу функцию в профиль:
New-Item -Type Directory -Path "$home/Documents/WindowsPowerShell"
"<Your Function Here>" | Out-File -Force -FilePath $profile.CurrentUserAllHosts
Теперь, когда вы открываете новую консоль Powershell (или запускается любой процесс powershell), ваша функция будет загружаться (даже после перезагрузки системы).
Если у вас есть PowerShellфайл (.ps1), который содержит много функций, вы можете просто скопировать его содержимое в $ Profile.CurrentUserAllHosts, или поместите этот код в $ Profile.CurrentUserAllHosts для импорта вашего файла при запуске Powershell.
Import-Module "<Your File (.ps1) Path Here>"
Обновление
Я забыл сказать, что вы должныизмените политику конфиденциальности Powershell на неограниченную, в противном случае вы получите сообщение об ошибке, в котором запущен скрипт в этой системе.