Подтвердить что ты не робот

Какая разница между Add-PsSnapIn и Import-Module

Powershell имеет два способа импорта дополнительных командлетов в сеанс, Add-PsSnapIn и Import-Module. Документы не совсем ясны относительно того, когда вы выбрали один из них. Кто-нибудь знает разницу между ними?

4b9b3361

Ответ 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