次の方法で共有


about_Remote_Requirements

簡単な説明

PowerShell でリモート コマンドを実行するためのシステム要件と構成要件について説明します。

長い説明

このトピックでは、リモート接続を確立し、PowerShell でリモート コマンドを実行するためのシステム要件、ユーザー要件、およびリソース要件について説明します。 また、リモート操作を構成する手順も示します。

注意

一部のコマンドレットは、リモート コンピューターの RPC 接続またはリモート接続用の WMI セッションからオブジェクトを取得します。 PowerShell リモート処理インフラストラクチャは使用しません。 このドキュメントの要件は、これらのコマンドレットには適用されません。

ComputerName パラメーターを持っていて、PowerShell リモート処理を使用していないコマンドレットを見つけるには、コマンドレットの ComputerName パラメーターの説明を参照してください。

システム要件

Windows では、PowerShell リモート処理では、Windows Management Framework (WMF) によって提供される Windows リモート管理 (WinRM) が使用されます。 PowerShell でリモート セッションを実行するには、ローカル コンピューターとリモート コンピューターに次の機能が必要です。

  • Windows PowerShell 3.0 以上
  • Microsoft .NET Framework 4 以降
  • Windows リモート管理 3.0 以降

Windows PowerShell 2.0 でリモート セッションを実行するには、ローカル コンピューターとリモート コンピューターに次の情報が必要です。

  • Windows PowerShell 2.0 以降
  • Microsoft .NET Framework 2.0 以降
  • Windows リモート管理 2.0

完全にサポートされるようにするには、WMF 5.1 を使用している必要があります。 WMF のサポートの詳細については、「Windows Management Framework (WMF)」を参照してください。

Windows PowerShell 2.0 を実行しているコンピューターと、新しいバージョンの PowerShell を実行しているコンピューターとの間にリモート セッションを作成できます。 ただし、セッションの切断や再接続などの新しいバージョンの PowerShell でのみ実行される機能は、両方のコンピューターが 3.0 以降Windows PowerShell実行されている場合にのみ使用できます。

インストールされている PowerShell のバージョン番号を見つけるには、自動変数を使用します $PSVersionTable

PowerShell 7 以降では、SSH 経由の PowerShell リモート処理もサポートされています。 SSH 経由の PowerShell リモート処理を使用すると、SSH を実行している Windows、macOS、または Linux ホストに接続できます。 詳細については、「 SSH 経由の PowerShell リモート処理」を参照してください。

ユーザーのアクセス許可

リモート セッションを作成してリモート コマンドを実行するには、既定では、現在のユーザーがリモート コンピューターの Administrators グループのメンバーであるか、管理者の資格情報を指定する必要があります。 それ以外の場合、コマンドは失敗します。

セッションの作成とリモート コンピューターでのコマンドの実行に必要なアクセス許可は、セッション構成によって確立されます。 セッション構成では、リモート コンピューター上の接続 エンドポイント の構成オプションを定義します。 具体的には、セッション構成のセキュリティ記述子によって、セッション構成にアクセスできるユーザーと、接続に使用できるユーザーが決定されます。

既定のセッション構成 (Microsoft.PowerShell と Microsoft.PowerShell32) のセキュリティ記述子では、Administrators グループのメンバーにのみアクセスできます。

コンピューター上の Administrators グループのメンバーは、既定のセッション構成のセキュリティ記述子を変更するか、別のセキュリティ記述子を使用して新しいセッション構成を作成することで、リモートでコンピューターに接続するアクセス許可を持つユーザーを決定できます。 ユーザーは、コマンドレットの *-PSSessionConfigurationName パラメーターを使用して、さまざまなエンドポイントに接続できます。

セッション構成の詳細については、「 about_Session_Configurations」を参照してください。

Windows ネットワークの場所

Windows PowerShell 3.0 以降では、Enable-PSRemotingクライアントバージョンとサーバーバージョンの Windows でリモート処理を有効にすることができます。

プライベート ネットワークとドメイン ネットワークを使用する Windows のサーバー バージョンでは、無制限の Enable-PSRemoting リモート アクセスを許可するファイアウォール規則が作成されます。 また、同じローカル サブネット内のコンピューターからのみリモート アクセスを許可するパブリック ネットワークのファイアウォール規則も作成します。 このローカル サブネット ファイアウォール規則は、パブリック ネットワーク上の Windows のサーバー バージョンでは既定で有効になっていますが Enable-PSRemoting 、変更または削除された場合にルールが再び有効になります。

プライベート ネットワークとドメイン ネットワークを使用する Windows のクライアント バージョンでは、 Enable-PSRemoting 無制限のリモート アクセスを許可するファイアウォール規則を作成します。

パブリック ネットワークを使用して Windows のクライアント バージョンでリモート処理を有効にするには、コマンドレットの SkipNetworkProfileCheck パラメーターを Enable-PSRemoting 使用します。 このオプションにより、同じローカル サブネット内のコンピューターからのみリモート アクセスを許可するファイアウォール規則が作成されます。

パブリック ネットワークのローカル サブネット制限を削除し、クライアントとサーバーのバージョンの Windows 上のすべての場所からリモート アクセスを許可するには、NetSecurity モジュールの コマンドレットを使用Set-NetFirewallRuleします。 次のコマンドを実行します。

Set-NetFirewallRule -Name "WINRM-HTTP-In-TCP-PUBLIC" -RemoteAddress Any

Note

ファイアウォール規則の名前は、Windows のバージョンによって異なる場合があります。 ルールの一覧を表示するには、 を使用 Get-NetFirewallRule します。 ファイアウォール規則を有効にする前に、規則のセキュリティ設定を表示して、構成が環境に適していることを確認します。

Windows PowerShell 2.0 では、サーバー バージョンの Windows では、Enable-PSRemotingすべてのネットワークでリモート アクセスを許可するファイアウォール規則が作成されます。

Windows PowerShell 2.0 では、クライアント バージョンの Windows では、Enable-PSRemotingプライベート ネットワークとドメイン ネットワークにのみファイアウォール規則が作成されます。 ネットワークの場所がパブリックの場合、 Enable-PSRemoting は失敗します。

管理者として実行

次のリモート処理操作には、管理者特権が必要です。

  • ローカル コンピューターへのリモート接続の確立。 これは一般に"ループバック" シナリオと呼ばれます。
  • ローカル コンピューターでのセッション構成の管理。
  • ローカル コンピューターで WS-Management 設定を表示および変更する。 WSMAN: ドライブの LocalHost ノードの設定を次に示します。

ローカル コンピューターの Administrators グループのメンバーである場合でも、[管理者として実行] オプションを使用して PowerShell を起動する必要があります。

などのcmd.exe別のプログラムからWindows PowerShellを開始する場合は、[管理者として実行] オプションを使用してプログラムを起動します。

リモート処理用にコンピューターを構成する方法

サポートされているバージョンの Windows を実行しているコンピューターは、構成なしでリモート接続を確立し、PowerShell でリモート コマンドを実行できます。 ただし、リモート接続を受信するには、コンピューターで PowerShell リモート処理を有効にする必要があります。

Windows Server 2012 以降の Windows Server リリースでは、PowerShell リモート処理が既定で有効になっています。 設定が変更された場合は、 コマンドレットを実行して既定の設定を Enable-PSRemoting 復元できます。

既定では、PowerShell のリモート処理機能は WinRM サービスによってサポートされています。これは、Web Services for Management (WS-Management) プロトコルの Microsoft 実装です。 PowerShell リモート処理を有効にすると、WS-Management の既定の構成を変更し、ユーザーが WS-Management に接続できるようにするシステム構成を追加します。

リモート コマンドを受信するように PowerShell を構成するには:

  1. [管理者として実行] オプションを使用して PowerShell を起動します。
  2. コマンド プロンプトに Enable-PSRemoting を入力します。

リモート処理が正しく構成されていることを確認するには、次のコマンドなどのテスト コマンドを実行します。これにより、ローカル コンピューターにリモート セッションが作成されます。

New-PSSession

リモート処理が正しく構成されている場合、コマンドはローカル コンピューターにセッションを作成し、セッションを表す オブジェクトを返します。

Id Name        ComputerName    State    ConfigurationName
-- ----        ------------    -----    -----
1  Session1    localhost       Opened   Microsoft.PowerShell

コマンドが失敗した場合は、「 about_Remote_Troubleshooting」を参照してください。

ポリシーについて理解する

リモートで作業する場合は、PowerShell の 2 つのインスタンス (1 つはローカル コンピューター、1 つはリモート コンピューター) を使用します。 その結果、作業は、ローカル コンピューターとリモート コンピューターの両方の Windows と PowerShell ポリシーの影響を受ける可能性があります。

接続する前と接続を確立する前に、ローカル コンピューター上のポリシーが有効になります。 接続を使用している場合、リモート コンピューター上のポリシーが有効になります。

関連項目