我为它创建了一个 PowerShell 模块MyUtil.psm1和一个清单文件MyUtil.psd1。在 psd1 文件中,它定义了前缀以防止导出函数的名称冲突:
DefaultCommandPrefix = 'MyToolbox'
这样,运行后,就会出现psm1文件中Import-Module .\MyUtil.psd1
的函数,一切正常。但是如果有人跑直接导入psm1文件,psd1文件根本就不用,我想要的前缀也不会应用。Get-Command
Get-MyToolboxCommand
Import-Module .\MyUtil.psm1
如果我想防止这种情况(直接导入 MyUtil.psm1),有没有办法只允许导入相应的 psd1 清单文件而不是 psm1 文件?还是以编程方式检测此模块不是通过 psd1 导入的,因此我可以警告用户使用 psd1?