1

問題:スクリプトを使用して、モジュールに依存する別のスクリプトをリモートで実行すると、モジュールがインポートされません。


相互にやり取りする 3 つのスクリプトがあります。Controllerスクリプト、スクリプトBody、およびFunctionsモジュール。

Controllerリモート コンピュータへの認証を処理し、bodyを使用してリモート コンピュータでスクリプトを実行していInvoke-Commandます。

はモジュールbodyに依存していfunctionsます。


リモート コンピューターで「body」スクリプトを直接実行すると、モジュールが正しくインポートされ、スクリプトが終了します。ただし、`controller` スクリプトを使用して `body` スクリプトをリモートで実行すると、モジュールがインポートされません。モジュールの関数を本体スクリプトに入れ子にして (乱雑に見えます)、リモートで実行すると、スクリプトが終了するので、モジュールのインポートに問題があることがわかります。モジュールを `controller` スクリプトにインポートすることも試みました。正しくインポートされますが、`body` スクリプトを実行すると、モジュール内の関数がまだ見つかりません。(ローカルの Powershell ... シェルにインポートされていると思います)インポート モジュールを「-verbose」タグを付けて実行して、インポートされているかどうかを確認しました。「controller」が使用されている場合を除き、すべてのインスタンスで機能します。リモートで「body」を実行します。

編集:リモートコンピューターでモジュールパスを見つけようとしていて、パスがホストコンピューター上の場所を参照しているためだとほぼ確信しています。リモート コンピューターからホストに戻ってモジュールをインポートする以外invoke-commandに、これを達成する方法がわかりません。

4

1 に答える 1

0

コードでネットワーク パスを使用してモジュールをインポートしてみませんか? モジュールの場所がわかっている場合は、リモート マシン上にある場合でも、モジュールへのパスを指定できます。

于 2015-08-04T18:51:00.770 に答える