2011-02-18 52 views
31

Powershell有兩種方法可將額外的cmdlet導入會話,Add-PsSnapIn和Import-Module。關於何時會選擇哪一個的文檔完全不清楚。有人知道這些之間的區別嗎?Add-PsSnapIn和Import-Module之間的區別是什麼

+0

我發現的IIS 7管理管理單元現在是一個模塊作爲IIS 7.5`進口模塊webadministration`源:http://powershell.com/cs/forums/t/8209 .aspx – northben 2012-11-15 21:03:11

回答

30

模塊在PowerShell V2中出現。如果需要,V2仍然可以加載Snapins。最大的區別是可以使用Xcopy部署模塊。沒有必要註冊任何東西。要部署Snapin,安裝程序必須破解註冊表,這需要提升權限。要加載模塊,只需使用Import-Module命令。

使用模塊清單以及模塊可以有更多的元數據,它可以指定各種對最終用戶來說可能有用的東西,包括版本,其他模塊的依賴關係以及哪些PowerShell主機可以運行該模塊。所有這些,如果你正在用C#或VB編寫一個二進制模塊,你仍然使用相同的PSSnapin基類。

要獲取更多信息,請

PS > help about_modules 
4

這是記錄不完善的,所以用一粒鹽回答我的答案。查看snapinmodules的開發者文檔。簡而言之,snapin只是「.Net」組件,而模塊可以包含腳本,組件等。

13

在第2版中,模塊是組織創建的cmdlet,提供程序,函數,別名和其他命令的首選方式。您不需要安裝模塊。您只需使用Import-Module cmdlet將模塊導入到PowerShell會話中。

AFAIK,PowerShell管理單元更多的是v1方法。在MS創建snapins而不是模塊上仍然有幾個團隊。例如,SharePoint 2010 cmdlet。 PowerShell管理單元是實現cmdlet和提供程序的二進制文件(.dll)。您需要安裝管理單元,然後使用Add-PSSnapin cmdlet將管理單元中的cmdlet添加到PowerShell會話中。

+0

PowerShell的TFS Power Tools實用程序仍然作爲管理單元實施。 – JamieSee 2014-04-29 20:20:53

+0

當你說「*你沒有安裝模塊*」時,你忘記了模塊必須首先被xcopy部署到其中一個模塊文件夾,或者是當前用戶在%USERPROFILE%\ Documents下的個人文件夾,或者是機器的全局在`%WINDIR%\ system32 \ WindowsPowerShell \ v1.0 \ Modules`下。 – Alexey 2014-11-20 10:28:12

1

PSSnapin提供了一種通過在受保護的目錄中安裝DLL文件來保護您的組件相比,其可以通過只替換文件播放模塊。

價:MSDN Link for PSSnapin

相關問題