PowerShell HelpFile - about_modules
 記事記号:[me1549] 初版:2011/May/10

この文書は、Windows PowerShellのヘルプ機能で表示される内容を再構成したものです。

トピック
    about_Modules

簡易説明
    Windows PowerShell モジュールをインストール、インポート、および使用する方法
    について説明します。

詳細説明
    モジュールとは、コマンドレット、プロバイダー、関数、変数、エイリアスなどの W
    indows PowerShell コマンドをパッケージ化したものです。

    モジュールを使用することで、コマンドを作成する側のユーザーは、作成したコマン
    ドを系統的にまとめることができ、他のユーザーと共有することができます。一方、
    モジュールを受け取る側も、モジュールのコマンドを自分の Windows PowerShell セ
    ッションに追加し、組み込みコマンドと同じ要領で使用することができます。

    このトピックでは、Windows PowerShell モジュールを使用する方法について説明し
    ます。Windows PowerShell モジュールの記述方法については、MSDN (Microsoft Dev
    eloper Network) ライブラリの「Windows PowerShell モジュールの記述 (英語ペー
    ジの可能性があります)」(http://go.microsoft.com/fwlink/?LinkId=144916) を参
    照してください。

 モジュールを使用する方法
    モジュールを使用するには、次のタスクを実行します。

        1. モジュールをインストールする (ほとんどの場合は実行済みです)。
        2. Windows PowerShell セッションにモジュールをインポートする。
        3. モジュールにより追加されたコマンドを検索する。
        4. モジュールにより追加されたコマンドを使用する。
     
    このトピックでは、これらのタスクを実行する方法について説明します。その他、
    モジュール管理に関する有用な情報も含まれています。


 モジュールをインストールする方法
    ファイルが格納されたフォルダーとして受け取ったモジュールを Windows PowerShel
    l にインポートするには、まずモジュールをコンピューターにインストールする
    必要があります。

    ほとんどのモジュールは、既にインストールされています。Windows PowerShell には、
    プレインストール モジュールがいくつか用意されています。Windows Server 2008 R2 
    の場合、サーバー マネージャーの機能の追加ウィザードによって、選択した機能
    モジュールが自動的にインストールされます。モジュールをインストールする
    インストーラーまたはセットアップ プログラムには、他にも多くのモジュールが付属
    しています。

    モジュールをインストールするには

        1. 現在のユーザーに対して Modules ディレクトリが存在しない場合は、Modules 
           ディレクトリを作成します。

           Modules ディレクトリを作成するには、次のように入力します。

               new-item -type directory -path $home\Documents\WindowsPowerShell\
               Modules                             

        2. モジュール フォルダー全体を Modules ディレクトリにコピーします。

           Windows PowerShell 以外にも、Windows エクスプローラーおよび Cmd.exe 
           などのフォルダーを任意の方法でコピーできます。

           Windows PowerShell では、Copy-Item コマンドレットを使用します。たとえ
           ば、C:\ps-test\MyModule にある MyModule フォルダーを Modules ディレク
           トリにコピーするには、次のように入力します。

               copy-item -path c:\ps-test\MyModule -dest $home\Documents\Windows
               PowerShell\Modules

    モジュールは任意の場所にインストールできますが、既定のモジュールのインストー
    ル場所にインストールする方が管理は簡単です。既定のモジュールのインストール場
    所の詳細については、「モジュールのインストール場所と PSModulePath」を参照し
    てください。

 インストールしたモジュールを検索する方法
     モジュールのインストールが完了したら、モジュールを Windows PowerShell 
     セッションにインポートできます。

     既定のモジュールのインストール場所にインストールされたモジュールを検索
     するには、Windows PowerShell プロンプトで次のように入力します。

         get-module -listAvailable

     セッションにインポート済みのモジュールを検索するには、Windows PowerShell 
     プロンプトで次のように入力します。

         get-module

     Get-Module コマンドレットの詳細については、「Get-Module」を参照してください。

 モジュールをインポートする方法
    モジュールのコマンドを使用するには、そのモジュールを Windows PowerShell 
    セッションにインポートします。

    既定のモジュールのインストール場所から現在のセッションにモジュールを
    インポートするには、次のコマンド形式を使用します。

        import-module <module-name>
    
    たとえば、BitsTransfer モジュールを現在のセッションにインポートするには、
    次のコマンドを入力します。

        import-module BitsTransfer

    既定のモジュールのインストール場所以外に存在するモジュールをインポートする
    には、モジュール フォルダーへの完全修飾パスをコマンドに使用します。

    たとえば、C:\ps-test ディレクトリ内の TestCmdlets モジュールをセッションに
    追加するには、次のように入力します。

        import-module c:\ps-test\TestCmdlets

    セッションにモジュールを追加する方法の詳細については、「Import-Module」を
    参照してください。

 すべてのモジュールを Windows PowerShell セッションにインポートする方法
    Windows 7 および Windows Server 2008 R2 では、"すべてのモジュールのインポー
    ト" タスクを実行すると、使用可能な Windows PowerShell モジュールおよびスナッ
    プインがすべてインポートされた Windows PowerShell セッションを起動できます。

    使用可能な Windows PowerShell モジュールおよびスナップインがすべてインポート
    された Windows PowerShell セッションを開始するには、次の手順を使用します。

    -- タスクバーの [Windows PowerShell] アイコンを右クリックし、[すべてのモジュ
       ールのインポート] をクリックします。

    注: Windows Server 2008 R2 では、[Windows PowerShell] アイコンが既定でタスク
        バーに固定されています。ただし、"すべてのモジュールのインポート" タスク
        が表示されるようにするには、Windows PowerShell を一度起動する必要があり
        ます。

    その他のバージョンの Windows の場合、使用可能なモジュールをすべてセッション
    にインポートするには、Windows PowerShell プロンプトで次のように入力します。

        get-module -listAvailable | import-module

 モジュール内のコマンドを検索する方法
    モジュールを Windows PowerShell セッションにインポートすると、
    モジュール内のコマンドを使用できるようになります。

    モジュールによって追加されたコマンドを検索するには、Windows PowerShell 
    プロンプトで次のように入力します。

        get-command -module <module-name>

    たとえば、BitsTransfer モジュールによって追加されたコマンドを検索するには、
    次のように入力します。

        get-command -module BitsTransfer

    Get-Command コマンドレットの詳細については、「Get-Command」を参照してくださ
    い。

 モジュールのコマンドのヘルプを検索する方法
    エクスポートされるコマンドに関するヘルプ トピックがモジュールに含まれている
    場合は、Get-Help コマンドレットを使用してヘルプ トピックを表示できます。使用
    するコマンド形式は、Windows PowerShell で他のヘルプ トピックを表示する場合と
    同じです。

    モジュールのコマンドに関するヘルプ トピックを検索するには、Windows PowerShell 
    プロンプトで次のように入力します。

        get-help <command-name>

    詳細なヘルプを表示するには、次のように入力します。

        get-help <command-name> -detailed

    たとえば、Start-BitsTransfer コマンドレットの詳細なヘルプを検索するには、
    次のように入力します。
       
        get-help Start-BitsTransfer -detailed

    Get-Help モジュールの詳細については、「Get-Help」を参照してください。

 モジュールを削除する方法
    モジュールを削除すると、モジュールによって追加されたコマンドもセッションから
    削除されます。

    セッションからモジュールを削除するには、次のコマンド形式を使用します。

        remove-module <module-name>

    たとえば、現在のセッションから BitsTransfer モジュールを削除するには、
    次のコマンドを入力します。

        remove-module BitsTransfer

    モジュールの削除では、モジュールのインポートと逆の処理が行われます。
    モジュールの削除により、モジュールがアンインストールされることはありません。
    Remove-Module コマンドレットの詳細については、「Remove-Module」を参照してく
    ださい。

 モジュールをすべてのセッションにインポートする方法
    現在の Windows PowerShell セッションにモジュールをインポートする場合は、
    Import-Module コマンドを使用します。このコマンドは、現在のセッションにのみ有
    効です。

    開始するすべての Windows PowerShell セッションにモジュールをインポートするに
    は、Import-Module コマンドを Windows PowerShell プロファイルに追加します。

    プロファイルの詳細については、「about_Profiles」を参照してください。
  
 モジュールのインストール場所と PSModulePath
    Windows PowerShell モジュールの既定のインストール場所には、
    システム用と現在のユーザー用の 2 つがあります。

        システム用:        $pshome\Modules 
                           (%windir%\System32\WindowsPowerShell\v1.0\Modules)

        現在のユーザー用:  $home\Documents\WindowsPowerShell\Modules
                           (%UserProfile%\Documents\WindowsPowerShell\Modules)

                           - または -

                           $home\My Documents\WindowsPowerShell\Modules
                           (%UserProfile%\My Documents\WindowsPowerShell\Modules)

        注: Windows Vista、Windows Server 2008、およびそれ以降のバージョンの Wi
            ndows で、%Windir%\System32 ディレクトリのファイルを追加または変更す
            るには、Windows PowerShell を起動する際に [管理者として実行] を指定
            する必要があります。

    システムの既定のモジュールのインストール場所を変更するには、PSModulePath 環
    境変数 ($env:psmodulepath) の値を変更します。PSModulePath 環境変数は、Path 
    環境変数をモデルとしているため、Path 環境変数と同じ形式を使用できます。

    既定のモジュールのインストール場所を表示するには、次のように入力します。

        $env:psmodulepath

    既定のモジュールのインストール場所を追加するには、次のコマンド形式を使用しま
    す。

        $env:psmodulepath = $env:psmodulepath + ";<path>"

    コマンドのセミコロン (;) は、一覧の新しいパスとその直前のパスとを区切ります。

    たとえば、C:\ps-test\Modules ディレクトリを追加するには、次のように入力します。

        $env:psmodulepath + ";c:\ps-test\Modules"

    パスを PSModulePath に追加すると、そのパスに含まれるモジュールも Get-Module 
    および Import-Module コマンドの対象となります。
       
    設定する値は、現在のセッションにのみ有効です。変更を保持するには、Windows Po
    werShell プロファイルにコマンドを追加するか、コントロール パネルの [システム
    ] で、レジストリの PSModulePath 環境変数の値を変更します。

    PSModulePath 変数の詳細については、「about_Environment_Variables」を参照して
    ください。

 モジュールおよび名前の競合
    セッションに同じ名前のコマンドが複数存在すると、名前の競合が発生します。
    モジュールのコマンド名がセッション内のコマンド名または項目名と重複する場合は、
    モジュールのインポート時に名前の競合が発生します。

    名前の競合により、コマンドが隠れたり、置き換えられたりすることがあります。

        -- 隠れる: コマンド名を入力したときに別のコマンドが実行される場合、
           コマンドは隠れています。ただし、別の方法 (インポート元のモジュール名
           またはスナップイン名でコマンド名を修飾するなど) を使用することで、
           隠れているコマンドを実行できます。

        -- 置換される: 同じ名前のコマンドによって上書きされて実行することができ
           ない場合、コマンドは置換されています。競合の原因となっているモジュー
           ルを削除しても、セッションを再開しない限り、置換されたコマンドを実行
           することはできません。

    Import-Module により、現在のセッション内のコマンドを隠したり置換するようなコ
    マンドが追加される場合があります。また、モジュールによって追加されたコマンド
    が、現在のセッション内のコマンドで隠れた状態になる場合もあります。

    名前の競合を回避するには、Import-Command の Prefix パラメーターを使用して、
    インポートするコマンドに一意の名前を作成します。

    また、Import-Module の Alias、Cmdlet、Function、および Variable パラメーター
    を使用して、インポートする必要のあるコマンドだけを選択し、セッション内で名前
    が競合するコマンドを除外することもできます。

    コマンドが隠れていても、インポート元のモジュール名またはスナップイン名でコマ
    ンド名を修飾することで、コマンドを実行できます。
           
    セッション内に同じ名前のコマンドが存在する場合は、Windows PowerShell のコマ
    ンド優先順位の規則に従って、実行するコマンドが決定されます。

    たとえば、セッション内に同じ名前の関数とコマンドレットが存在する場合、Window
    s PowerShell は既定で関数を実行します。2 つのコマンドレットに同じ名前が付い
    ている場合など、セッション内に同じ名前を持つ同じ種類のコマンドが存在する場合
    は、最後に追加されたコマンドが既定で実行されます。

    優先順位の規則や隠しコマンドの実行方法など、詳細については「about_Command_Pr
    ecedence」を参照してください。
       
 モジュールおよびスナップイン
    モジュールおよびスナップインからセッションにコマンドを追加できます。モジュー
    ルでは、コマンドレット、プロバイダー、関数に加え、変数、エイリアス、および W
    indows PowerShell ドライブなどの項目を含む、すべてのタイプのコマンドを追加で
    きます。一方、スナップインでは、コマンドレットとプロバイダーのみを追加できま
    す。

    実際、関数、エイリアス、変数、およびドライブの入力やスクリプトの実行によって、
    それらの項目をセッションに追加できますが、セッション内のすべてのコマンドレッ
    トおよびプロバイダーは、モジュールまたはスナップインにより提供されます。

    モジュールまたはスナップインをセッションから削除する前に、次のコマンドを入力
    して削除されるコマンドを確認します。

    セッション内のコマンドレットのソースを検索するには、次のコマンド形式を使用し
    ます。

        get-command <cmdlet-name> | format-list -property verb, noun, pssnapin, 
        module

    たとえば、Get-Date コマンドレットのソースを検索するには、次のように入力します。

        get-command get-date | format-list -property verb, noun, pssnapin, module
 
    Windows PowerShell スナップインの詳細については、「about_PSSnapins」を参照し
    てください。

関連項目
    about_Command_Precedence
    about_PSSnapins
    Get-Command
    Get-Help
    Get-Module
    Import-Module
    Remove-Module
	
記事で解説しているパソコンの環境
 基本ソフト: Windows 7
 キーワード: Windows PowerShell、ヘルプ、HelpFile、about_modules
ご利用数: 1859794
感想・要望・問い合わせは こちら