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