Quelle est la différence entre add-psssnapin et le module d'importation
-
15-11-2019 - |
Question
PowerShell a deux moyens pour importer des applets de commande supplémentaires dans une session, Add-PSSNapin et un module d'importation. Les documents ne sont pas du tout clairs quant au moment où l'un en choisirait l'un par rapport à l'autre. Est-ce que quelqu'un connaît la différence entre ceux-ci?
La solution
Les modules sont nés dans PowerShell v2. V2 peut toujours charger des snapins, si nécessaire. La grande différence est que les modules peuvent être déployés à l'aide de XCopy. Il n'est pas nécessaire d'enregistrer quoi que ce soit. Pour déployer un snapin, un installateur devrait pirater le registre, ce qui nécessiterait des privilèges élevés. Pour charger un module, il vous suffit d'utiliser la commande d'importation du module.
Les modules peuvent également avoir beaucoup plus de métadonnées en utilisant un manifeste de module, qui peut spécifier toutes sortes de choses qui pourraient être utiles à l'utilisateur final à connaître, y compris la version, les dépendances sur d'autres modules, et quels hôtes PowerShell peuvent exécuter le module.
Cela étant dit, si vous écrivez un module binaire en C # ou VB, vous utilisez toujours la même classe de base pssnapin.
Pour obtenir plus d'informations, consultez
PS > help about_modules
Autres conseils
Dans V2, les modules sont le moyen préféré d'organiser les applets de commande, les fournisseurs, les fonctions, les alias et autres commandes que vous créez. Vous n'installez pas de module. Vous importez simplement un module dans la session PowerShell à l'aide de la commande d'importation du module.
Afaik, un Snapin PowerShell est plus une approche V1. Il y a encore quelques équipes chez MS créant des snapins au lieu de modules. Par exemple, SharePoint 2010 Cmdlets. PowerShell Snapins sont des binaires (.dll) qui implémentent des applets de commande et des fournisseurs. Vous devez installer un snapin, puis ajouter les cmdlets dans le snapin à une session PowerShell à l'aide de Cmdlet Add-PsSnapin.
PSSNAPIN fournit un moyen de protéger vos assemblages en installant des DLL dans le répertoire protégé par rapport au module qui peut être lu en remplaçant simplement les fichiers.