36

Powershell には、追加のコマンドレットをセッションにインポートするための 2 つの手段、Add-PsSnapIn と Import-Module があります。どちらを選択するかについて、ドキュメントはまったく明確ではありません。これらの違いを知っている人はいますか?

4

5 に答える 5

35

モジュールはPowerShellV2で登場しました。ただし、必要に応じて、V2はSnapinsをロードできます。大きな違いは、モジュールはXcopyを使用してデプロイできることです。何も登録する必要はありません。Snapinをデプロイするには、インストーラーがレジストリをハックする必要があります。これには、昇格された特権が必要になります。モジュールをロードするには、Import-Moduleコマンドを使用するだけです。

モジュールは、モジュールマニフェストを使用して、より多くのメタデータを持つことができます。これにより、バージョン、他のモジュールへの依存関係、モジュールを実行できるPowerShellホストなど、エンドユーザーが知るのに役立つ可能性のあるすべての種類の情報を指定できます。

そうは言っても、C#またはVBでバイナリモジュールを記述している場合でも、同じPSSnapin基本クラスを使用します。

詳細については、チェックアウトしてください

PS > help about_modules
于 2011-02-18T15:20:04.473 に答える
17

v2 では、モジュールは、作成するコマンドレット、プロバイダー、関数、エイリアス、およびその他のコマンドを整理するための推奨される方法です。モジュールをインストールしません。Import-Module コマンドレットを使用して、モジュールを PowerShell セッションにインポートするだけです。

私の知る限り、PowerShellスナップインはv1アプローチに近いものです。MS には、モジュールの代わりにスナップインを作成するチームがまだいくつかあります。たとえば、SharePoint 2010 コマンドレットです。PowerShell スナップインは、コマンドレットとプロバイダーを実装するバイナリ (.dll) です。スナップインをインストールしてから、Add-PSSnapin コマンドレットを使用してスナップインのコマンドレットを PowerShell セッションに追加する必要があります。

于 2011-02-18T12:50:18.197 に答える
4

これは十分に文書化されていないので、私の答えを一粒の塩で受け取ってください。snapinmodulesの開発者向けドキュメントを ご覧ください。簡単に言うと、snapin は「単なる」.Net アセンブリですが、モジュールにはスクリプトやアセンブリなどを含めることができます。

于 2011-02-18T10:42:01.107 に答える
1

PSSnapin は、ファイルを置き換えるだけで再生できるモジュールと比較して、保護されたディレクトリに DLL をインストールすることでアセンブリを保護する方法を提供します。

参照: PSSnapin の MSDN リンク

于 2016-02-17T18:00:49.693 に答える