Import-PSSession
別のセッションから現在のセッションにコマンドをインポートします。
構文
Import-PSSession
[-Prefix <String>]
[-DisableNameChecking]
[[-CommandName] <String[]>]
[-AllowClobber]
[-ArgumentList <Object[]>]
[-CommandType <CommandTypes>]
[-Module <String[]>]
[-FullyQualifiedModule <ModuleSpecification[]>]
[[-FormatTypeName] <String[]>]
[-Certificate <X509Certificate2>]
[-Session] <PSSession>
[<CommonParameters>]
説明
Import-PSSession コマンドレットは、コマンドレット、関数、エイリアスなどのコマンドを、ローカルまたはリモート コンピューター上の PSSession から現在のセッションにインポートします。 Get-Command コマンドレットが PSSession で検出できる任意のコマンドをインポートできます。
Import-PSSession コマンドを使用して、Microsoft Exchange Server シェルなどのカスタマイズされたシェルから、またはWindows PowerShell モジュールとスナップイン、または現在のセッションにないその他の要素を含むセッションからコマンドをインポートします。
コマンドをインポートするには、まず New-PSSession コマンドレットを使用して PSSession を作成します。 次に、 Import-PSSession コマンドレットを使用してコマンドをインポートします。 既定では、 Import-PSSession は、現在のセッションのコマンドと同じ名前のコマンドを除くすべてのコマンドをインポートします。 すべてのコマンドをインポートするには、AllowClobber パラメーター 使用します。
インポートされたコマンドは、セッション内の任意のコマンドを使用するのと同じように使用できます。 インポートされたコマンドを使用すると、インポート元のセッションで、コマンドのインポートされた部分が暗黙的に実行されます。 ただし、リモート操作は Windows PowerShell によって完全に処理されます。 他のセッション (PSSession) への接続を開いたままにする必要がある点を除き、それらを認識する必要もありません。 閉じると、インポートされたコマンドは使用できなくなります。
インポートされたコマンドはローカル コマンドよりも実行に時間がかかる場合があるため、 Import-PSSession はインポートされたすべてのコマンドに AsJob パラメーターを追加します。 このパラメーターを使用すると、Windows PowerShell バックグラウンド ジョブとしてコマンドを実行できます。 詳細については、「about_Jobs」を参照してください。
Import-PSSession を使用すると、Windows PowerShell は、インポートされたコマンドをセッションにのみ存在する一時モジュールに追加し、モジュールを表すオブジェクトを返します。 将来のセッションで使用できる永続モジュールを作成するには、Export-PSSession コマンドレットを使用します。
Import-PSSession コマンドレットは、Windows PowerShell の暗黙的なリモート処理機能を使用します。 現在のセッションにコマンドをインポートすると、元のセッションまたは元のコンピューター上の同様のセッションで暗黙的に実行されます。
Windows PowerShell 3.0 以降では、Import-Module コマンドレットを使用して、リモート セッションから現在のセッションにモジュールをインポートできます。 この機能では、暗黙的なリモート処理が使用されます。 これは、 Import-PSSession を使用して、選択したモジュールをリモート セッションから現在のセッションにインポートするのと同じです。
例
例 1: PSSession からすべてのコマンドをインポートする
PS C:\> $S = New-PSSession -ComputerName Server01
PS C:\> Import-PSSession -Session $S
このコマンドは、現在のセッションのコマンドと同じ名前のコマンドを除き、Server01 コンピューター上の PSSession からすべてのコマンドを現在のセッションにインポートします。
このコマンドは CommandName パラメーターを使用しないため、インポートされたコマンドに必要なすべての書式設定データもインポートします。
例 2: 特定の文字列で終わるコマンドをインポートする
PS C:\> $S = New-PSSession https://ps.testlabs.com/powershell
PS C:\> Import-PSSession -Session $S -CommandName *-test -FormatTypeName *
PS C:\> New-Test -Name Test1
PS C:\> Get-Test test1 | Run-Test
これらのコマンドは、PSSession から "-test" で終わる名前のコマンドをローカル セッションにインポートし、インポートされたコマンドレットの使用方法を示します。
最初のコマンドでは、New-PSSession コマンドレットを使用して PSSession を作成します。 PSSession を $S 変数に保存します。
2 番目のコマンドは、 Import-PSSession コマンドレットを使用して、$S の PSSession から現在のセッションにコマンドをインポートします。 CommandName パラメーターを使用して、Test 名詞と FormatTypeName パラメーターを使用してコマンドを指定し、テスト コマンドの書式設定データをインポートします。
3 番目と 4 番目のコマンドは、現在のセッションでインポートされたコマンドを使用します。 インポートされたコマンドは実際には現在のセッションに追加されるため、ローカル構文を使用してコマンドを実行します。 インポートしたコマンドを実行するために Invoke-Command コマンドレットを使用する必要はありません。
例 3: PSSession からコマンドレットをインポートする
PS C:\> $S1 = New-PSSession -ComputerName s1
PS C:\> $S2 = New-PSSession -ComputerName s2
PS C:\> Import-PSSession -Session s1 -Type cmdlet -Name New-Test, Get-Test -FormatTypeName *
PS C:\> Import-PSSession -Session s2 -Type Cmdlet -Name Set-Test -FormatTypeName *
PS C:\> New-Test Test1 | Set-Test -RunType Full
この例では、ローカル コマンドレットを使用する場合と同様に、インポートされたコマンドレットを使用できることを示します。
これらのコマンドは、Server01 コンピューター上の PSSession から New-Test コマンドレットと Get-Test コマンドレットをインポートし、Server02 コンピューター上の PSSession から Set-Test コマンドレットをインポートします。
コマンドレットが異なる PSSession からインポートされた場合でも、エラーなしで 1 つのコマンドレットから別のコマンドレットにオブジェクトをパイプできます。
例 4: インポートされたコマンドをバックグラウンド ジョブとして実行する
PS C:\> $S = New-PSSession -ComputerName Server01
PS C:\> Import-PSSession -Session $S -CommandName *-test* -FormatTypeName *
PS C:\> $batch = New-Test -Name Batch -AsJob
PS C:\> Receive-Job $batch
この例では、インポートしたコマンドをバックグラウンド ジョブとして実行する方法を示します。
インポートされたコマンドはローカル コマンドよりも実行に時間がかかる場合があるため、 Import-PSSession はインポートされたすべてのコマンドに AsJob パラメーターを追加します。 AsJob パラメーターを使用すると、バックグラウンド ジョブとしてコマンドを実行できます。
最初のコマンドは、Server01 コンピューター上に PSSession を作成し、PSSession オブジェクトを $S 変数に保存します。
2 番目のコマンドは、 Import-PSSession を使用して、$S の PSSession から現在のセッションにテスト コマンドレットをインポートします。
3 番目のコマンドは、インポートされた New-Test コマンドレットの AsJob パラメーターを使用して、New-Test コマンドをバックグラウンド ジョブとして実行します。 このコマンドは、New-Test が返すジョブ・オブジェクトを $batch 変数に保存します。
4 番目のコマンドでは、Receive-Job コマンドレットを使用して、ジョブの結果を $batch 変数で取得します。
例 5: Windows PowerShell モジュールからコマンドレットと関数をインポートする
PS C:\> $S = New-PSSession -ComputerName Server01
PS C:\> Invoke-Command -Session $S {Import-Module TestManagement}
PS C:\> Import-PSSession -Session $S -Module TestManagement
この例では、リモート コンピューター上の Windows PowerShell モジュールから現在のセッションにコマンドレットと関数をインポートする方法を示します。
最初のコマンドは、Server01 コンピューター上に PSSession を作成し、$S 変数に保存します。
2 番目のコマンドは、 Invoke-Command コマンドレットを使用して、$S の PSSession で Import-Module コマンドを実行します。
通常、モジュールは Windows PowerShell プロファイルの Import-Module コマンドによってすべてのセッションに追加されますが、プロファイルは PSSessions では実行されません。
3 番目のコマンドは、Import-PSSession の Module パラメーターを使用して、モジュール内のコマンドレットと関数を現在のセッションにインポートします。
例 6: 一時ファイルにモジュールを作成する
PS C:\> Import-PSSession $S -CommandName Get-Date, SearchHelp -FormatTypeName * -AllowClobber
Name : tmp_79468106-4e1d-4d90-af97-1154f9317239_tcw1zunz.ttf
Path : C:\Users\User01\AppData\Local\Temp\tmp_79468106-4e1d-4d90-af97-1154f9317239_tcw1zunz.ttf\tmp_79468106-4e1d-4d90-af97-1154f9317239_
tcw1zunz.ttf.psm1
Description : Implicit remoting for http://server01.corp.fabrikam.com/wsman
Guid : 79468106-4e1d-4d90-af97-1154f9317239
Version : 1.0
ModuleBase : C:\Users\User01\AppData\Local\Temp\tmp_79468106-4e1d-4d90-af97-1154f9317239_tcw1zunz.ttf
ModuleType : Script
PrivateData : {ImplicitRemoting}
AccessMode : ReadWrite
ExportedAliases : {}
ExportedCmdlets : {}
ExportedFunctions : {[Get-Date, Get-Date], [SearchHelp, SearchHelp]}
ExportedVariables : {}
NestedModules : {}
この例では、 Import-PSSession がディスク上の一時ファイルにモジュールを作成することを示しています。 また、すべてのコマンドが現在のセッションにインポートされる前に関数に変換されていることも示しています。
このコマンドでは、 Import-PSSession コマンドレットを使用して、Get-Date コマンドレットと SearchHelp 関数を現在のセッションにインポートします。
Import-PSSession コマンドレットは、一時モジュールを表す PSModuleInfo オブジェクトを返します。 Path プロパティの値は、Import-PSSession が一時的な場所にスクリプト モジュール (.psm1) ファイルを作成したことを示しています。 ExportedFunctions プロパティは、 Get-Date コマンドレットと SearchHelp 関数の両方が関数としてインポートされたことを示しています。
例 7: インポートされたコマンドで非表示になっているコマンドを実行する
PS C:\> Import-PSSession $S -CommandName Get-Date -FormatTypeName * -AllowClobber
PS C:\> Get-Command Get-Date -All
CommandType Name Definition
----------- ---- ----------
Function Get-Date ...
Cmdlet Get-Date Get-Date [[-Date] <DateTime>] [-Year <Int32>] [-Month <Int32>]
PS C:\> Get-Date
09074
PS C:\> (Get-Command -Type Cmdlet -Name Get-Date).PSSnapin.Name
Microsoft.PowerShell.Utility
PS C:\> Microsoft.PowerShell.Utility\Get-Date
Sunday, March 15, 2009 2:08:26 PM
この例では、インポートしたコマンドで非表示になっているコマンドを実行する方法を示します。
最初のコマンドは、$S 変数の PSSession から Get-Date コマンドレットをインポートします。 現在のセッションには Get-Date コマンドレットが含まれているため、コマンドには AllowClobber パラメーターが必要です。
2 番目のコマンドは、Get-Command コマンドレットの All パラメーターを使用して、現在のセッション内のすべての Get-Date コマンドを取得します。 出力は、セッションに元の Get-Date コマンドレットと Get-Date 関数が含まれていることを示しています。 Get-Date 関数は、$S の PSSession でインポートされた Get-Date コマンドレットを実行します。
3 番目のコマンドは Get-Date コマンドを実行します。 関数はコマンドレットよりも優先されるため、Windows PowerShell はインポートされた Get-Date 関数を実行し、ユリウス日を返します。
4 番目と 5 番目のコマンドは、修飾名を使用して、インポートされたコマンドで非表示になっているコマンドを実行する方法を示しています。
4 番目のコマンドは、元の Get-Date コマンドレットを現在のセッションに追加した Windows PowerShell スナップインの名前を取得します。
5 番目のコマンドでは、 Get-Date コマンドレットのスナップイン修飾名を使用して Get-Date コマンドを実行します。
コマンドの優先順位と隠しコマンドの詳細については、「about_Command_Precedence」を参照してください。
例 8: 名前に特定の文字列を含むコマンドをインポートする
PS C:\> Import-PSSession -Session $S -CommandName *Item* -AllowClobber
このコマンドは、$S の PSSession から名前に "Item" が含まれるコマンドをインポートします。 コマンドには CommandName パラメーターが含まれていますが、FormatTypeData パラメーターは含まれていないため、コマンドのみがインポートされます。
このコマンドは、 Import-PSSession を使用してリモート コンピューターでコマンドを実行し、現在のセッションにコマンドの書式設定データが既にある場合に使用します。
例 9: Module パラメーターを使用して、セッションにインポートされたコマンドを検出する
PS C:\> $M = Import-PSSession -Session $S -CommandName *bits* -FormatTypeName *bits*
PS C:\> Get-Command -Module $M
CommandType Name
----------- ----
Function Add-BitsFile
Function Complete-BitsTransfer
Function Get-BitsTransfer
Function Remove-BitsTransfer
Function Resume-BitsTransfer
Function Set-BitsTransfer
Function Start-BitsTransfer
Function Suspend-BitsTransfer
このコマンドは、Get-Command の Module パラメーターを使用して、Import-PSSession コマンドによってセッションにインポートされたコマンドを確認する方法を示しています。
最初のコマンドでは、 Import-PSSession コマンドレットを使用して、$S 変数に PSSession の "ビット" が含まれる名前のコマンドをインポートします。 Import-PSSession コマンドは一時モジュールを返し、コマンドはモジュールを $m 変数に保存します。
2 番目のコマンドでは、Get-Command コマンドレットを使用して、モジュールによってエクスポートされたコマンドを $M 変数に取得します。
Module パラメーターは、モジュール名用に設計された文字列値を受け取ります。 ただし、モジュール オブジェクトを送信すると、Windows PowerShell はモジュール オブジェクトに対して ToString メソッドを使用し、モジュール名を返します。
Get-Command コマンドは Get-Command $M.Name
" に相当します。
パラメーター
-AllowClobber
指定したコマンドが現在のセッションのコマンドと同じ名前であっても、このコマンドレットによってインポートされることを示します。
現在のセッションのコマンドと同じ名前のコマンドをインポートすると、インポートされたコマンドは元のコマンドを非表示または置換します。 詳細については、「about_Command_Precedence」を参照してください。
既定では、 Import-PSSession は、現在のセッションのコマンドと同じ名前のコマンドはインポートしません。
型: | SwitchParameter |
配置: | Named |
規定値: | None |
必須: | False |
パイプライン入力を受け取る: | False |
ワイルドカード文字を受け取る: | False |
-ArgumentList
指定した引数 (パラメーター値) を使用した結果のコマンドの配列を指定します。
たとえば、$S の PSSession の証明書 (Cert:) ドライブに Get-Item コマンドのバリアントをインポートするには、「 Import-PSSession -Session $S -Command Get-Item -ArgumentList cert:
」と入力します。
型: | Object[] |
Aliases: | Args |
配置: | Named |
規定値: | None |
必須: | False |
パイプライン入力を受け取る: | False |
ワイルドカード文字を受け取る: | False |
-Certificate
フォーマット・ファイルの署名に使用するクライアント証明書を指定します (*.Format.ps1xml) またはスクリプト モジュール ファイル (.psm1) を Import-PSSession が作成する一時モジュールに含めます。
証明書を含む変数、または証明書を取得するコマンドまたは式を入力します。
証明書を検索するには、Get-PfxCertificate コマンドレットを使用するか、証明書 (Cert:) ドライブの Get-ChildItem コマンドレットを使用します。 証明書が有効でない場合、または十分な権限を持っていない場合、コマンドは失敗します。
型: | X509Certificate2 |
配置: | Named |
規定値: | None |
必須: | False |
パイプライン入力を受け取る: | False |
ワイルドカード文字を受け取る: | False |
-CommandName
指定した名前または名前パターンを持つコマンドを指定します。 ワイルドカードを使用できます。 CommandName またはそのエイリアス 名前 使用します。
既定では、 Import-PSSession は、現在のセッションのコマンドと同じ名前のコマンドを除き、セッションからすべてのコマンドをインポートします。 これにより、インポートされたコマンドがセッション内のコマンドを非表示にしたり置き換えたりできなくなります。 他のコマンドを非表示または置き換えるコマンドであっても、すべてのコマンドをインポートするには、AllowClobber パラメーターを使用します。
CommandName パラメーターを使用する場合、FormatTypeName パラメーターを使用しない限り、コマンドの書式設定ファイルはインポートされません。 同様に、FormatTypeName パラメーターを使用する場合、CommandName パラメーターを使用しない限り、コマンドはインポートされません。
型: | String[] |
Aliases: | Name |
配置: | 2 |
規定値: | None |
必須: | False |
パイプライン入力を受け取る: | False |
ワイルドカード文字を受け取る: | False |
-CommandType
コマンド オブジェクトの種類を指定します。 既定値はコマンドレットです。 CommandType またはそのエイリアス 使用します。型。 このパラメーターに使用できる値は次のとおりです。
- 別名。 リモート セッションの Windows PowerShell エイリアス。
- すべて。 リモート セッションのコマンドレットと関数。
- アプリケーション をクリックします。 リモート・セッションの Path 環境変数 ($env:path) にリストされているパス内の Windows-PowerShell ファイル以外のすべてのファイル (.txt、 .exe、 .dll ファイルを含む)。
- コマンドレット。 リモート セッションのコマンドレット。 "コマンドレット" が既定値です。
- ExternalScript です。 リモート・セッションの Path 環境変数 ($env:path) にリストされているパス内の .ps1 ファイル。
- フィルターと機能。 Windows PowerShell はリモート セッションで機能します。
- スクリプト。 スクリプトはリモートセッションでブロックします。
型: | CommandTypes |
Aliases: | Type |
指定可能な値: | Alias, Function, Filter, Cmdlet, ExternalScript, Application, Script, Workflow, Configuration, All |
配置: | Named |
規定値: | None |
必須: | False |
パイプライン入力を受け取る: | False |
ワイルドカード文字を受け取る: | False |
-DisableNameChecking
名前に未承認の動詞または禁止文字が含まれるコマンドレットまたは関数をインポートするときに警告するメッセージが、このコマンドレットによって抑制されることを示します。
既定では、インポートするモジュールが、名前に未承認の動詞を含むコマンドレットまたは関数をエクスポートすると、Windows PowerShell によって次の警告メッセージが表示されます。
"警告: 一部のインポートされたコマンド名には未承認の動詞が含まれており、見つけにくくなることがあります。 詳細を表示するには Verbose パラメーターを使用するか、「Get-Verb」と入力して承認された動詞の一覧を表示します。
このメッセージは、警告のみです。 完全なモジュールは、準拠していないコマンドを含め、引き続きインポートされます。 メッセージはモジュール ユーザーに表示されますが、モジュールの作成者が名前付けの問題を修正する必要があります。
型: | SwitchParameter |
配置: | Named |
規定値: | None |
必須: | False |
パイプライン入力を受け取る: | False |
ワイルドカード文字を受け取る: | False |
-FormatTypeName
指定した Microsoft .NET Framework 型の書式設定手順を指定します。 型名を入力します。 ワイルドカードを使用できます。
このパラメーターの値は、コマンドのインポート元であるセッションで Get-FormatData コマンドによって返されるタイプの名前である必要があります。 リモート・セッションのすべてのフォーマット・データを取得するには、「*」と入力します。
コマンドに CommandName パラメーターと FormatTypeName パラメーターが含まれていない場合、 Import-PSSession は、リモート セッションの Get-FormatData コマンドによって返されるすべての .NET Framework 型の書式設定命令をインポートします。
FormatTypeName パラメーターを使用する場合、CommandName パラメーターを使用しない限り、コマンドはインポートされません。
同様に、CommandName パラメーターを使用する場合、FormatTypeName パラメーターを使用しない限り、コマンドの書式設定ファイルはインポートされません。
型: | String[] |
配置: | 3 |
規定値: | None |
必須: | False |
パイプライン入力を受け取る: | False |
ワイルドカード文字を受け取る: | False |
-FullyQualifiedModule
ModuleSpecification オブジェクトの形式で指定される名前を持つモジュールを指定します (MSDN ライブラリの「ModuleSpecification コンストラクタ (Hashtable)」の解説セクションで説明されています)。 たとえば、 FullyQualifiedModule パラメーターは、@{ModuleName = "modulename"; の形式で指定されるモジュール名を受け入れます。ModuleVersion = "version_number"} または @{ModuleName = "modulename";ModuleVersion = "version_number";Guid = "GUID"} です。 ModuleName と ModuleVersion は必須ですが、 Guid は省略可能です。
FullyQualifiedModule パラメーターを Module パラメーターと同じコマンドで指定することはできません。この 2 つのパラメーターは相互に排他的です。
型: | ModuleSpecification[] |
配置: | Named |
規定値: | None |
必須: | False |
パイプライン入力を受け取る: | False |
ワイルドカード文字を受け取る: | False |
-Module
Windows PowerShell スナップインとモジュール内のコマンドの指定と配列。 スナップインとモジュール名を入力します。 ワイルドカードは使用できません。
Import-PSSession は、スナップインからプロバイダーをインポートできません。
詳細については、「about_PSSnapins と about_Modules」を参照してください。
型: | String[] |
Aliases: | PSSnapin |
配置: | Named |
規定値: | None |
必須: | False |
パイプライン入力を受け取る: | False |
ワイルドカード文字を受け取る: | False |
-Prefix
インポートされたコマンドの名前の名詞のプレフィックスを指定します。
セッション内の異なるコマンドの名前が同じ場合に発生する可能性がある名前の競合を回避するには、このパラメーターを使用します。
たとえば、プレフィックス Remote を指定してから Get-Date コマンドレットをインポートすると、そのコマンドレットはセッションで Get-RemoteDate として認識され、元の Get-Date コマンドレットと混同されることはありません。
型: | String |
配置: | Named |
規定値: | None |
必須: | False |
パイプライン入力を受け取る: | False |
ワイルドカード文字を受け取る: | False |
-Session
コマンドレットのインポート元 PSSession を指定します。 セッション・オブジェクトを含む変数、またはセッション・オブジェクトを取得するコマンド (New-PSSession コマンドや Get-PSSession コマンドなど) を入力します。 指定できるセッションは 1 つだけです。 このパラメーターは必須です。
型: | PSSession |
配置: | 0 |
規定値: | None |
必須: | True |
パイプライン入力を受け取る: | False |
ワイルドカード文字を受け取る: | False |
入力
None
このコマンドレットにオブジェクトをパイプすることはできません。
出力
Import-PSSession は、New-Module コマンドレットと Get-Module コマンドレットが返すのと同じモジュール オブジェクトを返します。 ただし、インポートされたモジュールは一時的なものであり、現在のセッションにのみ存在します。 ディスク上に永続的なモジュールを作成するには、Export-PSSession コマンドレットを使用します。
メモ
- Import-PSSession は、Windows PowerShell リモート処理インフラストラクチャに依存しています。 このコマンドレットを使用するには、コンピューターを WS-Management リモート処理用に構成する必要があります。 詳細については、「about_Remote」および「about_Remote_Requirements」を参照してください。
- Import-PSSession では、変数や Windows PowerShell プロバイダーはインポートされません。
- 現在のセッションのコマンドと同じ名前のコマンドをインポートすると、インポートされたコマンドはセッション内のエイリアス、関数、コマンドレットを非表示にすることができ、セッション内の関数と変数を置き換えることができます。 名前の競合を防ぐには、Prefix パラメーターを使用します。 詳細については、「about_Command_Precedence」を参照してください。
- Import-PSSession は、すべてのコマンドをインポートする前に関数に変換します。 その結果、インポートされたコマンドの動作は、元のコマンドの種類を保持した場合とは少し異なります。 たとえば、PSSession からコマンドレットをインポートし、モジュールまたはスナップインから同じ名前のコマンドレットをインポートすると、関数がコマンドレットよりも優先されるため、PSSession からインポートされるコマンドレットは常に既定で実行されます。 逆に、エイリアスが同じ名前のエイリアスを持つセッションにエイリアスをインポートすると、エイリアスが関数よりも優先されるため、元のエイリアスが常に使用されます。 詳細については、「about_Command_Precedence」を参照してください。
- Import-PSSession は、Write-Progress コマンドレットを使用してコマンドの進行状況を表示します。 コマンドの実行中に進行状況バーが表示されることがあります。
- インポートするコマンドを見つけるために、 Import-PSSession は Invoke-Command コマンドレットを使用して PSSession で Get-Command コマンドを実行します。 コマンドの書式設定データを取得するには、Get-FormatData コマンドレットを使用します。 これらのコマンドレットからエラー メッセージは、 Import-PSSession コマンドを実行すると表示される場合があります。 また、 Import-PSSession は、Get-Command、Get-FormatData、Select-Object、Get-Help コマンドレットを含まない PSSession からコマンドをインポートすることはできません。
- インポートされたコマンドには、メモ帳などのユーザー インターフェイスでプログラムを起動できないなど、他のリモート コマンドと同じ制限があります。
- Windows PowerShell プロファイルは PSSessions では実行されないため、プロファイルがセッションに追加するコマンドは Import-PSSession では使用できません。 プロファイルからコマンドをインポートするには、Invoke-Command コマンドを使用して、コマンドをインポートする前に PSSession でプロファイルを手動で実行します。
- Import-PSSession によって作成される一時モジュールには、コマンドが書式設定データをインポートしない場合でも、書式設定ファイルが含まれている場合があります。 このコマンドで書式設定データがインポートされない場合、作成された書式設定ファイルには書式設定データは含まれません。
- Import-PSSession を使用すると、Import-PSSession によって作成される一時モジュールには、これらのポリシーで禁止されている署名されていないスクリプト ファイルが含まれているため、現在のセッションの実行ポリシーを Restricted または AllSigned にすることはできません。 ローカル コンピューターの実行ポリシーを変更せずに Import-PSSession を使用するには、Set-ExecutionPolicy の Scope パラメーターを使用して、1 つのプロセスに対して制限の少ない実行ポリシーを設定します。
- Windows PowerShell 2.0 では、別のセッションからインポートされるコマンドのヘルプ トピックには、Prefix パラメーターを使用して割り当てたプレフィックスは含まれません。 Windows PowerShell 2.0 でインポートされたコマンドのヘルプを表示するには、元の (プレフィックスのない) コマンド名を使用します。