Powershell имеет два способа импорта дополнительных командлетов в сеанс, Add-PsSnapIn и Import-Module. Документы не совсем ясны относительно того, когда вы выбрали один из них. Кто-нибудь знает разницу между ними?
Какая разница между Add-PsSnapIn и Import-Module
Ответ 1
Модули появились в PowerShell V2. V2 все равно может загружать Snapins, если это необходимо. Большая разница в том, что модули могут быть развернуты с помощью Xcopy. Нет необходимости регистрировать что-либо. Чтобы развернуть Snapin, установщик должен будет взломать реестр, что потребует повышенных привилегий. Чтобы загрузить модуль, вам просто нужно использовать команду Import-Module.
Модули могут иметь намного больше метаданных, используя также манифест модуля, который может указывать всевозможные вещи, которые могут быть полезны для конечного пользователя, чтобы знать, включая версию, зависимости от других модулей и какие хосты powershell могут запускать модуль.
Все сказанное, если вы пишете двоичный модуль в С# или VB, вы все равно используете тот же базовый класс PSSnapin.
Чтобы получить дополнительную информацию, проверьте
PS > help about_modules
Ответ 2
В версии 2 модули являются предпочтительным способом организации командлетов, поставщиков, функций, псевдонимов и других команд, которые вы создаете. Вы не устанавливаете модуль. Вы просто импортируете модуль в сеанс PowerShell с помощью командлета Import-Module.
AFAIK, Snapin PowerShell - это скорее подход v1. Есть еще несколько команд в MS, создающих snapins вместо модулей. Например, cmdlets SharePoint 2010. Snapins PowerShell - это двоичные файлы (.dll), которые реализуют командлеты и поставщики. Вам нужно установить snapin, а затем добавить командлеты в snapin в сеанс PowerShell с помощью командлета Add-PSSnapin.
Ответ 3
Это плохо документировано, поэтому возьмите мой ответ с солью. Взгляните на документы разработчика для snapin и модули. Вкратце, snapin "просто".Net assebly, в то время как модуль может содержать скрипты, asseblies и многое другое.
Ответ 4
PSSnapin предоставляет способ защиты ваших сборок путем установки DLL файлов в защищенном каталоге по сравнению с модулем, который может воспроизводиться только при замене файлов.
Ссылка: Ссылка MSDN для PSSnapin