Import-Module

現在のセッションにモジュールを追加します。

構文

Import-Module
      [-Global]
      [-Prefix <String>]
      [-Name] <String[]>
      [-Function <String[]>]
      [-Cmdlet <String[]>]
      [-Variable <String[]>]
      [-Alias <String[]>]
      [-Force]
      [-SkipEditionCheck]
      [-PassThru]
      [-AsCustomObject]
      [-MinimumVersion <Version>]
      [-MaximumVersion <String>]
      [-RequiredVersion <Version>]
      [-ArgumentList <Object[]>]
      [-DisableNameChecking]
      [-NoClobber]
      [-Scope <String>] 
      [<CommonParameters>]
Import-Module
      [-Global]
      [-Prefix <String>]
      [-Name] <String[]>
      [-Function <String[]>]
      [-Cmdlet <String[]>]
      [-Variable <String[]>]
      [-Alias <String[]>]
      [-Force]
      [-SkipEditionCheck]
      [-PassThru]
      [-AsCustomObject]
      [-MinimumVersion <Version>]
      [-MaximumVersion <String>]
      [-RequiredVersion <Version>]
      [-ArgumentList <Object[]>]
      [-DisableNameChecking]
      [-NoClobber]
      [-Scope <String>]
      -PSSession <PSSession> 
      [<CommonParameters>]
Import-Module
      [-Global]
      [-Prefix <String>]
      [-Name] <String[]>
      [-Function <String[]>]
      [-Cmdlet <String[]>]
      [-Variable <String[]>]
      [-Alias <String[]>]
      [-Force]
      [-SkipEditionCheck]
      [-PassThru]
      [-AsCustomObject]
      [-MinimumVersion <Version>]
      [-MaximumVersion <String>]
      [-RequiredVersion <Version>]
      [-ArgumentList <Object[]>]
      [-DisableNameChecking]
      [-NoClobber]
      [-Scope <String>]
      -CimSession <CimSession>
      [-CimResourceUri <Uri>]
      [-CimNamespace <String>]
      [<CommonParameters>]
Import-Module
      [-Name] <string[]>
      -UseWindowsPowerShell
      [-Global]
      [-Prefix <string>]
      [-Function <string[]>]
      [-Cmdlet <string[]>]
      [-Variable <string[]>]
      [-Alias <string[]>]
      [-Force]
      [-PassThru]
      [-AsCustomObject]
      [-MinimumVersion <version>]
      [-MaximumVersion <string>]
      [-RequiredVersion <version>]
      [-ArgumentList <Object[]>]
      [-DisableNameChecking]
      [-NoClobber]
      [-Scope <string>]
      [<CommonParameters>]
Import-Module
      [-Global]
      [-Prefix <String>]
      [-FullyQualifiedName] <ModuleSpecification[]>
      [-Function <String[]>]
      [-Cmdlet <String[]>]
      [-Variable <String[]>]
      [-Alias <String[]>]
      [-Force]
      [-SkipEditionCheck]
      [-PassThru]
      [-AsCustomObject]
      [-ArgumentList <Object[]>]
      [-DisableNameChecking]
      [-NoClobber]
      [-Scope <String>] 
      [<CommonParameters>]
Import-Module
      [-Global]
      [-Prefix <String>]
      [-FullyQualifiedName] <ModuleSpecification[]>
      [-Function <String[]>]
      [-Cmdlet <String[]>]
      [-Variable <String[]>]
      [-Alias <String[]>]
      [-Force]
      [-SkipEditionCheck]
      [-PassThru]
      [-AsCustomObject]
      [-ArgumentList <Object[]>]
      [-DisableNameChecking]
      [-NoClobber]
      [-Scope <String>]
      -PSSession <PSSession> 
      [<CommonParameters>]
Import-Module
      [-FullyQualifiedName] <ModuleSpecification[]>
      -UseWindowsPowerShell
      [-Global]
      [-Prefix <string>]
      [-Function <string[]>]
      [-Cmdlet <string[]>]
      [-Variable <string[]>]
      [-Alias <string[]>]
      [-Force]
      [-PassThru]
      [-AsCustomObject]
      [-ArgumentList <Object[]>]
      [-DisableNameChecking]
      [-NoClobber]
      [-Scope <string>]
      [<CommonParameters>]
Import-Module
      [-Global]
      [-Prefix <String>]
      [-Assembly] <Assembly[]>
      [-Function <String[]>]
      [-Cmdlet <String[]>]
      [-Variable <String[]>]
      [-Alias <String[]>]
      [-Force]
      [-SkipEditionCheck]
      [-PassThru]
      [-AsCustomObject]
      [-ArgumentList <Object[]>]
      [-DisableNameChecking]
      [-NoClobber]
      [-Scope <String>] 
      [<CommonParameters>]
Import-Module
      [-Global]
      [-Prefix <String>]
      [-Function <String[]>]
      [-Cmdlet <String[]>]
      [-Variable <String[]>]
      [-Alias <String[]>]
      [-Force]
      [-SkipEditionCheck]
      [-PassThru]
      [-AsCustomObject]
      [-ModuleInfo] <PSModuleInfo[]>
      [-ArgumentList <Object[]>]
      [-DisableNameChecking]
      [-NoClobber]
      [-Scope <String>] 
      [<CommonParameters>]

説明

コマンドレットは Import-Module 、現在のセッションに 1 つ以上のモジュールを追加します。 PowerShell 3.0 以降では、モジュール内のコマンドまたはプロバイダーを使用すると、インストールされているモジュールがセッションに自動的にインポートされます。 ただし、 コマンドを Import-Module 使用してモジュールをインポートすることはできます。 ユーザー設定変数を使用して、モジュールの自動インポートを $PSModuleAutoloadingPreference 無効にすることができます。 変数の $PSModuleAutoloadingPreference 詳細については、「 about_Preference_Variables」を参照してください。

モジュールは、PowerShell で使用できるメンバーを含むパッケージです。 メンバーには、コマンドレット、プロバイダー、スクリプト、関数、変数、およびその他のツールとファイルが含まれます。 モジュールをインポートすると、モジュールのメンバーをセッションで使用できます。 モジュールの詳細については、「 about_Modules」を参照してください。

既定では、 Import-Module モジュールによってエクスポートされるすべてのメンバーがインポートされますが、 AliasFunctionCmdletおよび Variable パラメーターを使用して、インポートするメンバーを制限できます。 NoClobber パラメーターを使用すると、現在のImport-Moduleセッションのメンバーと同じ名前のメンバーをインポートできなくなります。

Import-Module は、現在のセッションにのみモジュールをインポートします。 新しいセッションごとにモジュールをインポートするには、PowerShell プロファイルにコマンドを追加 Import-Module します。 プロファイルの詳細については、「about_Profiles」を参照してください。

リモート コンピューターで PSSession を作成することで、PowerShell リモート処理が有効になっているリモート Windows コンピューターを管理できます。 次に、 の Import-ModulePSSession パラメーターを使用して、リモート コンピューターにインストールされているモジュールをインポートします。 現在のセッションでインポートされたコマンドを使用すると、コマンドはリモート コンピューターで暗黙的に実行されます。

Windows PowerShell 3.0 以降では、 を使用Import-Moduleして共通情報モデル (CIM) モジュールをインポートできます。 CIM モジュールは、コマンドレット定義 XML (CDXML) ファイルでコマンドレットを定義します。 この機能を使用すると、C++ で記述されたコマンドレットなど、非マネージド コード アセンブリに実装されているコマンドレットを使用できます。

Windows オペレーティング システムを実行していないコンピューターを含め、PowerShell リモート処理が有効になっていないリモート コンピューターの場合は、 の Import-ModuleCIMSession パラメーターを使用して、リモート コンピューターから CIM モジュールをインポートできます。 インポートされたコマンドは、リモート コンピューター上で暗黙的に実行されます。 CIMSession は、リモート コンピューター上の Windows Management Instrumentation (WMI) への接続です。

例 1: モジュールのメンバーを現在のセッションにインポートする

次の使用例は、 PSDiagnostics モジュールのメンバーを現在のセッションにインポートします。

Import-Module -Name PSDiagnostics

例 2: モジュール パスで指定されたすべてのモジュールをインポートする

次の使用例は、環境変数で指定されたパス内の使用可能なすべてのモジュールを $env:PSModulePath 現在のセッションにインポートします。

Get-Module -ListAvailable | Import-Module

例 3: 複数のモジュールのメンバーを現在のセッションにインポートする

次の使用例は、 PSDiagnostics モジュールと Dism モジュールのメンバーを現在のセッションにインポートします。

$m = Get-Module -ListAvailable PSDiagnostics, Dism
Import-Module -ModuleInfo $m

コマンドレットはGet-Module、PSDiagnostics モジュールと Dism モジュールを取得し、オブジェクトを変数に$m保存します。 ListAvailable パラメーターは、まだセッションにインポートされていないモジュールを取得するときに必要です。

ModuleInfo パラメーター Import-Module は、モジュールを現在のセッションにインポートするために使用されます。

例 4: パスで指定されたすべてのモジュールをインポートする

この例では、明示的なパスを使用して、インポートするモジュールを識別します。

Import-Module -Name c:\ps-test\modules\test -Verbose

VERBOSE: Loading module from path 'C:\ps-test\modules\Test\Test.psm1'.
VERBOSE: Exporting function 'my-parm'.
VERBOSE: Exporting function 'Get-Parameter'.
VERBOSE: Exporting function 'Get-Specification'.
VERBOSE: Exporting function 'Get-SpecDetails'.

Verbose パラメーターを使用すると、Import-Moduleモジュールの読み込み時に進行状況が報告されます。 VerbosePassThru、または AsCustomObject パラメーターがないと、Import-Moduleモジュールをインポートするときに出力は生成されません。

例 5: セッションにインポートされるモジュール メンバーを制限する

この例では、セッションにインポートするモジュール メンバーと、このコマンドがセッションに与える影響を制限する方法を示します。 Function パラメーターは、モジュールからインポートされるメンバーを制限します。 AliasVariableおよび Cmdlet パラメーターを使用して、モジュールがインポートする他のメンバーを制限することもできます。

コマンドレットはGet-Module、PSDiagnostics モジュールを表す オブジェクトを取得します。 ExportedCmdlets プロパティは、すべてインポートされていない場合でも、モジュールがエクスポートするすべてのコマンドレットを一覧表示します。

Import-Module PSDiagnostics -Function Disable-PSTrace, Enable-PSTrace
(Get-Module PSDiagnostics).ExportedCommands

Key                          Value
---                          -----
Disable-PSTrace              Disable-PSTrace
Disable-PSWSManCombinedTrace Disable-PSWSManCombinedTrace
Disable-WSManTrace           Disable-WSManTrace
Enable-PSTrace               Enable-PSTrace
Enable-PSWSManCombinedTrace  Enable-PSWSManCombinedTrace
Enable-WSManTrace            Enable-WSManTrace
Get-LogProperties            Get-LogProperties
Set-LogProperties            Set-LogProperties
Start-Trace                  Start-Trace
Stop-Trace                   Stop-Trace

Get-Command -Module PSDiagnostics

CommandType     Name                 Version    Source
-----------     ----                 -------    ------
Function        Disable-PSTrace      6.1.0.0    PSDiagnostics
Function        Enable-PSTrace       6.1.0.0    PSDiagnostics

コマンドレットの Module パラメーターを Get-Command 使用すると、 PSDiagnostics モジュールからインポートされたコマンドが表示されます。 結果は、 コマンドレットと Enable-PSTrace コマンドレットのみがDisable-PSTraceインポートされたことを確認します。

例 6: モジュールのメンバーをインポートし、プレフィックスを追加する

次の使用例は、 PSDiagnostics モジュールを現在のセッションにインポートし、メンバー名にプレフィックスを追加して、プレフィックス付きのメンバー名を表示します。 の Import-ModulePrefix パラメーターは、xモジュールからインポートされるすべてのメンバーにプレフィックスを追加します。 プレフィックスは、現在のセッションのメンバーにのみ適用されます。 モジュールは変更されません。 PassThru パラメーターは、インポートされたモジュールを表すモジュール オブジェクトを返します。

Import-Module PSDiagnostics -Prefix x -PassThru

ModuleType Version    Name               ExportedCommands
---------- -------    ----               ----------------
Script     6.1.0.0    PSDiagnostics      {Disable-xPSTrace, Disable-xPSWSManCombinedTrace, Disable-xW...

Get-Command -Module PSDiagnostics

CommandType     Name                                   Version    Source
-----------     ----                                   -------    ------
Function        Disable-xPSTrace                       6.1.0.0    PSDiagnostics
Function        Disable-xPSWSManCombinedTrace          6.1.0.0    PSDiagnostics
Function        Disable-xWSManTrace                    6.1.0.0    PSDiagnostics
Function        Enable-xPSTrace                        6.1.0.0    PSDiagnostics
Function        Enable-xPSWSManCombinedTrace           6.1.0.0    PSDiagnostics
Function        Enable-xWSManTrace                     6.1.0.0    PSDiagnostics
Function        Get-xLogProperties                     6.1.0.0    PSDiagnostics
Function        Set-xLogProperties                     6.1.0.0    PSDiagnostics
Function        Start-xTrace                           6.1.0.0    PSDiagnostics
Function        Stop-xTrace                            6.1.0.0    PSDiagnostics

Get-Command は、モジュールからインポートされたメンバーを取得します。 出力から、モジュール メンバーにプレフィックスが正しく追加されたことがわかります。

例 7: カスタム オブジェクトを取得して使用する

この例では、 によって Import-Module返されるカスタム オブジェクトを取得して使用する方法を示します。

カスタム オブジェクトには、インポートされた各モジュール メンバーを表す合成メンバーが含まれます。 たとえば、モジュールのコマンドレットと関数は、カスタム オブジェクトのスクリプト メソッドに変換されます。

カスタム オブジェクトは、スクリプト作成に役立ちます。 インポートされた複数のオブジェクトの名前が同じである場合にも便利です。 オブジェクトのスクリプト メソッドを使用すると、モジュール名を含め、インポートされたメンバーの完全修飾名を指定した場合と同じ効果が得られます。

AsCustomObject パラメーターは、スクリプト モジュールをインポートする場合にのみ使用できます。 スクリプト モジュールとして使用できるモジュールを決定するには、 を使用 Get-Module します。

Get-Module -List | Format-Table -Property Name, ModuleType -AutoSize

Name          ModuleType
----          ----------
Show-Calendar     Script
BitsTransfer    Manifest
PSDiagnostics   Manifest
TestCmdlets       Script
...

$a = Import-Module -Name Show-Calendar -AsCustomObject -Passthru
$a | Get-Member

TypeName: System.Management.Automation.PSCustomObject
Name          MemberType   Definition
----          ----------   ----------
Equals        Method       bool Equals(System.Object obj)
GetHashCode   Method       int GetHashCode()
GetType       Method       type GetType()
ToString      Method       string ToString()
Show-Calendar ScriptMethod System.Object Show-Calendar();

$a."Show-Calendar"()

スクリプト モジュールはShow-Calendar、AsCustomObject パラメーターを使用してカスタム オブジェクトを要求し、PassThru パラメーターを使用してオブジェクトを返します。 結果のカスタム オブジェクトが 変数に $a 保存されます。

変数は $a コマンドレットに Get-Member パイプされ、保存されたオブジェクトのプロパティとメソッドが表示されます。 出力にはスクリプト メソッドが Show-Calendar 表示されます。

スクリプト メソッドを Show-Calendar 呼び出すには、名前にハイフンが含まれているため、メソッド名を引用符で囲む必要があります。

例 8: モジュールを同じセッションに再インポートする

この例では、モジュールを同じセッションに再インポートするときに、 の Import-ModuleForce パラメーターを使用する方法を示します。 Force パラメーターは、読み込まれたモジュールを削除してから、再度インポートします。

Import-Module PSDiagnostics
Import-Module PSDiagnostics -Force -Prefix PS

最初のコマンドは 、PSDiagnostics モジュールを インポートします。 2 番目のコマンドは、このモジュールを今度は Prefix パラメーターを使用してインポートします。

Force パラメーターを指定しない場合、セッションには各 PSDiagnostics コマンドレットの 2 つのコピーが含まれます。1 つは標準名で、もう 1 つはプレフィックス付きの名前です。

例 9: インポートされたコマンドによって非表示にされたコマンドを実行する

この例は、インポートされたコマンドで非表示になったコマンドを実行する方法を示しています。 TestModule モジュールには、年と日を返す という名前Get-Dateの関数が含まれています。

Get-Date

Thursday, August 15, 2019 2:26:12 PM

Import-Module TestModule
Get-Date

19227

Get-Command Get-Date -All | Format-Table -Property CommandType, Name, ModuleName -AutoSize

CommandType     Name         ModuleName
-----------     ----         ----------
Function        Get-Date     TestModule
Cmdlet          Get-Date     Microsoft.PowerShell.Utility

Microsoft.PowerShell.Utility\Get-Date

Thursday, August 15, 2019 2:28:31 PM

最初 Get-Date のコマンドレットは、現在の日付を持つ DateTime オブジェクトを返します。 TestModule モジュールをインポートした後、Get-Dateその年の年と日を返します。

All パラメーター Get-Command を使用すると、 Get-Date セッション内のすべてのコマンドが表示されます。 結果は、セッションに 2 つの Get-Date コマンド ( TestModule モジュールの関数と Microsoft.PowerShell.Utility モジュールのコマンドレット) があることを示しています。

関数はコマンドレットよりも優先されるため、 Get-Date コマンドレットの代わりに TestModule モジュールの関数が Get-Date 実行されます。 の元の Get-Dateバージョンを実行するには、モジュール名でコマンド名を修飾する必要があります。

PowerShell でのコマンドの優先順位の詳細については、「 about_Command_Precedence」を参照してください。

例 10: モジュールの最小バージョンをインポートする

次の使用例は、 PowerShellGet モジュールをインポートします。 の MinimumVersion パラメーター Import-Module を使用して、モジュールのバージョン 2.0.0 以上のみをインポートします。

Import-Module -Name PowerShellGet -MinimumVersion 2.0.0

RequiredVersion パラメーターを使用してモジュールの特定のバージョンをインポートしたり、キーワード (keyword)の Module パラメーターと Version パラメーターを#Requires使用してスクリプト内のモジュールの特定のバージョンを要求したりすることもできます。

例 11: 完全修飾名を使用してインポートする

次の使用例は、 FullyQualifiedName を使用してモジュールの特定のバージョンをインポートします。

PS> Get-Module -ListAvailable PowerShellGet | Select-Object Name, Version

Name          Version
----          -------
PowerShellGet 2.2.1
PowerShellGet 2.1.3
PowerShellGet 2.1.2
PowerShellGet 1.0.0.1

PS> Import-Module -FullyQualifiedName @{ModuleName = 'PowerShellGet'; ModuleVersion = '2.1.3' }

例 12: 完全修飾パスを使用してインポートする

次の使用例は、完全修飾パスを使用してモジュールの特定のバージョンをインポートします。

PS> Get-Module -ListAvailable PowerShellGet | Select-Object Path

Path
----
C:\Program Files\PowerShell\Modules\PowerShellGet\2.2.1\PowerShellGet.psd1
C:\program files\powershell\6\Modules\PowerShellGet\PowerShellGet.psd1
C:\Program Files\WindowsPowerShell\Modules\PowerShellGet\2.1.2\PowerShellGet.psd1
C:\Program Files\WindowsPowerShell\Modules\PowerShellGet\1.0.0.1\PowerShellGet.psd1

PS> Import-Module -Name 'C:\Program Files\PowerShell\Modules\PowerShellGet\2.2.1\PowerShellGet.psd1'

例 13: リモート コンピューターからモジュールをインポートする

この例では、 コマンドレットを使用 Import-Module してリモート コンピューターからモジュールをインポートする方法を示します。 このコマンドでは、PowerShell の暗黙的なリモート処理機能を使用します。

別のセッションからモジュールをインポートすると、現在のセッションでコマンドレットを使用することができます。 ただし、コマンドレットを使用するコマンドはリモート セッションで実行されます。

$s = New-PSSession -ComputerName Server01
Get-Module -PSSession $s -ListAvailable -Name NetSecurity

ModuleType Name             ExportedCommands
---------- ----             ----------------
Manifest   NetSecurity      {New-NetIPsecAuthProposal, New-NetIPsecMainModeCryptoProposal, New-Ne...

Import-Module -PSSession $s -Name NetSecurity
Get-Command -Module NetSecurity -Name Get-*Firewall*

CommandType     Name                                               ModuleName
-----------     ----                                               ----------
Function        Get-NetFirewallAddressFilter                       NetSecurity
Function        Get-NetFirewallApplicationFilter                   NetSecurity
Function        Get-NetFirewallInterfaceFilter                     NetSecurity
Function        Get-NetFirewallInterfaceTypeFilter                 NetSecurity
Function        Get-NetFirewallPortFilter                          NetSecurity
Function        Get-NetFirewallProfile                             NetSecurity
Function        Get-NetFirewallRule                                NetSecurity
Function        Get-NetFirewallSecurityFilter                      NetSecurity
Function        Get-NetFirewallServiceFilter                       NetSecurity
Function        Get-NetFirewallSetting                             NetSecurity

Get-NetFirewallRule -DisplayName "Windows Remote Management*" |
  Format-Table -Property DisplayName, Name -AutoSize

DisplayName                                              Name
-----------                                              ----
Windows Remote Management (HTTP-In)                      WINRM-HTTP-In-TCP
Windows Remote Management (HTTP-In)                      WINRM-HTTP-In-TCP-PUBLIC
Windows Remote Management - Compatibility Mode (HTTP-In) WINRM-HTTP-Compat-In-TCP

New-PSSession は、コンピューターへのリモート セッション (PSSession) を Server01 作成します。 PSSession は 変数に$s保存されます。

PSSession パラメーターを使用してを実行Get-Moduleすると、NetSecurity モジュールがインストールされ、リモート コンピューターで使用できる状態であることが示されます。 このコマンドは、 コマンドレットを Invoke-Command 使用してリモート セッションでコマンドを実行 Get-Module することと同じです。 例:

Invoke-Command $s {Get-Module -ListAvailable -Name NetSecurity

PSSession パラメーターを指定して を実行するとImport-ModuleNetSecurity モジュールがリモート コンピューターから現在のセッションにインポートされます。 コマンドレットはGet-CommandNetSecurity モジュールから で始まりGet、インクルードFirewallするコマンドを取得します。 出力は、モジュールとそのコマンドレットが現在のセッションにインポートされたことを確認します。

次に、コマンドレットは Get-NetFirewallRule コンピューター上の Windows リモート管理ファイアウォール規則を Server01 取得します。 これは、 コマンドレットを Invoke-Command 使用してリモート セッションで実行 Get-NetFirewallRule することと同じです。

例 14: Windows オペレーティング システムを使用せずにリモート コンピューター上の記憶域を管理する

この例では、コンピューターの管理者がモジュール検出 WMI プロバイダーをインストールしました。これにより、プロバイダー用に設計された CIM コマンドを使用できます。

コマンドレットは New-CimSession 、RSDGF03 という名前のリモート コンピューターにセッションを作成します。 セッションは、リモート コンピューター上の WMI サービスに接続します。 CIM セッションは 変数に $cs 保存されます。 Import-Moduleでは、 の $csCimSession を使用して、コンピューターからストレージ CIM モジュールをRSDGF03インポートします。

コマンドレットにはGet-CommandGet-DiskStorage モジュールの コマンドが表示されます。 CIM モジュールをローカル セッションにインポートすると、PowerShell は各コマンドの CDXML ファイルを PowerShell スクリプトに変換します。これは、ローカル セッションの関数として表示されます。

Get-Diskはローカル セッションで入力されますが、コマンドレットはインポート元のリモート コンピューターで暗黙的に実行されます。 コマンドは、リモート コンピューターからローカル セッションにオブジェクトを返します。

$cs = New-CimSession -ComputerName RSDGF03
Import-Module -CimSession $cs -Name Storage
# Importing a CIM module, converts the CDXML files for each command into
# PowerShell scripts. These appear as functions in the local session.
Get-Command Get-Disk

CommandType     Name                  ModuleName
-----------     ----                  ----------
Function        Get-Disk              Storage

# Use implicit remoting to query disks on the remote computer from which the
# module was imported.
Get-Disk

Number Friendly Name           OperationalStatus  Total Size Partition Style
------ -------------           -----------------  ---------- ---------------
0      Virtual HD ATA Device   Online                  40 GB MBR

パラメーター

-Alias

このコマンドレットがモジュールから現在のセッションにインポートするエイリアスを指定します。 エイリアスのコンマ区切りのリストを入力します。 ワイルドカード文字を使用できます。

一部のモジュールは、モジュールをインポートすると、選択されたエイリアスをセッションに自動的にエクスポートします。 このパラメーターを使用すると、エクスポートされたエイリアスの中から選択できます。

Type:String[]
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:True

-ArgumentList

コマンド中にスクリプト モジュールに渡される引数またはパラメーター値の配列を Import-Module 指定します。 このパラメーターは、スクリプト モジュールをインポートする場合にのみ有効です。

ArgumentList パラメーターは、そのエイリアス args を使用して参照することもできます。 ArgumentList の動作の詳細については、「about_Splatting」を参照してください。

Type:Object[]
Aliases:Args
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-AsCustomObject

このコマンドレットは、インポートされたモジュール メンバーを表すメンバーを持つカスタム オブジェクトを返します。 このパラメーターは、スクリプト モジュールに対してのみ有効です。

AsCustomObject パラメーターを使用すると、Import-Moduleモジュール メンバーがセッションにインポートされ、PSModuleInfo オブジェクトではなく PSCustomObject オブジェクトが返されます。 カスタム オブジェクトを変数に保存し、メンバー アクセス列挙を使用してメンバーを呼び出すことができます。

Type:SwitchParameter
Position:Named
Default value:False
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-Assembly

アセンブリ オブジェクトの配列を指定します。 このコマンドレットは、指定したアセンブリ オブジェクトに実装されているコマンドレットとプロバイダーをインポートします。 アセンブリ オブジェクトが保存されている変数か、アセンブリ オブジェクトを作成するコマンドを入力します。 アセンブリ オブジェクトを に Import-Moduleパイプすることもできます。

このパラメーターを使用すると、指定されたアセンブリによって実装されたコマンドレットとプロバイダーのみがインポートされます。 モジュールに他のファイルが含まれている場合、それらはインポートされず、モジュールの重要なメンバーが見つからない可能性があります。 このパラメーターは、モジュールのデバッグとテスト、またはモジュール作成者から使用するように指示された場合に使用します。

Type:Assembly[]
Position:0
Default value:None
Required:True
Accept pipeline input:True
Accept wildcard characters:False

-CimNamespace

CIM モジュールを公開する代替 CIM プロバイダーの名前空間を指定します。 既定値は、モジュール検出用の WMI プロバイダーの名前空間です。

Windows オペレーティング システムを実行していないコンピューターやデバイスから CIM モジュールをインポートするには、このパラメーターを使用します。

このパラメーターは Windows PowerShell 3.0 で導入されました。

Type:String
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-CimResourceUri

CIM モジュールの代替の場所を指定します。 既定値は、リモート コンピューター上のモジュール探索 WMI プロバイダーのリソース URI です。

Windows オペレーティング システムを実行していないコンピューターやデバイスから CIM モジュールをインポートするには、このパラメーターを使用します。

このパラメーターは Windows PowerShell 3.0 で導入されました。

Type:Uri
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-CimSession

リモート コンピューター上の CIM セッションを指定します。 CIM セッションを含む変数、または CIM セッションを取得するコマンド ( Get-CimSession コマンドなど) を入力します。

Import-Module では、CIM セッション接続を使用して、リモート コンピューターから現在のセッションにモジュールをインポートします。 現在のセッションでインポートされたモジュールのコマンドを使用すると、コマンドはリモート コンピューターで実行されます。

このパラメーターを使用すると、Windows オペレーティング システムを実行していないコンピューターとデバイス、および PowerShell を使用しているが PowerShell リモート処理が有効になっていない Windows コンピューターからモジュールをインポートできます。

このパラメーターは Windows PowerShell 3.0 で導入されました。

Type:CimSession
Position:Named
Default value:None
Required:True
Accept pipeline input:False
Accept wildcard characters:False

-Cmdlet

このコマンドレットがモジュールから現在のセッションにインポートするコマンドレットの配列を指定します。 ワイルドカード文字を使用できます。

一部のモジュールは、モジュールをインポートすると、選択されたコマンドレットをセッションに自動的にエクスポートします。 このパラメーターを使用すると、エクスポートされたコマンドレットの中から選択できます。

Type:String[]
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:True

-DisableNameChecking

コマンドレットまたは関数の名前に未承認の動詞または禁止文字が含まれている場合に警告するメッセージが、このコマンドレットによって抑制されることを示します。

既定では、インポートするモジュールが、名前に未承認の動詞を含むコマンドレットまたは関数をエクスポートすると、PowerShell は次の警告メッセージを表示します。

警告: 一部のインポートされたコマンド名には、未承認の動詞が含まれており、見つけにくい場合があります。 詳細については Verbose パラメーターを使用するか、「Get-Verb」と入力して承認されている動詞の一覧を参照してください。

このメッセージは、単なる警告です。 実際には、非準拠のコマンドを含む、すべてのモジュールがインポートされます。 モジュール ユーザーにメッセージが表示されますが、名前付けの問題はモジュール作成者が解決する必要があります。

Type:SwitchParameter
Position:Named
Default value:False
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-Force

このパラメーターを使用すると、モジュールが現在のモジュールの上に読み込まれるか、再読み込みされます。

Type:SwitchParameter
Position:Named
Default value:False
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-FullyQualifiedName

値には、モジュール名、完全なモジュール仕様、またはモジュール ファイルへのパスを指定できます。

値がパスの場合、パスは完全修飾または相対パスにすることができます。 相対パスは、using ステートメントを含むスクリプトを基準にして解決されます。

値が名前またはモジュールの指定である場合、PowerShell は PSModulePath で指定されたモジュールを検索します。

モジュール仕様は、次のキーを持つハッシュテーブルです。

  • ModuleName - 必須 モジュール名を指定します。
  • GUID - オプション モジュールの GUID を指定します。
  • また、以下の 3 つのキーのうち少なくとも 1 つを指定する 必要 もあります。
    • ModuleVersion - モジュールの最小許容バージョンを指定します。
    • MaximumVersion - モジュールの許容される最大バージョンを指定します。
    • RequiredVersion - モジュールの正確で必要なバージョンを指定します。 これは、他のバージョン キーでは使用できません。
Type:ModuleSpecification[]
Position:0
Default value:None
Required:True
Accept pipeline input:True
Accept wildcard characters:False

-Function

このコマンドレットがモジュールから現在のセッションにインポートする関数の配列を指定します。 ワイルドカード文字を使用できます。 一部のモジュールは、モジュールをインポートすると、選択された関数をセッションに自動的にエクスポートします。 このパラメーターを使用すると、エクスポートされた関数の中から選択できます。

Type:String[]
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:True

-Global

このコマンドレットは、モジュールをグローバル セッション状態にインポートして、セッション内のすべてのコマンドで使用できるようにすることを示します。

既定では、コマンド プロンプト、スクリプト ファイル、または scriptblock からコマンドレットが呼び出されると Import-Module 、すべてのコマンドがグローバル セッション状態にインポートされます。

別のモジュールから呼び出されると、 Import-Module コマンドレットはモジュール内のコマンド (入れ子になったモジュールからのコマンドを含む) を呼び出し元モジュールのセッション状態にインポートします。

ヒント

モジュール内から を呼び出 Import-Module さないようにする必要があります。 代わりに、ターゲット モジュールを親モジュールのマニフェストで入れ子になったモジュールとして宣言します。 入れ子になったモジュールを宣言すると、依存関係の検出可能性が向上します。

Global パラメーターは、値が Global である Scope パラメーターと同じ効果が得られます。

モジュールがエクスポートするコマンドを制限するには、スクリプト モジュールで コマンドを使用 Export-ModuleMember します。

Type:SwitchParameter
Position:Named
Default value:False
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-MaximumVersion

最大バージョンを指定します。 このコマンドレットは、指定した値以下のバージョンのモジュールのみをインポートします。 該当するバージョンがない場合は、 Import-Module エラーを返します。

Type:String
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-MinimumVersion

最小バージョンを指定します。 このコマンドレットは、指定した値以上のバージョンのモジュールのみをインポートします。 MinimumVersion パラメーター名またはそのエイリアスである Version を使用します。 該当するバージョンがない場合は、 Import-Module エラーが生成されます。

正確なバージョンを指定するには、RequiredVersion パラメーターを使用します。 #Requires キーワード (keyword)の Module パラメーターと Versionパラメーターを使用して、スクリプト内のモジュールの特定のバージョンを要求することもできます。

このパラメーターは Windows PowerShell 3.0 で導入されました。

Type:Version
Aliases:Version
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-ModuleInfo

インポートするモジュール オブジェクトの配列を指定します。 モジュール オブジェクトを含む変数、またはモジュール オブジェクトを取得するコマンド (例: ) を入力します Get-Module -ListAvailable。 モジュール オブジェクトを に Import-Moduleパイプすることもできます。

Type:PSModuleInfo[]
Position:0
Default value:None
Required:True
Accept pipeline input:True
Accept wildcard characters:False

-Name

インポートするモジュールの名前を指定します。 モジュールの名前、またはモジュール内のファイルの名前 (、.psm1.dll、、または .ps1 ファイルなど) を.psd1入力します。 ファイル パスは省略可能です。 ワイルドカード文字は使用できません。 モジュール名とファイル名を に Import-Moduleパイプすることもできます。

パスを省略した場合は、 Import-Module 環境変数に保存されているパスでモジュールを $env:PSModulePath 探します。

可能な限り、モジュール名のみを指定してください。 ファイル名を指定すると、そのファイルに実装されているメンバーのみがインポートされます。 モジュールに他のファイルが含まれている場合、それらはインポートされず、モジュールの重要なメンバーが見つからない可能性があります。

注意

スクリプト (.ps1) ファイルをモジュールとしてインポートすることは可能ですが、スクリプト ファイルは通常、スクリプト モジュール ファイル (.psm1) ファイルのように構造化されていません。 スクリプト ファイルをインポートしても、モジュールとして使用できる保証はありません。 詳細については、「 about_Modules」を参照してください。

Type:String[]
Position:0
Default value:None
Required:True
Accept pipeline input:True
Accept wildcard characters:True

-NoClobber

現在のセッションの既存のコマンドと同じ名前のコマンドをインポートできないようにします。 既定では、 Import-Module エクスポートされたすべてのモジュール コマンドがインポートされます。

同じ名前のコマンドは、セッション内のコマンドを非表示または置換できます。 セッションでのコマンド名の競合を回避するには、Prefix パラメーターまたは NoClobber パラメーターを使用します。 名前の競合およびコマンドの優先順位の詳細については、about_Modules の「モジュールと名前の競合」および about_Command_Precedence を参照してください。

このパラメーターは Windows PowerShell 3.0 で導入されました。

Type:SwitchParameter
Aliases:NoOverwrite
Position:Named
Default value:False
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-PassThru

インポートされたモジュールを表す オブジェクトを返します。 既定では、このコマンドレットは出力を生成しません。

Type:SwitchParameter
Position:Named
Default value:False
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-Prefix

このコマンドレットが、インポートされたモジュール メンバーの名前の名詞に追加するプレフィックスを指定します。

セッションに同じ名前の別のメンバーが存在する場合に発生する名前の競合を回避するには、このパラメーターを使用します。 このパラメーターはモジュールを変更せず、モジュールが独自に使用するためにインポートするファイルには影響しません。 これらは入れ子になったモジュールと呼ばれます。 このコマンドレットは、現在のセッションのメンバーの名前にのみ影響します。

たとえば、プレフィックス UTC を指定し、コマンドレットを Get-Date インポートした場合、コマンドレットはセッションで と Get-UTCDate呼ばれ、元 Get-Date のコマンドレットと混同されません。

このパラメーターの値は、モジュールの DefaultCommandPrefix プロパティ (既定のプレフィックスを指定する) よりも優先されます。

Type:String
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-PSSession

このコマンドレットがモジュールを現在のセッションにインポートする PowerShell ユーザー管理セッション (PSSession) を指定します。 PSSession を含む変数、または PSSession を取得するコマンド (コマンドなど) をGet-PSSession入力します。

別のセッションから現在のセッションにモジュールをインポートする際、ローカル モジュールのコマンドレットを使用するのと同じように、モジュールのコマンドレットを現在のセッションで使用できます。 リモート コマンドレットを使用するコマンドはリモート セッションで実行されますが、リモート処理の詳細は PowerShell によってバックグラウンドで管理されます。

このパラメーターは、PowerShell の暗黙的なリモート処理機能を使用します。 コマンドレットを使用してセッションから特定の Import-PSSession モジュールをインポートするのと同じです。

Import-Module では、別のセッションからコア PowerShell モジュールをインポートできません。 コア PowerShell モジュールには、Microsoft.PowerShell で始まる名前があります。

このパラメーターは Windows PowerShell 3.0 で導入されました。

Type:PSSession
Position:Named
Default value:None
Required:True
Accept pipeline input:False
Accept wildcard characters:False

-RequiredVersion

このコマンドレットがインポートするモジュールのバージョンを指定します。 バージョンがインストールされていない場合は、 Import-Module エラーが生成されます。

既定では、 Import-Module バージョン番号を確認せずにモジュールをインポートします。

最小バージョンを指定するには、MinimumVersion パラメーターを使用します。 #Requires キーワード (keyword)の Module パラメーターと Versionパラメーターを使用して、スクリプト内のモジュールの特定のバージョンを要求することもできます。

このパラメーターは Windows PowerShell 3.0 で導入されました。

Windows オペレーティング システムの既存のリリースに含まれているモジュールをインポートするために RequiredVersion を使用するスクリプトは、今後のリリースの Windows オペレーティング システムでは自動的に実行されません。 これは、Windows オペレーティング システムの今後のリリースの PowerShell モジュールのバージョン番号が、Windows オペレーティング システムの既存のリリースのモジュール バージョン番号よりも大きくなるためです。

Type:Version
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-Scope

モジュールをインポートするスコープを指定します。

このパラメーターの有効値は、次のとおりです。

  • グローバル。 セッション内のすべてのコマンドに使用できます。 Global パラメーターと同じ効果が得られます。
  • ローカル。 現在のスコープでのみ使用できます。

既定では、コマンド プロンプト、スクリプト ファイル、または scriptblock からコマンドレットが呼び出されると Import-Module 、すべてのコマンドがグローバル セッション状態にインポートされます。 パラメーターを -Scope Local 使用して、モジュールの内容をスクリプトまたは scriptblock スコープにインポートできます。

別のモジュールから呼び出されると、 Import-Module コマンドレットはモジュール内のコマンド (入れ子になったモジュールからのコマンドを含む) を呼び出し元のセッション状態にインポートします。 または -Global-Scope Global指定すると、このコマンドレットによってモジュールがグローバル セッション状態にインポートされ、セッション内のすべてのコマンドで使用できるようになります。

Global パラメーターは、値が Global である Scope パラメーターと同じ効果が得られます。

このパラメーターは Windows PowerShell 3.0 で導入されました。

Type:String
Accepted values:Local, Global
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-SkipEditionCheck

フィールドのチェックをCompatiblePSEditionsスキップします。

モジュールがマニフェスト フィールドで "$($env:windir)\System32\WindowsPowerShell\v1.0\Modules" 指定 Core されていない場合に、モジュール ディレクトリから PowerShell Core にモジュールを CompatiblePSEditions 読み込みます。

別のパスからモジュールをインポートする場合、チェックが実行されないため、このスイッチは何も行いません。 Linux と macOS では、このスイッチは何も行いません。

詳細については、「 about_PowerShell_Editions」を参照してください。

警告

Import-Module -SkipEditionCheck モジュールのインポートに失敗する可能性があります。 成功した場合でも、互換性のない API を使用しようとすると、モジュールからのコマンドの呼び出しが後で失敗する可能性があります。

Type:SwitchParameter
Position:Named
Default value:False
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-UseWindowsPowerShell

Windows PowerShell互換性機能を使用してモジュールを読み込みます。 詳細については、「 about_Windows_PowerShell_Compatibility 」を参照してください。

Type:SwitchParameter
Aliases:UseWinPS
Position:Named
Default value:False
Required:True
Accept pipeline input:False
Accept wildcard characters:False

-Variable

このコマンドレットがモジュールから現在のセッションにインポートする変数の配列を指定します。 変数のリストを入力します。 ワイルドカード文字を使用できます。

一部のモジュールは、モジュールをインポートすると、選択された変数をセッションに自動的にエクスポートします。 このパラメーターを使用すると、エクスポートされた変数の中から選択できます。

Type:String[]
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:True

入力

String

モジュール名をこのコマンドレットにパイプできます。

PSModuleInfo

モジュール オブジェクトをこのコマンドレットにパイプできます。

Assembly

アセンブリ オブジェクトをこのコマンドレットにパイプできます。

出力

None

既定では、このコマンドレットは出力を返しません。

PSModuleInfo

PassThru パラメーターを指定すると、インポートされたモジュールを表す System.Management.Automation.PSModuleInfo オブジェクトがコマンドレットによって生成されます。

PSCustomObject

AsCustomObject パラメーターと PassThru パラメーターを一緒に指定すると、コマンドレットはモジュールを表す PSCustomObject オブジェクトを生成します。

メモ

PowerShell には、 の次のエイリアスが Import-Module含まれています。

  • すべてのプラットフォーム:

    • ipmo
  • モジュールをインポートする前に、モジュールにローカル コンピューターからアクセスでき、環境変数に PSModulePath 含める必要があります。 詳細については、「 about_Modules」を参照してください。

    また、PSSession パラメーターと CIMSession パラメーターを使用すれば、リモート コンピューターにインストールされているモジュールをインポートすることもできます。 ただし、これらのモジュールのコマンドレットを使用するコマンドは、リモート コンピューター上のリモート セッションで実行されます。

  • 同じ名前で同じ種類のメンバーをセッションにインポートする場合、PowerShell では既定で最後にインポートされたメンバーが使用されます。 変数とエイリアスは置き換えられ、元の変数にはアクセスできません。 関数、コマンドレット、プロバイダーは、新しいメンバーによってシャドウされるだけです。 これらは、スナップイン、モジュール、または関数パスの名前でコマンド名を修飾することでアクセスできます。

  • モジュールからインポートされたコマンドの書式設定データを更新するには、 コマンドレットを Update-FormatData 使用します。 モジュールの書式設定ファイルが変更された場合は、 コマンドレットを Update-FormatData 使用して、インポートされたコマンドの書式設定データを更新します。 モジュールをもう一度インポートする必要はありません。

  • Windows PowerShell 3.0 以降では、PowerShell と共にインストールされるコア コマンドはモジュールにパッケージ化されています。 Windows PowerShell 2.0 およびそれ以降のバージョンの PowerShell で古いスタイルのセッションを作成するホスト プログラムでは、コア コマンドはスナップイン (PSSnapins) にパッケージ化されています。 例外は Microsoft.PowerShell.Core です。これは常にスナップインです。 また、コマンドレットによって New-PSSession 開始されたリモート セッションは、コア スナップインを含む古いスタイルのセッションです。

    コア モジュールを使用して新しいスタイルのセッションを作成する CreateDefault2 メソッドの詳細については、「 CreateDefault2 メソッド」を参照してください。

  • Windows PowerShell 2.0 では、モジュール オブジェクトの一部のプロパティ値 (ExportedCmdlets プロパティや NestedModules プロパティ値など) は、モジュールがインポートされるまで設定されませんでした。

  • Windows PowerShell 3.0 以降と互換性のない混合モード アセンブリを含むモジュールをインポートしようとすると、Import-Module次のようなエラー メッセージが返されます。

    Import-Module: 混合モード アセンブリは、ランタイムのバージョン 'v2.0.50727' に対してビルドされ、追加の構成情報がないと 4.0 ランタイムに読み込めません。

    このエラーは、Windows PowerShell 2.0 用に設計されたモジュールに少なくとも 1 つの混合モジュール アセンブリが含まれている場合に発生します。 C++ や C# などのマネージド コードと非マネージド コードの両方を含む混合モジュール アセンブリ。

    混合モード アセンブリを含むモジュールをインポートするには、次のコマンドを使用して 2.0 Windows PowerShellを開始し、もう一度コマンドをImport-Module試します。

    PowerShell.exe -Version 2.0

  • CIM セッション機能を使用するには、リモート コンピューターにおいて、WS-Management リモート処理と Common Information Model (CIM) 標準の Microsoft 実装である Windows Management Instrumentation (WMI) が必要です。 さらに、モジュール検出用の WMI プロバイダーまたは同じ基本機能を備えた代替 CIM プロバイダーもコンピューターに必要です。

    CIM セッション機能は、Windows オペレーティング システムを実行していないコンピューターと、PowerShell が有効になっているが PowerShell リモート処理が有効になっていない Windows コンピューターで使用できます。

    CIM パラメーターを使用して、ローカル コンピューターを含む PowerShell リモート処理が有効になっているコンピューターから CIM モジュールを取得することもできます。 ローカル コンピューターで CIM セッションを作成すると、PowerShell は WMI ではなく DCOM を使用してセッションを作成します。

  • 既定では、 Import-Module 子孫スコープから呼び出された場合でも、グローバル スコープ内のモジュールがインポートされます。 最上位レベルのスコープとすべての子孫スコープは、モジュールのエクスポートされた要素にアクセスできます。

    子孫スコープでは、 -Scope Local インポートをそのスコープとそのすべての子孫スコープに制限します。 親スコープには、インポートされたメンバーは表示されません。

    注意

    Get-Module には、現在のセッションに読み込まれているすべてのモジュールが表示されます。 これには、子孫スコープにローカルに読み込まれたモジュールが含まれます。 を使用して Get-Command -Module modulename 、現在のスコープに読み込まれているメンバーを確認します。

  • Import-Module では、モジュール内のクラス定義と列挙定義は読み込まれません。 スクリプトの using module 先頭で ステートメントを使用します。 これにより、 クラス定義と列挙定義を含むモジュールがインポートされます。 詳細については、「 about_Using」を参照してください。

  • スクリプト モジュールの開発中は、コードを変更してから、Force パラメーターを使用して新しいバージョンのモジュールをImport-Module読み込むのが一般的です。 これは、ルート モジュール内の関数に対する変更に対してのみ機能します。 Import-Module では、入れ子になったモジュールは再読み込みされません。 また、更新されたクラスまたは列挙型を読み込む方法はありません。

    入れ子になったモジュールで定義されている更新されたモジュール メンバーを取得するには、 でモジュール Remove-Moduleを削除してから、モジュールをもう一度インポートします。

    モジュールに ステートメントが読み込まれた using 場合は、新しいセッションを開始して、クラスと列挙型の更新された定義をインポートする必要があります。 PowerShell で定義され、 ステートメントを使用して using インポートされたクラスと列挙はアンロードできません。