0

PowerShell スクリプト モジュールを読み込もうとしています。以下は私が従っているステップです

「C:\windows\system32\WindowsPowerShell\v1.0\Modules**PSModuleTest**」フォルダーの下に 2 つのファイルを作成しました。

PSModuleTest.psd1

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

PSModuleTest.psm1

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

上記の 2 つのファイルが正しいフォルダーに配置されたら、モジュール パスが $env:PSModulePath に含まれているかどうかをテストしました。$host コマンドを入力して、古いバージョンの PowerShell を使用していないことも確認しました。

Get-Module コマンドを実行すると、驚いたことに、新しいモジュールがロードされていません。そのため、以下のコマンドを入力してモジュールをロードしようとしましたが、機能しませんでした。

Import-Module -Name PSModuleTest -Force -Verbose

詳細については、すべてのコマンドの出力について以下の画像を参照してください。

ここに画像の説明を入力

4

1 に答える 1

1

上記のスクリーンショットから、インポートした後、PSModuleTest にエクスポートされたコマンドがないことがわかります。

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

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

New-ModuleManifestマニフェストを作成した場合、これは通常、マニフェストの最初のフィールドです。

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

このコマンドは、ロードされていないモジュールを含むモジュールを表示します。

Get-Module -ListAvailable
于 2016-08-24T20:40:03.047 に答える