1

PowerShell モジュールがどのように機能するかについて混乱しています。

ブロガーからモジュールをダウンロードしてコピーしました。ブロックを解除し、.zip を %USERPROFILE%\Documents\WindowsPowerShell\Modules\SomeModule に抽出しました

このフォルダーには、モジュールが使用する .NET アセンブリがありますが、コンパイル済みの CmdLets は含まれていません。代わりに、コマンドは .psm1 ファイル内の関数であり、.psd1 ファイルにはマニフェストが記述されています。

PowerShell を開くと、関数は使用可能で動作しますが、独自の関数を追加したいので、追加しましたが、表示されません。すべての PowerShell インスタンスを再起動し、モジュールを削除して再度インポートしました。

テストとして、既存の機能する関数の名前を変更しました。興味深いことに、削除してインポートした後、関数は新しい名前を採用する代わりに消えます。名前を元に戻し(1文字だけ変更)、削除/インポートすると、再び表示されます。

help blahblahすべてのコマンドは同じプレフィックスを持つため、セット内のすべてのコマンドをリストするために使用します。マニフェストはすべての (*) 関数をエクスポートします。これらのタイプのスクリプト モジュールがどのように機能するかは明らかにわかりません。関数はすべて、Remove-Module を実行した後でも一覧表示されます。以前に C# でコンパイル済みモジュールを作成したことがありますが、それは期待どおりに機能しました。

どうしたの?関数の名前を変更すると関数が消えてしまうのはなぜですか? ありがとう。

4

1 に答える 1

1

それを見つけた。この行は、.psm1 ファイルで見落としていたものに表示されます。

Export-ModuleMember X, Y, Z

それで、マニフェストはこれを却下したり、スクリプトでその必要性を置き換えたりできると思いますか? 知るか。とにかく、これが誰かに役立つことを願っています。

于 2013-01-08T16:39:34.977 に答える