2016-05-24 9 views
3

他のモジュールの関数からグローバルにコマンドレットをインポートする際に問題が発生します。Powershellコマンドレットを別のモジュールの関数からグローバルにインポートするにはどうすればよいですか?

ここに該当します。私がTest-Methodをdllで呼び出そうとしているとします。 Import-Module <dll path>を実行すると正常に動作し、問題なくTest-Methodに電話することができます。

次に、使用法を簡略化する関数にコマンドを入れます。

function Import-Cmdlets 
{ 
    Import-Module "<dll path>" -Scope Global -Force 
} 

今PowerShellで、私は Import-Cmdletsを呼び出し、その後、私は問題なく Test-Methodを呼び出すことができます。今、私のようなものを持っています。

しかし、psm1ファイルに関数を入れてpsm1ファイルにモジュールをインポートすると、はもうTest-Methodは見つかりません。

今、私は以下の内容をmymodule.psm1ファイルがあります:

function Import-Cmdlets 
{ 
    Import-Module "<dll path>" -Scope Global -Force 
} 

はその後、PowerShellで私が実行します。

Import-Module mymodule.psm1 -Force 
Import-Cmdlets 

今、私はこれ以上Test-Methodを見つけることができません。 Get-Moduleを実行するとdllが表示され、ExportedCommandsからTest-Methodが表示されます。しかし、私はそれにアクセスすることはできません。

これは、dllインポートでのみ発生します。 psm1ファイルを使用してdllパスを置き換えようとしましたが、この問題は発生しませんでした。

この問題の回避策または解決策はありますか?

答えて

0

私は同じ問題を抱えていたと-Scopeグローバル

それを固定パラメータを追加することが Import-Module <path to your module> **-Scope Global**

にあなたの行を変更

関連する問題