2017-09-15 1 views
2

j'ai créé un module de PowerShell MyUtil.psm1 et un fichier manifeste MyUtil.psd1 pour elle. Dans le fichier PSD1 il a le préfixe défini pour éviter les conflits de nom pour les fonctions exportées.Comment assurez-vous que le module de PowerShell manifeste (.psd1) est utilisé

DefaultCommandPrefix = 'MyToolbox' 

De cette façon, après l'exécution Import-Module \ MyUtil.psd1, une fonction comme Get-Command dans le fichier PSM1 sera Get-MyToolboxCommand, tout va bien. Mais si quelqu'un exécute Import-Module. \ MyUtil.psm1 importer le fichier PSM1 directement, le fichier PSD1 est tout simplement pas utilisé.

Si je veux éviter cela, il est un moyen facile de ne permettre d'importer le fichier manifeste PSD1 correspondant au lieu de ce fichier PSM1?

+0

@ wp78de Merci! S'il vous plaît voir mon commentaire dans votre message. J'ai également ajouté quelques mots de plus dans mon message, l'espoir peut rendre ma question plus claire. – w2000

Répondre

0

Vous pouvez tester votre module manifeste par un appel au test-ModuleManifest Cmdlet.

Test-ModuleManifest MyUtil.psd1 

Ceci confirme que tous les chemins décrits dans le manifeste sont corrects. Assurez-vous que le manifeste de votre module se trouve au premier niveau du répertoire qui contient votre module.

Lorsque votre module est copié sur un autre système et importé, PowerShell doit utiliser le module manifeste pour importer votre module.
Vous pouvez également tester directement votre manifeste de module avec un appel à Import-Module en pointant le manifeste lui-même.

Import-Module .\myModuleName.psd1 
+0

Bonjour @ wp78de Merci pour votre suggestion. Mais ce n'est pas ce que je demandais. Ma question était "comment forcer l'utilisateur de ce module à importer uniquement le fichier psd1". Parce que s'ils importent le fichier psm1 directement, il perd le préfixe et d'autres bonnes choses que je mets dans le manifeste. – w2000