Windows PowerShell での暗黙的なリモート処理の機能を確認する

完了

Windows 管理スペースで進行中の問題の 1 つに、バージョンの不一致があります。 たとえば、Windows サーバー 2019 と 2022 には、多数の新しい Windows PowerShell コマンドが含まれています。 Windows 10 または Windows 11 で、リモート サーバー管理ツール (RSAT) の一部としてこれらのコマンドを使用できるようにすることができます。 ただし、古いバージョンの Windows では同じ方法を使用できない場合があります。

最近ワークステーションをリビルドする必要があった場合は、別の進行中の問題についても理解している必要があります。 つまり、コンピューター上での管理ツールと Microsoft 管理コンソール (MMC) の追跡とインストールに非常に長い時間がかかる場合があるという問題です。 それらがすべて、お使いの Windows バージョンと互換性があると仮定すると、インストールだけで数日かかることがあります。

このような問題により、管理者はワークステーションへのツールのインストールをやめて、代わりに Microsoft リモート デスクトップを介してサーバー上のツールに直接アクセスするようになります。 しかし、これは適切な解決策ではありません。なぜなら、サーバーがクライアントになる必要があると同時に、数百人、数千人のユーザーにサービスを提供しなければならないという立場に置かれるためです。 グラフィカル ユーザー インターフェイス (GUI) がない Server Core の登場は、サーバーのパフォーマンスを向上させ、必要な更新プログラムを減らすことに貢献しました。 ただし、このことは、GUI ツールと MMC を実行できないことも意味します。

暗黙的なリモート処理によるツールの提供

暗黙的なリモート処理は、サーバーの Windows PowerShell ツールのコピーをローカル コンピューターに取り込みます。 実際には、コマンドのコピーはまったく行っていません。サーバーのコマンドに対して "プロキシ関数" と呼ばれる一種のショートカットを作成しています。 ローカル コンピューターでコマンドを実行すると、リモート処理によってそれらがサーバー上で暗黙的に実行されます。 その後、結果がユーザーに返送されます。 これは、Invoke-Command を介してすべてを実行した場合とまったく同じですが、はるかに便利です。 また、サーバー上のコマンドがサーバーの機能およびデータと同じ場所に配置されるため、コマンドの実行速度も速くなります。

暗黙的なリモート処理の使用

暗黙的なリモート処理は Windows PowerShell 2.0 で使用できるようになりましたが、Windows PowerShell 3.0 以降では、はるかに使いやすくなりました。 必要な作業は、使用するモジュールを含むサーバーへのセッションを作成することだけです。 その後、Import-Module とその –PSSession パラメーターを使用して、目的のモジュールをインポートします。 そのモジュール内のコマンド、およびそのヘルプ ファイルも、ローカル Windows PowerShell セッションで使用できるようになります。

暗黙的なリモート処理では、インポートするコマンドの名詞部分にプレフィックスを追加することもできます。 これにより、たとえば、名前付けの競合を引き起こすことなく、同じコマンドの複数のバージョンを同時に容易に読み込むことができます。 たとえば、Microsoft Exchange Server 2016 と Exchange Server 2019 の両方のコマンドをインポートする場合は、2016 と 2019 のプレフィックスをそれぞれ個々に追加できます。 これにより、両方のコマンド セットを実行できます。 実際には、それぞれが各々のサーバーで実行され、両方のセットを (おそらく、移行シナリオで) サイドバイサイドで実行できます。

[ヘルプ] オプションは、暗黙的なリモート処理を使用して実行されているコマンドでも機能します。 ただし、ヘルプ ファイルは、コマンド自体と同じリモート処理セッションを介して描画されます。 そのため、リモート コンピューターには、そのヘルプ ファイルの更新されたコピーが必要になります。 このことは、サーバー上で問題になる可能性があります。それらが頻繁に使用されない可能性があり、最新のヘルプ ファイルを取得するために Update-Help が最近実行されていない可能性があるためです。