从自动完成中隐藏 PowerShell 模块的功能

Hide PowerShell module's functions from auto completion

我在 CentOS 7 服务器上使用 PowerShell v6.1.1 软件包。

我想隐藏我创建的模块的某些功能,因为最终用户不必使用它。就是他要用的函数用了我想隐藏的函数

用户必须使用function1function1使用function2但用户不必使用function2所以我不想让他看到function2.

Export-ModuleMember 仅在使用时隐藏它 Get-Command -Module myModule 但使用选项卡自动完成仍会显示所有功能。

Moerwald 的评论给了我从 Get-Command 命令和选项卡自动完成中隐藏模块功能的正确方法。

*.psm1 文件中的

Export-ModuleMember 'function1' 在使用 Get-Command -Module myModule 时仅显示定义的函数,但自动完成将允许用户使用模块中的每个函数。

Function-ToExport= 'function1' *.psd1 文件中定义的函数将成为最终用户唯一可用的函数,并且这些函数将能够使用导出模块中的其他函数。