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?

Était-ce utile?

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.

Ceci est mal documenté, alors prenez ma réponse avec un grain de sel. Jetez un œil aux documents du développeur pour snapin et modules. En bref, Snapin est "juste" un .NET assely tandis que le module peut contenir des scripts, des assembles et plus encore.

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.

Réf: Lien msdn pour pssnapin

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top