x64 windowsth tools rsat msu manager kb2693643 for active powershell import-module

powershell - windowsth - ¿Cuál es la diferencia entre Add-PsSnapIn y Import-Module?



rsat windows 10 1809 (4)

Powershell tiene dos medios para importar cmdlets adicionales en una sesión, Add-PsSnapIn e Import-Module. Los documentos no están del todo claros con respecto a cuándo uno elegiría uno sobre el otro. ¿Alguien sabe la diferencia entre estos?


En v2, los módulos son la forma preferida de organizar los cmdlets, proveedores, funciones, alias y otros comandos que crea. Usted no instala un módulo. Simplemente importa un módulo en la sesión de PowerShell usando el cmdlet Import-Module.

AFAIK, un complemento de PowerShell es más un enfoque v1. Todavía hay algunos equipos en MS creando snapins en lugar de módulos. Por ejemplo, cmdlets de SharePoint 2010. Los snapins de PowerShell son binarios (.dll) que implementan cmdlets y proveedores. Debe instalar un complemento y luego agregar los cmdlets en el complemento a una sesión de PowerShell mediante el cmdlet Add-PSSnapin.


Esto está mal documentado, así que tome mi respuesta con un grano de sal. Eche un vistazo a los documentos del desarrollador para snapin y modules . Brevemente, snapin es "solo" .Net assebly mientras que el módulo puede contener scripts, asseblies y más.


Los módulos surgieron en PowerShell V2. V2 aún puede cargar Snapins, si es necesario. La gran diferencia es que los módulos se pueden implementar usando Xcopy. No hay necesidad de registrar nada. Para implementar un Snapin, un instalador tendría que piratear el registro, lo que requeriría priveleges elevados. Para cargar un módulo, simplemente tiene que usar el comando Importar-Módulo.

Los módulos pueden tener muchos más metadatos usando también un Manifiesto de módulo, que puede especificar todo tipo de cosas que pueden ser útiles para el usuario final, incluida la versión, las dependencias de otros módulos y los hosts de powershell que pueden ejecutar el módulo.

Dicho todo esto, si está escribiendo un módulo binario en C # o VB, aún usa la misma clase base PSSnapin.

Para obtener más información, echa un vistazo

PS > help about_modules


PSSnapin proporciona una manera de proteger sus ensamblajes mediante la instalación de archivos DLL en el directorio protegido en comparación con el Módulo, que se puede reproducir simplemente reemplazando archivos.

Ref .: MSDN Link para PSSnapin