2016-08-24 27 views
0

PowerShell Script Moduleを読み込もうとしています。以下は、私は、フォルダ "C:\ WINDOWS \ SYSTEM32 \ WindowsPowerShell \ v1.0を\モジュール** PSModuleTest **" の下に2つのファイルを作成しているPowerShellスクリプトモジュールを読み込めません。

次のステップであるのです

PSModuleTest.psd1

を2つのファイルは下に置かれたら、上記のPSModuleTest.psm1

function ModuleTestFunction 
{ 
    Write-Host "Hello world!!!" 
} 

@{ 
ModuleVersion = '1.0' 
GUID = '7e8f93e6-5bde-4043-918e-322066c5340e' 
Author = 'ravi' 
CompanyName = 'Unknown' 
Copyright = '(c) 2016 Ravi. All rights reserved.' 
FunctionsToExport = '*' 
CmdletsToExport = '*' 
VariablesToExport = '*' 
AliasesToExport = '*' 
} 

正しいフォルダ私はモジュールのパスが$ env:PSModulePathに含まれているかどうか、そしてそこに含まれているかどうかをテストしました。また、$ hostコマンドを入力することでPowerShellの古いバージョンではないことも確認しました。

Get-Moduleコマンドを実行すると、新しいモジュールが読み込まれてしまっています。そこで、以下のコマンドを入力してモジュールをロードしようとしましたが、うまく動作しませんでした。

Import-Module -Name PSModuleTest -Force -Verbose 

詳細は、次のコマンドの出力を参照してください。

enter image description here

答えて

1

あなたは何もエクスポートされたコマンドを持っていないPSModuleTestそれをインポートした後は、その上のスクリーンショットから見ることができます。

マニフェストが利用可能である限り、モジュールマニフェストファイルでPSModuleTest.psm1を宣言する必要があります。例えば

# Script module or binary module file associated with this manifest. 
RootModule = 'PSModuleTest.psm1' 

これは、あなたがそれを作成するためにNew-ModuleManifestを使用した場合、マニフェストの最初のフィールドは普通です。

あなたのモジュールは、明示的にロードされるか、または自動ロードされるまで、セッションで表示されません。コマンドが比較的簡単に検出できる場合(またはモジュール内のコマンドがキャッシュされている場合)、自動ロードのみが可能です。

Get-Module -ListAvailable 
+0

おかげでクリスを:モジュールが表示されます

このコマンドは、ロードされていないものが含まれています。それでもうまくいきましたが、私のモジュールは自動的にロードされていません。私はここに何かを逃していますか –

+0

自動ロードされるのは、モジュールマニフェストにエクスポートしたいコマンドを明示的にリストすることで最も効果的です(FunctionsToExport)。 –

+0

私はそれをしましたが、うまくいきませんでした。 $ PsHome \ Profile.ps1 ファイルからモジュールを読み込む必要がありました。それは正しいアプローチですか? –

関連する問題