問題:スクリプトを使用して、モジュールに依存する別のスクリプトをリモートで実行すると、モジュールがインポートされません。
相互にやり取りする 3 つのスクリプトがあります。Controller
スクリプト、スクリプトBody
、およびFunctions
モジュール。
はController
リモート コンピュータへの認証を処理し、body
を使用してリモート コンピュータでスクリプトを実行していInvoke-Command
ます。
はモジュールbody
に依存していfunctions
ます。
リモート コンピューターで「body」スクリプトを直接実行すると、モジュールが正しくインポートされ、スクリプトが終了します。ただし、`controller` スクリプトを使用して `body` スクリプトをリモートで実行すると、モジュールがインポートされません。モジュールの関数を本体スクリプトに入れ子にして (乱雑に見えます)、リモートで実行すると、スクリプトが終了するので、モジュールのインポートに問題があることがわかります。モジュールを `controller` スクリプトにインポートすることも試みました。正しくインポートされますが、`body` スクリプトを実行すると、モジュール内の関数がまだ見つかりません。(ローカルの Powershell ... シェルにインポートされていると思います)インポート モジュールを「-verbose」タグを付けて実行して、インポートされているかどうかを確認しました。「controller」が使用されている場合を除き、すべてのインスタンスで機能します。リモートで「body」を実行します。
編集:リモートコンピューターでモジュールパスを見つけようとしていて、パスがホストコンピューター上の場所を参照しているためだとほぼ確信しています。リモート コンピューターからホストに戻ってモジュールをインポートする以外invoke-command
に、これを達成する方法がわかりません。