Используя ваш пример, я не получаю предупреждающее сообщение (PowerShell 5.1), потому что вы не экспортируете функцию _Get-Something
.
Если я ее экспортирую (Export-ModuleMember -Function Get-SomethingElse, _Get-Something
), то появляется предупреждение .
Я не знаю никаких соглашений для этого, но я обычно называю такую вспомогательную функцию в модуле без a da sh (_Get-Something
- > _GetSomething
) и использовать правильные имена с утвержденными глаголами для функций, которые я хочу экспортировать. Затем экспортируйте ленивый путь:
Export-ModuleMember -Function *-*
Также возможно «спрятать» вспомогательные функции внутри экспортируемой функции, которая ее использует, например
function Get-SomethingElse {
# helper function inside
function _Get-Something { Write-Host "Hi from $($MyInvocation.MyCommand)" }
_Get-Something -arg 'sdfsdf .....'
}
Export-ModuleMember -Function Get-SomethingElse
This на моем компьютере также не отображается предупреждение.
Наконец, вы можете избавиться от предупреждения, добавив ключ -DisableNameChecking
в команду:
Import-Module 'D:\test.psm1' -DisableNameChecking
Надеюсь, это поможет