モジュールについてAbout Modules

簡単な説明Short Description

PowerShell モジュールをインストール、インポート、および使用する方法について説明します。Explains how to install, import, and use PowerShell modules.

長い説明Long Description

モジュールは、コマンドレット、プロバイダー、関数、ワークフロー、変数、エイリアスなどの PowerShell メンバーを含むパッケージです。A module is a package that contains PowerShell members, such as cmdlets, providers, functions, workflows, variables, and aliases.

コマンドを記述するとき、モジュールを利用してコマンドを整理したり、他者と共有したりできます。People who write commands can use modules to organize their commands and share them with others. モジュールを受け取るユーザーは、モジュール内のコマンドを PowerShell セッションに追加し、組み込みコマンドと同じように使用できます。People who receive modules can add the commands in the modules to their PowerShell sessions and use them just like the built-in commands.

このトピックでは、PowerShell モジュールの使用方法について説明します。This topic explains how to use PowerShell modules. PowerShell モジュールの作成方法の詳細については、「 Powershell モジュールの記述」を参照してください。For information about how to write PowerShell modules, see Writing a PowerShell Module.

モジュールとはWhat Is a Module?

モジュールは、コマンドレット、プロバイダー、関数、ワークフロー、変数、エイリアスなどの PowerShell メンバーを含むパッケージです。A module is a package that contains PowerShell members, such as cmdlets, providers, functions, workflows, variables, and aliases. このパッケージのメンバーは、PowerShell スクリプト、コンパイルされた DLL、またはその両方の組み合わせで実装できます。The members of this package can be implemented in a PowerShell script, a compiled DLL, or a combination of both. これらのファイルは通常、1つのディレクトリにまとめられます。These files are usually grouped together in a single directory. 詳細については、SDK ドキュメントの「 Windows PowerShell モジュールについ て」を参照してください。For more information, see Understanding a Windows PowerShell Module in the SDK documentation.

モジュールの自動読み込みModule Auto-Loading

PowerShell 3.0 以降では、インストールされているモジュールで任意のコマンドを初めて実行したときに、PowerShell は自動的にモジュールをインポートします。Beginning in PowerShell 3.0, PowerShell imports modules automatically the first time that you run any command in an installed module. 今後は設定やプロファイル構成なしでモジュールのコマンドを使用できます。そのため、コンピューターにモジュールをインストールした後はモジュールを管理する必要がありません。You can now use the commands in a module without any set-up or profile configuration, so there's no need to manage modules after you install them on your computer.

また、モジュールのコマンドが見つけやすくなりました。The commands in a module are also easier to find. Get-Commandコマンドレットは、インストールされているすべてのモジュールのすべてのコマンドを取得するようになりました。セッションにまだ含まれていない場合でも同様です。The Get-Command cmdlet now gets all commands in all installed modules, even if they are not yet in the session. 最初にモジュールをインポートしなくても、コマンドを見つけて使用することができます。You can find a command and use it without importing needing to import the module first.

次の各例では、を含む CimCmdlets モジュールが Get-CimInstance セッションにインポートされます。Each of the following examples cause the CimCmdlets module, which contains Get-CimInstance, to be imported into your session.

  • コマンドを実行します。Run the Command

    Get-CimInstance Win32_OperatingSystem
    
  • コマンドを取得するGet the Command

    Get-Command Get-CimInstance
    
  • コマンドのヘルプを表示するGet Help for the Command

    Get-Help Get-CimInstance
    

Get-Command ワイルドカード文字 () を含むコマンド * は、検出用であり、使用しないと見なされ、モジュールをインポートしません。Get-Command commands that include a wildcard character (*) are considered to be for discovery, not use, and do not import any modules.

PSModulePath 環境変数によって指定された場所に格納されているモジュールのみが自動的にインポートされます。Only modules that are stored in the location specified by the PSModulePath environment variable are automatically imported. 他の場所のモジュールは、コマンドレットを実行してインポートする必要があり Import-Module ます。Modules in other locations must be imported by running the Import-Module cmdlet.

また、PowerShell プロバイダーを使用するコマンドでは、モジュールは自動的にインポートされません。Also, commands that use PowerShell providers do not automatically import a module. たとえば、コマンドレットなど、WSMan: ドライブを必要とするコマンドを使用する場合は、コマンドレットを実行して、 Get-PSSessionConfiguration Import-Module ドライブを含む Microsoft の wsman. 管理 モジュールをインポートする必要があり WSMan: ます。For example, if you use a command that requires the WSMan: drive, such as the Get-PSSessionConfiguration cmdlet, you might need to run the Import-Module cmdlet to import the Microsoft.WSMan.Management module that includes the WSMan: drive.

コマンドを実行し Import-Module てモジュールをインポートし、変数を使用して $PSModuleAutoloadingPreference モジュールの自動インポートを有効化、無効化、および構成することもできます。You can still run the Import-Module command to import a module and use the $PSModuleAutoloadingPreference variable to enable, disable and configure automatic importing of modules. 詳細については、「 about_Preference_Variables」を参照してください。For more information, see about_Preference_Variables.

モジュールを使用する方法How to Use a Module

モジュールを使用するには、次のタスクを実行します。To use a module, perform the following tasks:

  1. モジュールをインストールします。Install the module. (多くの場合、これは自動的に行われます。)(This is often done for you.)
  2. モジュールにより追加されたコマンドを見つけます。Find the commands that the module added.
  3. モジュールにより追加されたコマンドを使用します。Use the commands that the module added.

このトピックでは、これらのタスクの実行方法について説明します。This topic explains how to perform these tasks. モジュールの管理に関して役に立つその他の情報も含まれています。It also includes other useful information about managing modules.

モジュールをインストールする方法How to Install a Module

ファイルが含まれているフォルダーとしてモジュールを受け取った場合は、PowerShell で使用する前に、コンピューターにインストールする必要があります。If you receive a module as a folder with files in it, you need to install it on your computer before you can use it in PowerShell.

ほとんどのモジュールは自動的にインストールされます。Most modules are installed for you. PowerShell には、いくつかのプレインストールモジュール ( コア モジュールと呼ばれることもあります) が付属しています。PowerShell comes with several preinstalled modules, sometimes called the core modules. Windows ベースのコンピューターでは、オペレーティングシステムに含まれている機能に、それらを管理するためのコマンドレットがある場合、これらのモジュールはプレインストールされています。On Windows-based computers, if features that are included with the operating system have cmdlets to manage them, those modules are preinstalled. Windows の機能をインストールすると、たとえば、サーバーマネージャーの役割と機能の追加ウィザード、コントロールパネルの [Windows の機能の有効化または無効化] ダイアログボックス、機能の一部である PowerShell モジュールがインストールされます。When you install a Windows feature, by using, for example, the Add Roles and Features Wizard in Server Manager, or the Turn Windows features on or off dialog box in Control Panel, any PowerShell modules that are part of the feature are installed. 他にも多くのモジュールがモジュールをインストールするインストーラーまたは設定プログラムで提供されます。Many other modules come in an installer or Setup program that installs the module.

次のコマンドを使用して、現在のユーザーの モジュール ディレクトリを作成します。Use the following command to create a Modules directory for the current user:

New-Item -Type Directory -Path $HOME\Documents\WindowsPowerShell\Modules

モジュール フォルダー全体をモジュール ディレクトリにコピーします。Copy the entire module folder into the Modules directory. Windows Explorer と Cmd.exe、PowerShell を含むフォルダーをコピーするには、任意の方法を使用できます。You can use any method to copy the folder, including Windows Explorer and Cmd.exe, as well as PowerShell. PowerShell では、 Copy-Item コマンドレットを使用します。In PowerShell use the Copy-Item cmdlet. たとえば、MyModule フォルダーをから Modules ディレクトリにコピーするには、次のように C:\ps-test\MyModule 入力します。For example, to copy the MyModule folder from C:\ps-test\MyModule to the Modules directory, type:

Copy-Item -Path C:\ps-test\MyModule -Destination `
    $HOME\Documents\WindowsPowerShell\Modules

モジュールはどこにインストールしても構いませんが、モジュールの既定の場所にモジュールをインストールすれば、管理しやすくなります。You can install a module in any location, but installing your modules in a default module location makes them easier to manage. 既定のモジュールの場所の詳細については、 モジュールと DSC リソースの場所、および PSModulePath セクションを参照してください。For more information about the default module locations, see the Module and DSC Resource Locations, and PSModulePath section.

インストールされているモジュールを検索する方法How to Find Installed Modules

モジュールの既定の場所にインストールしたが、まだセッションにインポートしていないモジュールを見つけるには、次のように入力します。To find modules that are installed in a default module location, but not yet imported into your session, type:

Get-Module -ListAvailable

セッションに既にインポートされているモジュールを見つけるには、PowerShell プロンプトで次のように入力します。To find the modules that have already been imported into your session, at the PowerShell prompt, type:

Get-Module

コマンドレットの詳細につい Get-Module ては、「 Get-Module」を参照してください。For more information about the Get-Module cmdlet, see Get-Module.

モジュール内のコマンドを検索する方法How to Find the Commands in a Module

使用 Get-Command 可能なすべてのコマンドを検索するには、コマンドレットを使用します。Use the Get-Command cmdlet to find all available commands. コマンドレットのパラメーターを使用し Get-Command て、モジュール、名前、名詞などのコマンドをフィルター処理できます。You can use the parameters of the Get-Command cmdlet to filter commands such as by module, name, and noun.

モジュールのすべてのコマンドを見つけるには、次のように入力します。To find all commands in a module, type:

Get-Command -Module <module-name>

たとえば、BitsTransfer モジュール内のコマンドを検索するには、次のように入力します。For example, to find the commands in the BitsTransfer module, type:

Get-Command -Module BitsTransfer

コマンドレットの詳細につい Get-Command ては、「 Get-Command」を参照してください。For more information about the Get-Command cmdlet, see Get-Command.

モジュール内のコマンドのヘルプを取得する方法How to Get Help for the Commands in a Module

モジュールにエクスポートするコマンドのヘルプファイルが含まれている場合は、コマンドレットによって Get-Help ヘルプトピックが表示されます。If the module contains Help files for the commands that it exports, the Get-Help cmdlet will display the Help topics. Get-HelpPowerShell で任意のコマンドのヘルプを取得するために使用するのと同じコマンド形式を使用します。Use the same Get-Help command format that you would use to get help for any command in PowerShell.

PowerShell 3.0 以降では、モジュールのヘルプファイルをダウンロードし、ヘルプファイルに更新プログラムをダウンロードして、互換性が残されていないようにすることができます。Beginning in PowerShell 3.0, you can download Help files for a module and download updates to the Help files so they are never obsolete.

モジュールのコマンドのヘルプを取得するには、次のように入力します。To get help for a commands in a module, type:

Get-Help <command-name>

モジュール内のコマンドのヘルプをオンラインで取得するには、次のように入力します。To get help online for command in a module, type:

Get-Help <command-name> -Online

モジュール内のコマンドのヘルプファイルをダウンロードしてインストールするには、次のように入力します。To download and install the help files for the commands in a module, type:

Update-Help -Module <module-name>

詳細については、「 get-help and update-help」を参照してください。For more information, see Get-Help and Update-Help.

モジュールをインポートする方法How to Import a Module

場合によっては、モジュールまたはモジュール ファイルをインポートする必要があります。You might have to import a module or import a module file. インポートは、 PSModulePath 環境変数で指定された場所にモジュールがインストールされていない場合、 $env:PSModulePath またはフォルダーとして配信される一般的なモジュールではなく、.dll や hbase-runner.psm1 ファイルなどのファイルでモジュールが構成されている場合に必要です。Importing is required when a module is not installed in the locations specified by the PSModulePath environment variable, $env:PSModulePath, or the module consists of file, such as a .dll or .psm1 file, instead of typical module that is delivered as a folder.

また、コマンドのパラメーターを使用できるように、モジュールをインポートすることもできます。これにより、インポートされた Import-Module すべてのコマンドの名詞名に特徴的なプレフィックスが追加されます。または、 NoClobber パラメーターによって、セッション内の既存のコマンドを非表示にしたり、置き換えたりするコマンドをモジュールで追加できなくなります。You might also choose to import a module so that you can use the parameters of the Import-Module command, such as the Prefix parameter, which adds a distinctive prefix to the noun names of all imported commands, or the NoClobber parameter, which prevents the module from adding commands that would hide or replace existing commands in the session.

モジュールをインポートするには、コマンドレットを使用し Import-Module ます。To import modules, use the Import-Module cmdlet.

場所 PSModulePath にあるモジュールを現在のセッションにインポートするには、次のコマンド形式を使用します。To import modules in a PSModulePath location into the current session, use the following command format.

Import-Module <module-name>

たとえば、次のコマンドは、BitsTransfer モジュールを現在のセッションにインポートします。For example, the following command imports the BitsTransfer module into the current session.

Import-Module BitsTransfer

モジュールの既定の場所にないモジュールをインポートするには、コマンドでモジュール フォルダーの完全修飾パスを使用します。To import a module that is not in a default module location, use the fully qualified path to the module folder in the command.

たとえば、ディレクトリの TestCmdlets モジュールをセッションに追加するには、次のように C:\ps-test 入力します。For example, to add the TestCmdlets module in the C:\ps-test directory to your session, type:

Import-Module C:\ps-test\TestCmdlets

モジュール フォルダーに含まれていないモジュール ファイルをインポートするには、コマンドでモジュール ファイルの完全修飾パスを使用します。To import a module file that is not contained in a module folder, use the fully qualified path to the module file in the command.

たとえば、ディレクトリ内の TestCmdlets.dll モジュールをセッションに追加するには、次のように C:\ps-test 入力します。For example, to add the TestCmdlets.dll module in the C:\ps-test directory to your session, type:

Import-Module C:\ps-test\TestCmdlets.dll

セッションにモジュールを追加する方法の詳細については、「 Import-Module」を参照してください。For more information about adding modules to your session, see Import-Module.

モジュールをすべてのセッションにインポートする方法How to Import a Module into Every Session

コマンドは、 Import-Module 現在の PowerShell セッションにモジュールをインポートします。The Import-Module command imports modules into your current PowerShell session. 開始するすべての PowerShell セッションにモジュールをインポートするには、 Import-Module powershell プロファイルにコマンドを追加します。To import a module into every PowerShell session that you start, add the Import-Module command to your PowerShell profile.

プロファイルの詳細については、「about_Profiles」を参照してください。For more information about profiles, see about_Profiles.

モジュールを削除する方法How to Remove a Module

モジュールを削除すると、モジュールが追加したコマンドがセッションから削除されます。When you remove a module, the commands that the module added are deleted from the session.

セッションからモジュールを削除するには、次のコマンド形式を使用します。To remove a module from your session, use the following command format.

Remove-Module <module-name>

たとえば、次のコマンドは、現在のセッションから BitsTransfer モジュールを削除します。For example, the following command removes the BitsTransfer module from the current session.

Remove-Module BitsTransfer

モジュールを削除では、モジュールのインポートの反対の操作が行われます。Removing a module reverses the operation of importing a module. モジュールを削除してもモジュールはアンインストールされません。Removing a module does not uninstall the module. 詳細については、「 Remove-Module」を参照してください。For more information, see Remove-Module.

モジュールと DSC リソースの場所、および PSModulePathModule and DSC Resource Locations, and PSModulePath

環境変数には、 $env:PSModulePath モジュールとリソースを検索するために検索されるフォルダーの場所の一覧が含まれています。The $env:PSModulePath environment variable contains a list of folder locations that are searched to find modules and resources.

既定では、に割り当てられて $env:PSModulePath いる有効な場所は次のとおりです。By default, the effective locations assigned to $env:PSModulePath are:

  • システム全体の場所: $PSHOME\ModulesSystem-wide locations: $PSHOME\Modules

    これらのフォルダーには、Windows と PowerShell に付属しているモジュールが含まれています。These folders contain modules that ship with Windows and PowerShell.

    PowerShell に含まれる DSC リソースは、フォルダーに格納され $PSHOME\Modules\PSDesiredStateConfiguration\DSCResources ます。DSC resources that are included with PowerShell are stored in the $PSHOME\Modules\PSDesiredStateConfiguration\DSCResources folder.

  • ユーザー固有のモジュール: ユーザーによってユーザーのスコープにインストールされたモジュールです。User-specific modules: These are modules installed by the user in the user's scope. Install-Module には、現在のユーザーまたはすべてのユーザーに対してモジュールがインストールされているかどうかを指定できる スコープ パラメーターがあります。Install-Module has a Scope parameter that allows you to specify whether the module is installed for the current user or for all users. 詳細については、「 Install-Module」を参照してください。For more information, see Install-Module.

    Windows 上のユーザー固有の CurrentUser の場所は、 PowerShell\Modules ユーザープロファイル内の ドキュメント の場所にあるフォルダーです。The user-specific CurrentUser location on Windows is the PowerShell\Modules folder located in the Documents location in your user profile. その場所の特定のパスは、Windows のバージョンと、フォルダーリダイレクトを使用しているかどうかによって異なります。The specific path of that location varies by version of Windows and whether or not you are using folder redirection. Microsoft OneDrive では、 ドキュメント フォルダーの場所を変更することもできます。Microsoft OneDrive can also change the location of your Documents folder.

    既定では、Windows 10 の場合、その場所は $HOME\Documents\PowerShell\Modules です。By default, on Windows 10, that location is $HOME\Documents\PowerShell\Modules. Linux または Mac では、 CurrentUser の場所は $HOME/.local/share/powershell/Modules です。On Linux or Mac, the CurrentUser location is $HOME/.local/share/powershell/Modules.

    注意

    次のコマンドを使用して、 ドキュメント フォルダーの場所を確認でき [Environment]::GetFolderPath('MyDocuments') ます。You can verify the location of your Documents folder using the following command: [Environment]::GetFolderPath('MyDocuments').

  • AllUsers の場所は $env:PROGRAMFILES\PowerShell\Modules Windows 上にあります。The AllUsers location is $env:PROGRAMFILES\PowerShell\Modules on Windows. Linux または Mac では、モジュールはに格納され /usr/local/share/powershell/Modules ます。On Linux or Mac the modules are stored at /usr/local/share/powershell/Modules.

注意

ディレクトリ内のファイルを追加または変更するには、 $env:Windir\System32 [ 管理者として実行 ] オプションを使用して PowerShell を起動します。To add or change files in the $env:Windir\System32 directory, start PowerShell with the Run as administrator option.

PSModulePath 環境変数の値を変更することで、システム上の既定のモジュールの場所を変更でき $Env:PSModulePath ます。You can change the default module locations on your system by changing the value of the PSModulePath environment variable, $Env:PSModulePath. PSModulePath 環境変数は Path 環境変数でモデル化されており、同じ形式です。The PSModulePath environment variable is modeled on the Path environment variable and has the same format.

モジュールの既定の場所を表示するには、次のように入力します。To view the default module locations, type:

$Env:PSModulePath

モジュールの既定の場所を追加するには、次のコマンド形式を使用します。To add a default module location, use the following command format.

$Env:PSModulePath = $Env:PSModulePath + ";<path>"

コマンドのセミコロン () は、 ; 新しいパスをリスト内でその前にあるパスと分離します。The semi-colon (;) in the command separates the new path from the path that precedes it in the list.

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

$Env:PSModulePath + ";C:\ps-test\Modules"

パスを PSModulePath に追加すると、 Get-Module コマンドには Import-Module そのパスのモジュールが含まれます。When you add a path to PSModulePath, Get-Module and Import-Module commands include modules in that path.

設定した値は現在のセッションのみに影響します。The value that you set affects only the current session. 変更を永続化するには、PowerShell プロファイルにコマンドを追加するか、コントロールパネルの [システム] を使用して、レジストリの PSModulePath 環境変数の値を変更します。To make the change persistent, add the command to your PowerShell profile or use System in Control Panel to change the value of the PSModulePath environment variable in the registry.

また、変更を永続化するために、SetEnvironmentVariable クラスのメソッドを使用して、 PSModulePath 環境変数にパスを追加することもでき ます。Also, to make the change persistent, you can also use the SetEnvironmentVariable method of the System.Environment class to add a Path to the PSModulePath environment variable.

PSModulePath 変数の詳細については、「 about_Environment_Variables」を参照してください。For more information about the PSModulePath variable, see about_Environment_Variables.

モジュールと名前の競合Modules and Name Conflicts

名前の競合は、セッションの複数のコマンドの名前が同じときに発生します。Name conflicts occur when more than one command in the session has the same name. モジュールのコマンドの名前がセッションのコマンドまたはアイテムの名前と同じとき、モジュールをインポートすると名前の競合が発生します。Importing a module causes a name conflict when commands in the module have the same names as commands or items in the session.

名前が競合していると、コマンドが隠されたり、置換されたりします。Name conflicts can result in commands being hidden or replaced.

[非表示]Hidden

コマンド名を入力して実行されるコマンドと違う場合、コマンドが隠されています。ただし、別の方法でコマンドを実行できます。たとえば、出所のモジュールまたはスナップインの名前でコマンド名を修飾します。A command is hidden when it is not the command that runs when you type the command name, but you can run it by using another method, such as by qualifying the command name with the name of the module or snap-in in which it originated.

置換後Replaced

実行できなければコマンドは置換されています。同じ名前のコマンドで上書きされたためです。A command is replaced when you cannot run it because it has been overwritten by a command with the same name. 競合を引き起こしたモジュールを削除しても、セッションを再起動しなければ、置換されたコマンドは実行できません。Even when you remove the module that caused the conflict, you cannot run a replaced command unless you restart the session.

Import-Module では、現在のセッションのコマンドを非表示にしたり置換したりするコマンドを追加できます。Import-Module might add commands that hide and replace commands in the current session. また、セッションのコマンドはモジュールが追加したコマンドを隠すことがあります。Also, commands in your session can hide commands that the module added.

名前の競合を検出するには、コマンドレットの All パラメーターを使用し Get-Command ます。To detect name conflicts, use the All parameter of the Get-Command cmdlet. PowerShell 3.0 以降では、コマンド名を入力したときに実行される Get-Command コマンドのみが取得されます。Beginning in PowerShell 3.0, Get-Command gets only that commands that run when you type the command name. All パラメーターは、セッション内の特定の名前を持つすべてのコマンドを取得します。The All parameter gets all commands with the specific name in the session.

名前の競合を回避するには、コマンドレットの NoClobber パラメーターまたは Prefix パラメーターを使用し Import-Module ます。To prevent name conflicts, use the NoClobber or Prefix parameters of the Import-Module cmdlet. Prefix パラメーターは、インポートされたコマンドの名前にプレフィックスを追加して、セッション内で一意になるようにします。The Prefix parameter adds a prefix to the names of imported commands so that they are unique in the session. NoClobber パラメーターでは、セッションの既存のコマンドを非表示にしたり、置き換えたりするコマンドはインポートされません。The NoClobber parameter does not import any commands that would hide or replace existing commands in the session.

また、の Aliasコマンドレット関数、および Variable パラメーターを使用して、 Import-Module インポートするコマンドだけを選択したり、セッションで名前の競合を引き起こすコマンドを除外したりすることもできます。You can also use the Alias, Cmdlet, Function, and Variable parameters of Import-Module to select only the commands that you want to import, and you can exclude commands that cause name conflicts in your session.

モジュールの作成者は、モジュールマニフェストの Defaultcommandprefix プロパティを使用して、すべてのコマンド名に既定のプレフィックスを追加することで、名前の競合を防ぐことができます。Module authors can prevent name conflicts by using the DefaultCommandPrefix property of the module manifest to add a default prefix to all command names. Prefix パラメーターの値は、 defaultcommandprefix の値よりも優先されます。The value of the Prefix parameter takes precedence over the value of DefaultCommandPrefix.

コマンドが隠れているとしても、出所のモジュールまたはスナップインの名前でコマンド名を修飾すればコマンドを実行できます。Even if a command is hidden, you can run it by qualifying the command name with the name of the module or snap-in in which it originated.

PowerShell コマンドの優先順位規則は、セッションに同じ名前のコマンドが含まれている場合に実行されるコマンドを決定します。The PowerShell command precedence rules determine which command runs when the session includes commands with the same name.

たとえば、セッションに同じ名前の関数とコマンドレットが含まれている場合、PowerShell は既定で関数を実行します。For example, when a session includes a function and a cmdlet with the same name, PowerShell runs the function by default. セッションに種類と名前が同じコマンドが含まれるとき、たとえば、2 つのコマンドレットの名前が同じ場合、既定では追加された日が新しいほうのコマンドが実行されます。When the session includes commands of the same type with the same name, such as two cmdlets with the same name, by default, it runs the most recently added command.

優先順位の規則の説明や、非表示のコマンドを実行する手順などの詳細については、「 about_Command_Precedence」を参照してください。For more information, including an explanation of the precedence rules and instructions for running hidden commands, see about_Command_Precedence.

モジュールとスナップインModules and Snap-ins

モジュールとスナップインからセッションにコマンドを追加できます。モジュールでは、コマンドレット、プロバイダー、関数、変数、エイリアス、PowerShell ドライブなどの項目を含む、すべての種類のコマンドを追加できます。You can add commands to your session from modules and snap-ins. Modules can add all types of commands, including cmdlets, providers, and functions, and items, such as variables, aliases, and PowerShell drives. スナップインはコマンドレットとプロバイダーのみを追加できます。Snap-ins can add only cmdlets and providers.

モジュールまたはスナップインをセッションから削除する前に、次のコマンドを利用し、削除するコマンドを決定します。Before removing a module or snap-in from your session, use the following commands to determine which commands will be removed.

セッション内のコマンドレットのソースを検索するには、次のコマンド形式を使用します。To find the source of a cmdlet in your session, use the following command format:

Get-Command <cmdlet-name> | Format-List -Property verb,noun,pssnapin,module

たとえば、コマンドレットのソースを検索するには、次のように Get-Date 入力します。For example, to find the source of the Get-Date cmdlet, type:

Get-Command Get-Date | Format-List -Property verb,noun,module

PowerShell スナップインの詳細については、「 about_PSSnapins」を参照してください。For more information about PowerShell snap-ins, see about_PSSnapins.

モジュールによってエクスポートされるコマンドは、PowerShell コマンドの名前付け規則に従う必要があります。The commands that a module exports should follow the PowerShell command naming rules. インポートしたモジュールが、名前に許可されていない動詞を持つコマンドレットまたは関数をエクスポートすると、 Import-Module コマンドレットは次の警告メッセージを表示します。If the module that you import exports cmdlets or functions that have unapproved verbs in their names, the Import-Module cmdlet displays the following warning message.

警告: インポートされたコマンド名には、検出できない可能性がある未承認の動詞が含まれています。WARNING: Some imported command names include unapproved verbs which might make them less discoverable. 詳細については Verbose パラメーターを使用するか、「Get-Verb」と入力して承認されている動詞の一覧を参照してください。Use the Verbose parameter for more detail or type Get-Verb to see the list of approved verbs.

このメッセージは、単なる警告です。This message is only a warning. 実際には、非準拠のコマンドを含む、すべてのモジュールがインポートされます。The complete module is still imported, including the non-conforming commands. モジュール ユーザーにメッセージが表示されますが、名前付けの問題はモジュール作成者が解決する必要があります。Although the message is displayed to module users, the naming problem should be fixed by the module author.

警告メッセージを表示しないようにするには、コマンドレットの DisableNameChecking パラメーターを使用し Import-Module ます。To suppress the warning message, use the DisableNameChecking parameter of the Import-Module cmdlet.

組み込みのモジュールおよびスナップインBuilt-in Modules and Snap-ins

Powershell 2.0 および powershell 3.0 以降の旧形式のホストプログラムでは、powershell と共にインストールされるコアコマンドは、すべての PowerShell セッションに自動的に追加されるスナップインにパッケージ化されます。In PowerShell 2.0 and in older-style host programs in PowerShell 3.0 and later, the core commands that are installed with PowerShell are packaged in snap-ins that are added automatically to every PowerShell session.

PowerShell 3.0 以降では、初期セッション状態 API を実装するホストプログラムに対して、 InitialSessionState.CreateDefault2 既定ではすべてのセッションに対して、powershell が追加されます。Beginning in PowerShell 3.0, for host programs that implement the InitialSessionState.CreateDefault2 initial session state API the Microsoft.PowerShell.Core snap-in is added to every session by default. モジュールは最初の使用で自動的に読み込まれます。Modules are loaded automatically on first-use.

注意

コマンドレットを使用して開始されたセッションを含むリモートセッション New-PSSession は、組み込みのコマンドがスナップインにパッケージ化されている古い形式のセッションです。Remote sessions, including sessions that are started by using the New-PSSession cmdlet, are older-style sessions in which the built-in commands are packaged in snap-ins.

次のモジュール (またはスナップイン) は、PowerShell と共にインストールされます。The following modules (or snap-ins) are installed with PowerShell.

  • CimCmdletsCimCmdlets
  • Microsoft.PowerShell.ArchiveMicrosoft.PowerShell.Archive
  • Microsoft.PowerShell.CoreMicrosoft.PowerShell.Core
  • Microsoft.PowerShell.DiagnosticsMicrosoft.PowerShell.Diagnostics
  • Microsoft.PowerShell.HostMicrosoft.PowerShell.Host
  • Microsoft.PowerShell.ManagementMicrosoft.PowerShell.Management
  • Microsoft.PowerShell.ODataUtilsMicrosoft.PowerShell.ODataUtils
  • Microsoft.PowerShell.SecurityMicrosoft.PowerShell.Security
  • Microsoft.PowerShell.UtilityMicrosoft.PowerShell.Utility
  • Microsoft.WSMan.ManagementMicrosoft.WSMan.Management
  • PackageManagementPackageManagement
  • PowerShellGetPowerShellGet
  • PSDesiredStateConfigurationPSDesiredStateConfiguration
  • PSDiagnosticsPSDiagnostics
  • PSScheduledJobPSScheduledJob
  • PSWorkflowPSWorkflow
  • PSWorkflowUtilityPSWorkflowUtility
  • ISEISE

モジュールイベントのログ記録Logging Module Events

PowerShell 3.0 以降では、PowerShell モジュールおよびスナップイン内のコマンドレットと関数の実行イベントを記録できます。これを行うには、モジュールとスナップインの Logpipelineexecutiondetails プロパティをに設定し $True ます。Beginning in PowerShell 3.0, you can record execution events for the cmdlets and functions in PowerShell modules and snap-ins by setting the LogPipelineExecutionDetails property of modules and snap-ins to $True. また、グループポリシー設定を使用してモジュールのログ記録を有効にし、すべての PowerShell セッションでモジュールのログ記録を有効にすることもできます。You can also use a Group Policy setting, Turn on Module Logging, to enable module logging in all PowerShell sessions. 詳細については、「 about_EventLogs 」および「 about_Group_Policy_Settings」を参照してください。For more information, see about_EventLogs and about_Group_Policy_Settings.

参照See Also

about_Command_Precedenceabout_Command_Precedence

about_Group_Policy_Settingsabout_Group_Policy_Settings

about_PSSnapinsabout_PSSnapins

Get-CommandGet-Command

Get-HelpGet-Help

Get-ModuleGet-Module

Import-ModuleImport-Module

Remove-ModuleRemove-Module