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
インポートされますが、Alias、Function、Cmdlet、および Variable パラメーターを使用して、インポートするメンバーを制限できます。
NoClobber パラメーターを指定すると、Import-Module
は現在のセッションのメンバーと同じ名前のメンバーをインポートできなくなります。
Import-Module
は、モジュールを現在のセッションにのみインポートします。 新しいセッションごとにモジュールをインポートするには、PowerShell プロファイルに Import-Module
コマンドを追加します。 プロファイルの詳細については、about_Profilesを参照してください。
リモート コンピューターに PSSession を作成することで、PowerShell リモート処理が有効になっているリモート Windows コンピューターを管理できます。 次に、Import-Module
の PSSession パラメーターを使用して、リモート コンピューターにインストールされているモジュールをインポートします。 現在のセッションでインポートされたコマンドを使用すると、コマンドはリモート コンピューターで暗黙的に実行されます。
Windows PowerShell 3.0 以降では、Import-Module
を使用して共通情報モデル (CIM) モジュールをインポートできます。 CIM モジュールは、コマンドレット定義 XML (CDXML) ファイルでコマンドレットを定義します。 この機能を使用すると、C++ で記述されたコマンドレットなど、非マネージド コード アセンブリに実装されているコマンドレットを使用できます。
Windows オペレーティング システムを実行していないコンピューターなど、PowerShell リモート処理が有効になっていないリモート コンピューターの場合は、Import-Module
の CIMSession パラメーターを使用して、リモート コンピューターから 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 パラメーターは、まだセッションにインポートされていないモジュールを取得するときに必要です。
Import-Module
の ModuleInfo パラメーターは、モジュールを現在のセッションにインポートするために使用されます。
例 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
が進行状況を報告します。
Verbose、PassThru、または AsCustomObject パラメーターを しないと、Import-Module
はモジュールをインポートするときに出力を生成しません。
例 5: セッションにインポートされるモジュール メンバーを制限する
この例では、セッションにインポートするモジュール メンバーを制限する方法と、このコマンドがセッションに及ぼす影響を示します。 Function パラメーターは、モジュールからインポートされるメンバーを制限します。 Alias、Variable、および 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
Get-Command
コマンドレットの Module パラメーターを使用すると、PSDiagnostics モジュールからインポートされたコマンドが表示されます。 結果は、Disable-PSTrace
と Enable-PSTrace
のコマンドレットのみがインポートされたことを確認します。
例 6: モジュールのメンバーをインポートし、プレフィックスを追加する
次の使用例は、PSDiagnostics モジュールを現在のセッションにインポートし、メンバー名にプレフィックスを追加してから、プレフィックス付きのメンバー名を表示します。
Import-Module
の Prefix パラメーターは、モジュールからインポートされるすべてのメンバーに 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-Module
の Force パラメーターを使用する方法を示します。
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
は年と日を返します。
Get-Command
の All パラメーターを使用すると、セッション内のすべての Get-Date
コマンドが表示されます。 その結果、セッションには、TestModule モジュールの関数と、Microsoft.PowerShell.Utility モジュールのコマンドレットという 2 つの Get-Date
コマンドが存在することを示しています。
関数はコマンドレットよりも優先されるため、Get-Date
コマンドレットではなく、TestModule モジュールの Get-Date
関数が実行されます。
Get-Date
の元のバージョンを実行するには、コマンド名をモジュール名で修飾する必要があります。
PowerShell でのコマンドの優先順位の詳細については、「about_Command_Precedence」を参照してください。
例 10: モジュールの最小バージョンをインポートする
この例では、PowerShellGet モジュールをインポートします。
Import-Module
の MinimumVersion パラメーターを使用して、モジュールのバージョン 2.0.0
以上のみをインポートします。
Import-Module -Name PowerShellGet -MinimumVersion 2.0.0
RequiredVersion パラメーターを使用してモジュールの特定のバージョンをインポートしたり、#Requires
キーワードの Module パラメーターと Version パラメーターを使用してスクリプト内のモジュールの特定のバージョンを要求したりすることもできます。
例 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
は、Server01
コンピューターへのリモート セッション (PSSession) を作成します。
PSSession は、$s
変数に保存されます。
PSSession パラメーターを使用して Get-Module
を実行すると、NetSecurity モジュールがリモート コンピューターにインストールされ、使用可能であることが示されます。 このコマンドは、Invoke-Command
コマンドレットを使用してリモート セッションでコマンド Get-Module
実行することと同じです。 例えば:
Invoke-Command $s {Get-Module -ListAvailable -Name NetSecurity
PSSession パラメーターを使用して Import-Module
を実行すると、NetSecurity モジュールがリモート コンピューターから現在のセッションにインポートされます。
Get-Command
コマンドレットは、Get
で始まるコマンドを取得し、NetSecurity モジュールから Firewall
を含めます。 出力は、モジュールとそのコマンドレットが現在のセッションにインポートされたことを確認します。
次に、Get-NetFirewallRule
コマンドレットは、Server01
コンピューター上の Windows リモート管理ファイアウォール規則を取得します。 これは、Invoke-Command
コマンドレットを使用してリモート セッションで Get-NetFirewallRule
を実行することと同じです。
例 14: Windows オペレーティング システムを使用せずにリモート コンピューター上の記憶域を管理する
この例では、コンピューターの管理者がモジュール検出 WMI プロバイダーをインストールしました。これにより、プロバイダー用に設計された CIM コマンドを使用できます。
New-CimSession
コマンドレットは、RSDGF03という名前のリモート コンピューターにセッションを作成します。 セッションは、リモート コンピューター上の WMI サービスに接続します。 CIM セッションは、$cs
変数に保存されます。
Import-Module
では、$cs
の CimSession を使用して、RSDGF03
コンピューターから Storage CIM モジュールをインポートします。
Get-Command
コマンドレットは、Storage モジュールの Get-Disk
コマンドを表示します。 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
このコマンドレットがモジュールから現在のセッションにインポートするエイリアスを指定します。 エイリアスのコンマ区切りの一覧を入力します。 ワイルドカード文字を使用できます。
一部のモジュールでは、モジュールをインポートすると、選択したエイリアスがセッションに自動的にエクスポートされます。 このパラメーターを使用すると、エクスポートされたエイリアスの中から選択できます。
型: | String[] |
配置: | Named |
規定値: | None |
必須: | False |
パイプライン入力を受け取る: | False |
ワイルドカード文字を受け取る: | True |
-ArgumentList
Import-Module
コマンド中にスクリプト モジュールに渡される引数またはパラメーター値の配列を指定します。 このパラメーターは、スクリプト モジュールをインポートする場合にのみ有効です。
ArgumentList パラメーターをエイリアスで参照することもできます。引数 します。 ArgumentList の動作詳細については、about_Splattingを参照してください。
型: | Object[] |
Aliases: | Args |
配置: | Named |
規定値: | None |
必須: | False |
パイプライン入力を受け取る: | False |
ワイルドカード文字を受け取る: | False |
-AsCustomObject
このコマンドレットは、インポートされたモジュール メンバーを表すメンバーを持つカスタム オブジェクトを返します。 このパラメーターは、スクリプト モジュールに対してのみ有効です。
AsCustomObject パラメーターを使用する場合、Import-Module
モジュール メンバーをセッションにインポートし、PSModuleInfo オブジェクトではなく、PSCustomObject オブジェクトを返します。 カスタム オブジェクトを変数に保存し、メンバー アクセス列挙を使用してメンバーを呼び出すことができます。
型: | SwitchParameter |
配置: | Named |
規定値: | False |
必須: | False |
パイプライン入力を受け取る: | False |
ワイルドカード文字を受け取る: | False |
-Assembly
アセンブリ オブジェクトの配列を指定します。 このコマンドレットは、指定したアセンブリ オブジェクトに実装されているコマンドレットとプロバイダーをインポートします。 アセンブリ オブジェクトを含む変数、またはアセンブリ オブジェクトを作成するコマンドを入力します。 アセンブリ オブジェクトをパイプ処理して Import-Module
することもできます。
このパラメーターを使用すると、指定したアセンブリによって実装されたコマンドレットとプロバイダーのみがインポートされます。 モジュールに他のファイルが含まれている場合、それらはインポートされず、モジュールの重要なメンバーが見つからない可能性があります。 このパラメーターは、モジュールのデバッグとテスト、またはモジュール作成者によって使用するように指示された場合に使用します。
型: | Assembly[] |
配置: | 0 |
規定値: | None |
必須: | True |
パイプライン入力を受け取る: | True |
ワイルドカード文字を受け取る: | False |
-CimNamespace
CIM モジュールを公開する代替 CIM プロバイダーの名前空間を指定します。 既定値は、モジュール探索 WMI プロバイダーの名前空間です。
Windows オペレーティング システムを実行していないコンピューターやデバイスから CIM モジュールをインポートするには、このパラメーターを使用します。
このパラメーターは、Windows PowerShell 3.0 で導入されました。
型: | String |
配置: | Named |
規定値: | None |
必須: | False |
パイプライン入力を受け取る: | False |
ワイルドカード文字を受け取る: | False |
-CimResourceUri
CIM モジュールの別の場所を指定します。 既定値は、リモート コンピューター上のモジュール探索 WMI プロバイダーのリソース URI です。
Windows オペレーティング システムを実行していないコンピューターやデバイスから CIM モジュールをインポートするには、このパラメーターを使用します。
このパラメーターは、Windows PowerShell 3.0 で導入されました。
型: | Uri |
配置: | Named |
規定値: | None |
必須: | False |
パイプライン入力を受け取る: | False |
ワイルドカード文字を受け取る: | False |
-CimSession
リモート コンピューター上の CIM セッションを指定します。 CIM セッションを含む変数、または CIM セッションを取得するコマンド (Get-CimSession コマンドなど) を入力します。
Import-Module
は CIM セッション接続を使用して、リモート コンピューターから現在のセッションにモジュールをインポートします。 現在のセッションでインポートされたモジュールのコマンドを使用すると、リモート コンピューターでコマンドが実行されます。
このパラメーターを使用して、Windows オペレーティング システムを実行していないコンピューターとデバイス、および PowerShell が有効になっていても PowerShell リモート処理が有効になっていない Windows コンピューターからモジュールをインポートできます。
このパラメーターは、Windows PowerShell 3.0 で導入されました。
型: | CimSession |
配置: | Named |
規定値: | None |
必須: | True |
パイプライン入力を受け取る: | False |
ワイルドカード文字を受け取る: | False |
-Cmdlet
このコマンドレットがモジュールから現在のセッションにインポートするコマンドレットの配列を指定します。 ワイルドカード文字を使用できます。
一部のモジュールでは、モジュールをインポートすると、選択したコマンドレットがセッションに自動的にエクスポートされます。 このパラメーターを使用すると、エクスポートされたコマンドレットの中から選択できます。
型: | String[] |
配置: | Named |
規定値: | None |
必須: | False |
パイプライン入力を受け取る: | False |
ワイルドカード文字を受け取る: | True |
-DisableNameChecking
名前に未承認の動詞または禁止文字が含まれるコマンドレットまたは関数をインポートするときに警告するメッセージが、このコマンドレットによって抑制されることを示します。
既定では、インポートするモジュールが、名前に未承認の動詞を含むコマンドレットまたは関数をエクスポートすると、PowerShell によって次の警告メッセージが表示されます。
警告: 一部のインポートされたコマンド名には未承認の動詞が含まれており、見つけにくくなることがあります。 詳細または型 Get-Verb の詳細パラメーターを使用して、承認済みの動詞の一覧を表示します。
このメッセージは警告にすぎません。 完全なモジュールは、準拠していないコマンドを含め、引き続きインポートされます。 メッセージはモジュール ユーザーに表示されますが、モジュールの作成者が名前付けの問題を修正する必要があります。
型: | SwitchParameter |
配置: | Named |
規定値: | False |
必須: | False |
パイプライン入力を受け取る: | False |
ワイルドカード文字を受け取る: | False |
-Force
このパラメーターにより、モジュールが現在のモジュールの上に読み込まれるか、再読み込みされます。 一部のモジュールは外部アセンブリを読み込みます。 新しいバージョンのアセンブリを読み込むモジュールをインポートする場合、インポートは失敗します。 Force パラメーターは、エラーをオーバーライドできません。 新しいバージョンを読み込むには、新しいセッションを開始する必要があります。
型: | SwitchParameter |
配置: | Named |
規定値: | False |
必須: | False |
パイプライン入力を受け取る: | False |
ワイルドカード文字を受け取る: | False |
-FullyQualifiedName
値には、モジュール名、完全なモジュール仕様、またはモジュール ファイルへのパスを指定できます。
値がパスの場合、パスは完全修飾または相対パスにすることができます。 相対パスは、using ステートメントを含むスクリプトを基準にして解決されます。
値が名前またはモジュールの指定である場合、PowerShell は指定されたモジュールの PSModulePath を検索します。
モジュール仕様は、次のキーを持つハッシュテーブルです。
-
ModuleName
- 必須 モジュール名を指定します。 -
GUID
- 省略可能 モジュールの GUID を指定します。 - また、以下の 3 つのキーのうち少なくとも 1 つを指定する必要 も。
-
ModuleVersion
- モジュールの最小許容バージョンを指定します。 -
MaximumVersion
- モジュールの許容される最大バージョンを指定します。 -
RequiredVersion
- モジュールの正確で必要なバージョンを指定します。 これは、他のバージョン キーでは使用できません。
-
型: | ModuleSpecification[] |
配置: | 0 |
規定値: | None |
必須: | True |
パイプライン入力を受け取る: | True |
ワイルドカード文字を受け取る: | False |
-Function
このコマンドレットがモジュールから現在のセッションにインポートする関数の配列を指定します。 ワイルドカード文字を使用できます。 一部のモジュールでは、モジュールをインポートすると、選択した関数がセッションに自動的にエクスポートされます。 このパラメーターを使用すると、エクスポートされた関数の中から選択できます。
型: | String[] |
配置: | Named |
規定値: | None |
必須: | False |
パイプライン入力を受け取る: | False |
ワイルドカード文字を受け取る: | True |
-Global
このコマンドレットは、モジュールをグローバル セッション状態にインポートして、セッション内のすべてのコマンドで使用できるようにすることを示します。
既定では、コマンド プロンプト、スクリプト ファイル、または scriptblock から Import-Module
コマンドレットが呼び出されると、すべてのコマンドがグローバル セッション状態にインポートされます。
別のモジュールから呼び出されると、Import-Module
コマンドレットは、入れ子になったモジュールからのコマンドを含むモジュール内のコマンドを呼び出し元のモジュールのセッション状態にインポートします。
先端
モジュール内から Import-Module
を呼び出さないようにする必要があります。 代わりに、親モジュールのマニフェストで、入れ子になったモジュールとしてターゲット モジュールを宣言します。 入れ子になったモジュールを宣言すると、依存関係の検出可能性が向上します。
Global パラメーターは、global の値を持つ Scope パラメーター同じです。
モジュールがエクスポートするコマンドを制限するには、スクリプト モジュールで Export-ModuleMember
コマンドを使用します。
型: | SwitchParameter |
配置: | Named |
規定値: | False |
必須: | False |
パイプライン入力を受け取る: | False |
ワイルドカード文字を受け取る: | False |
-MaximumVersion
最大バージョンを指定します。 このコマンドレットは、指定した値以下のバージョンのモジュールのみをインポートします。 該当するバージョンがない場合、Import-Module
はエラーを返します。
型: | String |
配置: | Named |
規定値: | None |
必須: | False |
パイプライン入力を受け取る: | False |
ワイルドカード文字を受け取る: | False |
-MinimumVersion
最小バージョンを指定します。 このコマンドレットは、指定した値以上のバージョンのモジュールのみをインポートします。
MinimumVersion パラメーター名またはそのエイリアスを使用します。バージョン します。 該当するバージョンがない場合、Import-Module
はエラーを生成します。
正確なバージョンを指定するには、RequiredVersion パラメーターを使用します。 #Requires キーワードの Module パラメーターと Version パラメーターを使用して、スクリプト内のモジュールの特定のバージョンを要求することもできます。
このパラメーターは、Windows PowerShell 3.0 で導入されました。
型: | Version |
Aliases: | Version |
配置: | Named |
規定値: | None |
必須: | False |
パイプライン入力を受け取る: | False |
ワイルドカード文字を受け取る: | False |
-ModuleInfo
インポートするモジュール オブジェクトの配列を指定します。 モジュール オブジェクトを含む変数、またはモジュール オブジェクトを取得するコマンド (次のコマンドなど) を入力します:Get-Module -ListAvailable
。 モジュール オブジェクトをパイプして Import-Module
することもできます。
型: | PSModuleInfo[] |
配置: | 0 |
規定値: | None |
必須: | True |
パイプライン入力を受け取る: | True |
ワイルドカード文字を受け取る: | False |
-Name
インポートするモジュールの名前を指定します。 モジュールの名前、またはモジュール内のファイルの名前 (.psd1
、.psm1
、.dll
、.ps1
ファイルなど) を入力します。 ファイル パスは省略可能です。 ワイルドカード文字は使用できません。 また、モジュール名とファイル名をパイプして Import-Module
することもできます。
パスを省略した場合、Import-Module
は、$env:PSModulePath
環境変数に保存されているパスでモジュールを検索します。
可能な限り、モジュール名のみを指定してください。 ファイル名を指定すると、そのファイルに実装されているメンバーのみがインポートされます。 モジュールに他のファイルが含まれている場合、それらはインポートされず、モジュールの重要なメンバーが見つからない可能性があります。
手記
スクリプト (.ps1
) ファイルをモジュールとしてインポートすることは可能ですが、スクリプト ファイルは通常、スクリプト モジュール ファイル (.psm1
) ファイルのように構造化されていません。 スクリプト ファイルをインポートしても、モジュールとして使用できる保証はありません。 詳細については、about_Modulesを参照してください。
型: | String[] |
配置: | 0 |
規定値: | None |
必須: | True |
パイプライン入力を受け取る: | True |
ワイルドカード文字を受け取る: | True |
-NoClobber
現在のセッションの既存のコマンドと同じ名前のコマンドをインポートできないようにします。 既定では、Import-Module
はエクスポートされたすべてのモジュール コマンドをインポートします。
同じ名前のコマンドは、セッション内のコマンドを非表示にしたり置き換えたりできます。 セッションでコマンド名の競合を回避するには、プレフィックス を使用するか、NoClobber パラメーターを します。 名前の競合とコマンドの優先順位の詳細については、about_Modules と about_Command_Precedenceの「モジュールと名前の競合」を参照してください。
このパラメーターは、Windows PowerShell 3.0 で導入されました。
型: | SwitchParameter |
Aliases: | NoOverwrite |
配置: | Named |
規定値: | False |
必須: | False |
パイプライン入力を受け取る: | False |
ワイルドカード文字を受け取る: | False |
-PassThru
インポートされたモジュールを表すオブジェクトを返します。 既定では、このコマンドレットは出力を生成しません。
型: | SwitchParameter |
配置: | Named |
規定値: | False |
必須: | False |
パイプライン入力を受け取る: | False |
ワイルドカード文字を受け取る: | False |
-Prefix
このコマンドレットが、インポートされたモジュール メンバーの名前の名詞に追加するプレフィックスを指定します。
セッション内の異なるメンバーが同じ名前を持つ場合に発生する可能性がある名前の競合を回避するには、このパラメーターを使用します。 このパラメーターはモジュールを変更せず、モジュールが独自にインポートするファイルには影響しません。 これらは入れ子になったモジュールと呼ばれます。 このコマンドレットは、現在のセッションのメンバーの名前にのみ影響します。
たとえば、プレフィックス UTC を指定し、Get-Date
コマンドレットをインポートした場合、このコマンドレットはセッションで Get-UTCDate
と呼ばれ、元の Get-Date
コマンドレットと混同されません。
このパラメーターの値は、モジュールの DefaultCommandPrefix プロパティ よりも優先されます。このプロパティは、既定のプレフィックスを指定します。
型: | String |
配置: | Named |
規定値: | None |
必須: | False |
パイプライン入力を受け取る: | False |
ワイルドカード文字を受け取る: | False |
-PSSession
このコマンドレットがモジュールを現在のセッションにインポートする PowerShell ユーザー管理セッション (PSSession) を指定します。
PSSession を含む変数、または Get-PSSession
コマンドなど、PSSessionを取得するコマンドを入力します。
別のセッションから現在のセッションにモジュールをインポートする場合は、ローカル モジュールのコマンドレットを使用する場合と同様に、現在のセッションのモジュールのコマンドレットを使用できます。 リモート コマンドレットを使用するコマンドはリモート セッションで実行されますが、リモート処理の詳細は PowerShell によってバックグラウンドで管理されます。
このパラメーターでは、PowerShell の暗黙的なリモート処理機能を使用します。
Import-PSSession
コマンドレットを使用してセッションから特定のモジュールをインポートするのと同じです。
Import-Module
別のセッションからコア PowerShell モジュールをインポートすることはできません。 コア PowerShell モジュールには、Microsoft.PowerShell で始まる名前があります。
このパラメーターは、Windows PowerShell 3.0 で導入されました。
型: | PSSession |
配置: | Named |
規定値: | None |
必須: | True |
パイプライン入力を受け取る: | False |
ワイルドカード文字を受け取る: | False |
-RequiredVersion
このコマンドレットがインポートするモジュールのバージョンを指定します。 バージョンがインストールされていない場合、Import-Module
はエラーを生成します。
既定では、Import-Module
はバージョン番号を確認せずにモジュールをインポートします。
最小バージョンを指定するには、MinimumVersion パラメーターを使用します。 #Requires キーワードの Module パラメーターと Version パラメーターを使用して、スクリプト内のモジュールの特定のバージョンを要求することもできます。
このパラメーターは、Windows PowerShell 3.0 で導入されました。
RequiredVersion を使用して、Windows オペレーティング システムの既存のリリースに含まれるモジュールをインポートするスクリプトは、Windows オペレーティング システムの今後のリリースでは自動的に実行されません。 これは、Windows オペレーティング システムの将来のリリースの PowerShell モジュールのバージョン番号が、Windows オペレーティング システムの既存のリリースのモジュール バージョン番号よりも大きくなるためです。
型: | Version |
配置: | Named |
規定値: | None |
必須: | False |
パイプライン入力を受け取る: | False |
ワイルドカード文字を受け取る: | False |
-Scope
モジュールをインポートするスコープを指定します。
このパラメーターに使用できる値は次のとおりです。
- グローバル をします。 セッション内のすべてのコマンドで使用できます。 Global パラメーターと同じです。
- ローカル をします。 現在のスコープでのみ使用できます。
既定では、コマンド プロンプト、スクリプト ファイル、または scriptblock から Import-Module
コマンドレットが呼び出されると、すべてのコマンドがグローバル セッション状態にインポートされます。
-Scope Local
パラメーターを使用して、モジュールコンテンツをスクリプトまたはスクリプトブロックスコープにインポートできます。
別のモジュールから呼び出されると、Import-Module
コマンドレットは、入れ子になったモジュールからのコマンドを含むモジュール内のコマンドを呼び出し元のセッション状態にインポートします。
-Scope Global
または -Global
を指定すると、このコマンドレットはモジュールをグローバル セッション状態にインポートして、セッション内のすべてのコマンドで使用できるようにすることを示します。
Global パラメーターは、global の値を持つ Scope パラメーター同じです。
このパラメーターは、Windows PowerShell 3.0 で導入されました。
型: | String |
指定可能な値: | Local, Global |
配置: | Named |
規定値: | None |
必須: | False |
パイプライン入力を受け取る: | False |
ワイルドカード文字を受け取る: | False |
-SkipEditionCheck
CompatiblePSEditions
フィールドのチェックをスキップします。
モジュールが CompatiblePSEditions
マニフェスト フィールドに Core
を指定していない場合に、"$($env:windir)\System32\WindowsPowerShell\v1.0\Modules"
モジュール ディレクトリから PowerShell Core にモジュールを読み込みます。
別のパスからモジュールをインポートする場合、チェックは実行されないため、このスイッチは何も行いません。 Linux および macOS では、このスイッチは何も行いません。
詳細については、about_PowerShell_Editionsを参照してください。
警告
Import-Module -SkipEditionCheck
はまだモジュールのインポートに失敗する可能性があります。 成功した場合でも、互換性のない API を使用しようとすると、モジュールからのコマンドの呼び出しが後で失敗する可能性があります。
型: | SwitchParameter |
配置: | Named |
規定値: | False |
必須: | False |
パイプライン入力を受け取る: | False |
ワイルドカード文字を受け取る: | False |
-UseWindowsPowerShell
Windows PowerShell 互換性機能を使用してモジュールを読み込みます。 詳細については、about_Windows_PowerShell_Compatibility を参照してください。
型: | SwitchParameter |
Aliases: | UseWinPS |
配置: | Named |
規定値: | False |
必須: | True |
パイプライン入力を受け取る: | False |
ワイルドカード文字を受け取る: | False |
-Variable
このコマンドレットがモジュールから現在のセッションにインポートする変数の配列を指定します。 変数の一覧を入力します。 ワイルドカード文字を使用できます。
一部のモジュールでは、モジュールをインポートすると、選択した変数がセッションに自動的にエクスポートされます。 このパラメーターを使用すると、エクスポートされた変数の中から選択できます。
型: | String[] |
配置: | Named |
規定値: | None |
必須: | False |
パイプライン入力を受け取る: | False |
ワイルドカード文字を受け取る: | True |
入力
モジュール名をこのコマンドレットにパイプできます。
モジュール オブジェクトをこのコマンドレットにパイプできます。
アセンブリ オブジェクトをこのコマンドレットにパイプできます。
出力
None
既定では、このコマンドレットは出力を返しません。
PassThru パラメーターを指定すると、インポートされたモジュールを表す system.Management.Automation.PSModuleInfo オブジェクト が生成されます。
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# などのマネージド コードと非マネージド コードの両方を含む混合モジュール アセンブリ。
混合モードアセンブリを含むモジュールをインポートするには、次のコマンドを使用して Windows PowerShell 2.0 を起動し、
Import-Module
コマンドをもう一度試します。PowerShell.exe -Version 2.0
CIM セッション機能を使用するには、リモート コンピューターにリモート処理と Windows 管理インストルメンテーション (WMI) WS-Management 必要があります。これは、共通情報モデル (CIM) 標準の Microsoft 実装です。 コンピューターには、モジュール検出 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
ステートメントでインポートされたクラスと列挙型はアンロードできません。
関連リンク
PowerShell