2017-09-15 63 views
2

我爲它創建了PowerShell模塊MyUtil.psm1和清單文件MyUtil.psd1。在PSD1文件,它具有定義爲防止名稱衝突的導出函數的前綴:如何確保使用PowerShell模塊清單(.psd1)

DefaultCommandPrefix = 'MyToolbox' 

這樣,運行導入模塊後\ MyUtil.psd1,在PSM1文件中像Get-Command功能會Get-MyToolboxCommand,一切都很好。但是如果有人運行導入模塊。\ MyUtil.psm1直接導入psm1文件,則不會使用psd1文件。

如果我想防止這種情況,是否有任何簡單的方法只允許導入相應的psd1清單文件,而不是該psm1文件?

+0

@ wp78de謝謝!請在你的帖子中看到我的評論。我在帖子中還加了幾個詞,希望能讓我的問題更清楚。 – w2000

回答

0

您可以通過調用Test-ModuleManifest Cmdlet來測試模塊清單。

Test-ModuleManifest MyUtil.psd1 

這確認了清單中描述的任何路徑都是正確的。 確保您的模塊清單位於包含您的模塊的目錄的頂層。

當您的模塊被複制到另一個系統並導入時,PowerShell應該使用模塊清單導入您的模塊。
或者,您可以通過點擊清單本身來調用Import-Module來直接測試您的模塊清單。

Import-Module .\myModuleName.psd1 
+0

嗨@ wp78de感謝您的建議。但那不是我所問的。我的問題是「如何強制該模塊的用戶只導入psd1文件」。因爲如果他們直接導入psm1文件,它會丟失我放入清單中的前綴和其他好東西。 – w2000

相關問題