Add-PsSnapIn和Import-Module之间有什么区别

时间:2011-02-18 07:59:11

标签: powershell import-module

Powershell有两种方法可以将其他cmdlet导入会话,即Add-PsSnapIn和Import-Module。关于何时选择一个而不是另一个,文档并不清楚。有人知道这些之间的区别吗?

5 个答案:

答案 0 :(得分:33)

PowerShell V2中出现了模块。如果需要,V2仍然可以加载Snapins。最大的区别是可以使用Xcopy部署模块。没有必要注册任何东西。要部署Snapin,安装程序必须破解注册表,这需要提升priveleges。要加载模块,只需使用Import-Module命令。

模块可以使用Module Manifest获得更多元数据,它可以指定最终用户可能知道的各种事物,包括版本,对其他模块的依赖性,以及哪些PowerShell主机可以运行模块。

所有这一切,如果你用C#或VB编写二进制模块,你仍然使用相同的PSSnapin基类。

要获取更多信息,请查看

PS > help about_modules

答案 1 :(得分:16)

在v2中,模块是组织您创建的cmdlet,提供程序,函数,别名和其他命令的首选方法。您没有安装模块。您只需使用Import-Module cmdlet将模块导入PowerShell会话。

AFAIK,PowerShell管理单元更像是v1方法。 MS仍然有一些团队创建了snapins而不是模块。例如,SharePoint 2010 cmdlet。 PowerShell管理单元是实现cmdlet和提供程序的二进制文件(.dll)。您需要安装管理单元,然后使用Add-PSSnapin cmdlet将管理单元中的cmdlet添加到PowerShell会话中。

答案 2 :(得分:4)

这个记录很少,所以请耐心等待我的回答。查看snapinmodules的开发人员文档。简而言之,snapin“只是”一个.Net,而模块可以包含脚本,组合等等。

答案 3 :(得分:1)

与模块相比,PSSnapin通过在受保护的目录中安装DLL来提供保护程序集的方法,而模块可以通过替换文件来播放。

参考:MSDN Link for PSSnapin

答案 4 :(得分:1)

Add-PSSnapinImport-Module用于在当前PowerShell会话中获取外部第三方库(脚本文件/二进制文件/ dll)。 模块比PSSnapins更易于使用。

与PSSnapin相比,主要优势模块是添加后,我们无法从当前PowerShell会话中删除或卸载PSSnapin。 但是可以使用Remove-Module

从当前PowerShell会话中手动删除模块。

注意: PS版本1.0中引入的PSSnapin概念和PS版本2.0中引入的模块。

参考:- This