Import-Module
現在のセッションにモジュールを追加します。
構文
Import-Module
[-Global]
[-Prefix <String>]
[-Name] <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>]
[-Name] <String[]>
[-Function <String[]>]
[-Cmdlet <String[]>]
[-Variable <String[]>]
[-Alias <String[]>]
[-Force]
[-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]
[-PassThru]
[-AsCustomObject]
[-MinimumVersion <Version>]
[-MaximumVersion <String>]
[-RequiredVersion <Version>]
[-ArgumentList <Object[]>]
[-DisableNameChecking]
[-NoClobber]
[-Scope <String>]
-CimSession <CimSession>
[-CimResourceUri <Uri>]
[-CimNamespace <String>]
[<CommonParameters>]
Import-Module
[-Global]
[-Prefix <String>]
[-FullyQualifiedName] <ModuleSpecification[]>
[-Function <String[]>]
[-Cmdlet <String[]>]
[-Variable <String[]>]
[-Alias <String[]>]
[-Force]
[-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]
[-PassThru]
[-AsCustomObject]
[-ArgumentList <Object[]>]
[-DisableNameChecking]
[-NoClobber]
[-Scope <String>]
-PSSession <PSSession>
[<CommonParameters>]
Import-Module
[-Global]
[-Prefix <String>]
[-Assembly] <Assembly[]>
[-Function <String[]>]
[-Cmdlet <String[]>]
[-Variable <String[]>]
[-Alias <String[]>]
[-Force]
[-PassThru]
[-AsCustomObject]
[-ArgumentList <Object[]>]
[-DisableNameChecking]
[-NoClobber]
[-Scope <String>]
[<CommonParameters>]
Import-Module
[-Global]
[-Prefix <String>]
[-Function <String[]>]
[-Cmdlet <String[]>]
[-Variable <String[]>]
[-Alias <String[]>]
[-Force]
[-PassThru]
[-AsCustomObject]
[-ModuleInfo] <PSModuleInfo[]>
[-ArgumentList <Object[]>]
[-DisableNameChecking]
[-NoClobber]
[-Scope <String>]
[<CommonParameters>]
説明
コマンドレットは Import-Module
、現在のセッションに 1 つ以上のモジュールを追加します。 インポートするモジュールは、ローカル コンピューターまたはリモート コンピューターにインストールされている必要があります。
PowerShell 3.0 以降では、モジュール内のコマンドまたはプロバイダーを使用すると、インストールされているモジュールがセッションに自動的にインポートされます。 ただし、 コマンドを Import-Module
使用してモジュールをインポートすることもできます。また、ユーザー設定変数を使用 $PSModuleAutoloadingPreference
してモジュールの自動インポートを有効または無効にすることもできます。 モジュールの詳細については、「 about_Modules」を参照してください。 変数の $PSModuleAutoloadingPreference
詳細については、「 about_Preference_Variables」を参照してください。
モジュールは、PowerShell で使用できるメンバーを含むパッケージです。 メンバーには、コマンドレット、プロバイダー、スクリプト、関数、変数、およびその他のツールとファイルが含まれます。 モジュールをインポートすると、モジュールのメンバーをセッションで使用できます。
モジュールをインポートするには、 Name、 Assembly、 ModuleInfo、 MinimumVersion 、 RequiredVersion の各パラメーターを使用して、インポートするモジュールを識別します。 既定では、 Import-Module
モジュールによってエクスポートされるすべてのメンバーがインポートされますが、 Alias、 Function、 Cmdlet、 および Variable パラメーターを使用して、インポートされるメンバーを制限できます。 NoClobber パラメーターを使用して、現在のセッションのメンバーと同じ名前のメンバーをインポートしないようにImport-Module
することもできます。
Import-Module
は、現在のセッションにのみモジュールをインポートします。 モジュールをすべてのセッションにインポートするには、PowerShell プロファイルにコマンドを追加 Import-Module
します。 プロファイルの詳細については、「about_Profiles」を参照してください。
Windows PowerShell 3.0 以降では、 を使用Import-Module
して、コマンドレットがコマンドレット定義 XML (CDXML) ファイルで定義されている共通情報モデル (CIM) モジュールをインポートできます。 この機能により、C++ で記述されたコードなどの非マネージ コード アセンブリに実装されているコマンドレットを使用することができます。
これらの新機能により、コマンドレットは、 Import-Module
Windows オペレーティング システムを実行するコンピューターや他のオペレーティング システムを実行しているコンピューターを含む異種企業を管理するための主要なツールになります。
PowerShell と PowerShell リモート処理が有効になっている Windows オペレーティング システムを実行するリモート コンピューターを管理するには、リモート コンピューターに PSSession を作成し、 の Get-Module
PSSession パラメーターを使用して PSSession 内の PowerShell モジュールを取得します。 モジュールをインポートしてから、現在のセッションでインポートしたコマンドを使用すると、コマンドはリモート コンピューターの PSSession で暗黙的に実行されます。 この戦略を使用して、リモート コンピューターを管理できます。
同様の方法を使用して、PowerShell リモート処理が有効になっていないコンピューター (Windows オペレーティング システムを実行していないコンピューター、PowerShell を使用しているが PowerShell リモート処理が有効になっていない Windows コンピューターなど) を管理できます。
まず、リモート コンピューター上に CIM セッションを作成します。これは、リモート コンピューター上の Windows Management Instrumentation (WMI) への接続です。 次に、 の Import-Module
CIMSession パラメーターを使用して、リモート コンピューターから CIM モジュールをインポートします。 CIM モジュールをインポートし、インポートされたコマンドを実行すると、コマンドはリモート コンピューター上で暗黙的に実行されます。 この WMI と CIM の戦略を使用して、リモート コンピューターを管理できます。
例
例 1: モジュールのメンバーを現在のセッションにインポートする
次の使用例は、 PSDiagnostics モジュールのメンバーを現在のセッションにインポートします。 Name パラメーター名は省略可能であり、省略できます。
Import-Module -Name PSDiagnostics
既定では、 Import-Module
はモジュールをインポートするときに出力を生成しません。 出力を要求するには、PassThru パラメーター、AsCustomObject パラメーター、または Verbose 共通パラメーターを使用します。
例 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
は、モジュールを現在のセッションにインポートするために使用されます。
これらのコマンドは、パイプライン演算子 (|
) を使用してコマンドの Get-Module
出力を に送信することと 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
モジュールの読み込み時に進行状況が報告されます。
Verbose、PassThru、または AsCustomObject パラメーターがないと、Import-Module
モジュールをインポートするときに出力は生成されません。
例 5: セッションにインポートされるモジュール メンバーを制限する
この例では、セッションにインポートするモジュール メンバーと、このコマンドがセッションに与える影響を制限する方法を示します。
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
最初のコマンドは、PSDiagnostics モジュールから コマンドレットと Enable-PSTrace
コマンドレットのみをDisable-PSTrace
インポートします。 Function パラメーターは、モジュールからインポートされるメンバーを制限します。 Alias、Variable、および Cmdlet パラメーターを使用して、モジュールがインポートする他のメンバーを制限することもできます。
コマンドレットはGet-Module
、PSDiagnostics モジュールを表す オブジェクトを取得します。 ExportedCmdlets プロパティは、すべてインポートされていない場合でも、モジュールがエクスポートするすべてのコマンドレットを一覧表示します。
3 番目のコマンドでは、コマンドレットの Get-Command
Module パラメーターは、PSDiagnostics モジュールからインポートされたコマンドを取得します。 結果は、 コマンドレットと Enable-PSTrace
コマンドレットのみがDisable-PSTrace
インポートされたことを確認します。
例 6: モジュールのメンバーをインポートし、プレフィックスを追加する
次の使用例は、 PSDiagnostics モジュールを現在のセッションにインポートし、メンバー名にプレフィックスを追加して、プレフィックス付きのメンバー名を表示します。 プレフィックスは、現在のセッションのメンバーにのみ適用されます。 モジュールは変更されません。
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
の Prefix パラメーター Import-Module
を使用して、モジュールからインポートされるすべてのメンバーに x プレフィックスを追加し、 PassThru パラメーターを使用して、インポートされたモジュールを表すモジュール オブジェクトを返します。
Get-Command
モジュールからインポートされたメンバーを取得するコマンドレット。 出力から、モジュール メンバーにプレフィックスが正しく追加されたことがわかります。
例 7: カスタム オブジェクトを取得して使用する
これらのコマンドは、Import-Module が返すカスタム オブジェクトの取得方法と使用方法を示します。
カスタム オブジェクトには、インポートされた各モジュール メンバーを表す合成メンバーが含まれます。 たとえば、モジュールのコマンドレットと関数は、カスタム オブジェクトのスクリプト メソッドに変換されます。
カスタム オブジェクトはスクリプトに非常に便利です。 また、インポートされた複数のオブジェクトが同じ名前を持つ場合にも役立ちます。 オブジェクトのスクリプト メソッドを使用すると、モジュール名を含め、インポートされたメンバーの完全修飾名を指定した場合と同じ効果が得られます。
AsCustomObject パラメーターは、スクリプト モジュールのインポートでのみ使用できるため、まず利用可能なモジュールのうちでどのモジュールがスクリプト モジュールかを決定します。
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"()
最初のコマンドでは、 コマンドレットを Get-Module
使用して使用可能なモジュールを取得します。 コマンドでは、パイプライン演算子を使用してモジュール オブジェクトをコマンドレットに Format-Table
渡します。このコマンドレットには、テーブル内の各モジュールの 名前 と ModuleType が一覧表示されます。
2 番目のコマンドでは、 コマンドレットを Import-Module
使用して Show-Calendar スクリプト モジュールをインポートします。
このコマンドでは、 AsCustomObject パラメーターを使用してカスタム オブジェクトを要求し、 PassThru パラメーターを使用してオブジェクトを返します。 コマンドは、結果のカスタム オブジェクトを 変数に $a
保存します。
3 番目のコマンドでは、パイプライン演算子を使用して 変数を Get-Member
コマンドレットに送信$a
します。これにより、 の PSCustomObject$a
のプロパティとメソッドが取得されます。 出力には Show-Calendar() スクリプト メソッドが表示されます。
最後のコマンドは、Show-Calendar スクリプト メソッドを使用します。 メソッド名にはハイフンが含まれるため、引用符で囲む必要があります。
例 8: モジュールを同じセッションに再インポートする
この例では、モジュールを同じセッションに再インポートするときに、 の Import-Module
Force パラメーターを使用する方法を示します。
Import-Module PSDiagnostics
Import-Module PSDiagnostics -Force -Prefix PS
最初のコマンドは 、PSDiagnostics モジュールを インポートします。 2 番目のコマンドは、このモジュールを今度は Prefix パラメーターを使用してインポートします。
Force パラメーターを使用してモジュールImport-Module
を削除し、再度インポートします。 このパラメーターを指定しないと、セッションには各 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:26:12 PM
最初の Get-Datecmdlet returns a **DateTime** object with the current date. After importing the **TestModule** module,
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: モジュールの最小バージョンをインポートする
Import-Module -Name PSWorkflow -MinimumVersion 3.0.0.0
このコマンドは 、PSWorkflow モジュールをインポートします。 の MinimumVersion パラメーターImport-Module
を使用して、モジュールのバージョン 3.0.0.0 以降のみをインポートします。
RequiredVersion パラメーターを使用してモジュールの特定のバージョンをインポートしたり、キーワード (keyword)の Module パラメーターと Version パラメーターを#Requires
使用してスクリプト内のモジュールの特定のバージョンを要求したりすることもできます。
例 11: リモート コンピューターからモジュールをインポートする
この例では、 コマンドレットを使用 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
保存します。
2 番目のコマンドでは、 コマンドレットの PSSession パラメーターを Get-Module
使用して、 変数のセッションで NetSecurity モジュールを $s
取得します。 このコマンドは、 コマンドレットを使用して (Invoke-Command
) のセッション$s
Invoke-Command $s {Get-Module -ListAvailable -Name NetSecurity
でコマンドを実行Get-Module
するのと同じです。出力は、NetSecurity モジュールがコンピューターにインストールされ、 変数内のセッションで$s
使用できる状態であることを示しています。
3 番目のコマンドでは、 コマンドレットの PSSession パラメーターをImport-Module
使用して、変数の$s
セッションから現在のセッションに NetSecurity モジュールをインポートします。
4 番目のコマンドでは、 コマンドレットをGet-Command
使用して、Get で始まるコマンドを取得し、NetSecurity モジュールから Firewall を含めます。出力はコマンドを取得し、モジュールとそのコマンドレットが現在のセッションにインポートされたことを確認します。
5 番目のコマンドでは、 コマンドレットを Get-NetFirewallRule
使用して、Server01 コンピューター上の Windows リモート管理ファイアウォール規則を取得します。 このコマンドは、 コマンドレットをInvoke-Command
使用して、 変数の$s
セッションでコマンドを実行Get-NetFirewallRule
するのと同じです。
例 12: Windows オペレーティング システムを使用せずにリモート コンピューター上のストレージを管理する
この例では、コンピューターの管理者によってモジュール検出用の WMI プロバイダーがインストールされているため、CIM コマンドでプロバイダー用の既定値を使用できます。
この例のコマンドを使用すると、Windows オペレーティング システムを実行していないリモート コンピューターのストレージ システムを管理できます。
最初のコマンドでは、 コマンドレットを New-CimSession
使用して、RSDGF03リモート コンピューターにセッションを作成します。 このセッションは、リモート コンピューター上の WMI に接続します。 コマンドは、CIM セッションを 変数に $cs
保存します。
2 番目のコマンドでは、 変数の CIM セッションを $cs
使用して、 Import-Module
RSDGF03 コンピューターでコマンドを実行します。 このコマンドは、Name パラメーターを使用して、 Storage CIM モジュールを指定します。
3 番目のコマンドは、Get-Command
Storage モジュールの Get-Disk
コマンドで コマンドを実行します。 CIM モジュールをローカル セッションにインポートすると、PowerShell は各コマンドの CDXML ファイルを PowerShell スクリプトに変換します。これは、ローカル セッションの関数として表示されます。
4 番目のコマンドは、 コマンドを 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 を使用して参照することもできます。 詳細については、「about_Aliases」を参照してください。
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
モジュール仕様の完全修飾名を指定します。
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
最小バージョンを指定します。 このコマンドレットは、指定した値以上のバージョンのモジュールのみをインポートします。 該当するバージョンがない場合は、 Import-Module
エラーが生成されます。
既定では、 Import-Module
バージョン番号を確認せずにモジュールをインポートします。
MinimumVersion パラメーター名またはそのエイリアス Version を使用します。
正確なバージョンを指定するには、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
インポートするモジュールの名前を指定します。 .psd1、.psm1、.dll、.ps1 ファイルなど、モジュール名またはモジュールのファイル名を入力します。 ファイル パスは省略可能です。 ワイルドカード文字は使用できません。 モジュール名とファイル名を に Import-Module
パイプすることもできます。
パスを省略した場合は、 Import-Module
環境変数に保存されているパスでモジュールを $env:PSModulePath
探します。
可能な限り、モジュール名のみを指定してください。 ファイル名を指定した場合は、そのファイルに実装されているメンバーのみがインポートされます。 モジュールにその他のファイルが含まれている場合、それらのファイルはインポートされないため、モジュールの重要なメンバーを取得できない可能性があります。
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 Core モジュールをインポートできません。 PowerShell Core モジュールには、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 の値と共に使用して、モジュールコンテンツをスクリプトまたはスクリプトブロックスコープにインポートできます。
別のモジュールから呼び出されると、 Import-Module
コマンドレットはモジュール内のコマンド (入れ子になったモジュールからのコマンドを含む) を呼び出し元のセッション状態にインポートします。 または -Global
を-Scope Global
指定すると、このコマンドレットはモジュールをグローバル セッション状態にインポートして、セッション内のすべてのコマンドで使用できるようにします。
Global パラメーターは、値が Global の Scope パラメーターと同じです。
このパラメーターは Windows PowerShell 3.0 で導入されました。
Type: | String |
Accepted values: | Local, Global |
Position: | Named |
Default value: | Current scope |
Required: | False |
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 |
入力
System.String, System.Management.Automation.PSModuleInfo, System.Reflection.Assembly
モジュール名、モジュール オブジェクト、またはアセンブリ オブジェクトをこのコマンドレットにパイプできます。
出力
None, System.Management.Automation.PSModuleInfo, or System.Management.Automation.PSCustomObject
このコマンドレットは、 PSModuleInfo または PSCustomObject を返します。 既定では、 Import-Module
では出力は生成されません。 PassThru パラメーターを指定すると、モジュールを表す System.Management.Automation.PSModuleInfo オブジェクトが生成されます。 AsCustomObject パラメーターを指定すると、PSCustomObject オブジェクトが生成されます。
メモ
モジュールをインポートする前に、モジュールをローカル コンピューターにインストールする必要があります。 つまり、モジュール ディレクトリは、ローカル コンピューターからアクセスできるディレクトリにコピーする必要があります。 詳細については、「 about_Modules」を参照してください。
また、PSSession パラメーターと CIMSession パラメーターを使用すれば、リモート コンピューターにインストールされているモジュールをインポートすることもできます。 ただし、これらのモジュールでコマンドレットを使用するコマンドは、実際にはリモート コンピューターのリモート セッションで実行されます。
同じ名前と同じ種類のメンバーをセッションにインポートする場合、PowerShell では既定で最後にインポートされたメンバーが使用されます。 変数とエイリアスは置き換えられ、オリジナルにはアクセスできなくなります。 関数、コマンドレット、プロバイダーは、単に新しいメンバーによってシャドウされます。 これらは、スナップイン、モジュール、または関数パスの名前でコマンド名を修飾することでアクセスできます。
モジュールからインポートされたコマンドの書式設定データを更新するには、 コマンドレットを使用します
Update-FormatData
。Update-FormatData
では、モジュールからインポートされたセッション内のコマンドの書式設定データも更新されます。 モジュールの書式設定ファイルが変更された場合は、コマンドをUpdate-FormatData
実行して、インポートされたコマンドの書式設定データを更新できます。 モジュールを再度インポートする必要はありません。Windows PowerShell 3.0 以降では、PowerShell と共にインストールされるコア コマンドはモジュールにパッケージ化されています。 Windows PowerShell 2.0 およびそれ以降のバージョンの PowerShell で古いスタイルのセッションを作成するホスト プログラムでは、コア コマンドはスナップイン (PSSnapins) にパッケージ化されています。 例外は Microsoft.PowerShell.Core です。これは常にスナップインです。 また、コマンドレットによって
New-PSSession
開始されたものなどのリモート セッションは、コア スナップインを含む古いスタイルのセッションです。コア モジュールを使用して新しいスタイルのセッションを作成する CreateDefault2 メソッドの詳細については、「 CreateDefault2 メソッド」を参照してください。
Import-Module
別のセッションから PowerShell Core モジュールをインポートできません。 PowerShell Core モジュールには、Microsoft.PowerShell で始まる名前があります。Windows PowerShell 2.0 では、ExportCmdlets プロパティや NestedModules プロパティ値など、モジュール オブジェクトの一部のプロパティ値は、モジュールがインポートされるまで設定されず、PassThru パラメーターが返すモジュール オブジェクトでは使用できませんでした。 Windows PowerShell 3.0 では、すべてのモジュール プロパティ値が設定されます。
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 セッション機能を使用するには、リモート コンピューターにおいて、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 を使用してセッションを作成します。