about_Remote_Requirements

適用対象: Windows PowerShell 2.0, Windows PowerShell 3.0

トピック

about_Remote_Requirements

概要

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

詳細説明

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

注記:多くのコマンドレット (Get-Service、Get-Process、Get-WMIObject、Get-EventLog、および Get-WinEvent コマンドレットを含む) は、Microsoft .NET Framework のメソッドを使用してオブジェクトを取得することにより、リモート コンピューターからオブジェクトを取得します。Windows PowerShell リモート処理インフラストラクチャは使用しません。このドキュメントの要件はこれらのコマンドレットには適用されません。ComputerName パラメーターを持ち、Windows PowerShell リモート処理を使用しないコマンドレットを検索するには、コマンドレットの ComputerName パラメーターの説明を参照してください。

システム要件

Windows PowerShell 3.0 でリモート セッションを実行するには、ローカルおよびリモートのコンピューターが次の要件を満たす必要があります。

  • -- Windows PowerShell 3.0 またはそれ以降

  • --Microsoft .NET Framework 4.0 以降

  • --Windows リモート管理 3.0

Windows PowerShell 2.0 でリモート セッションを実行するには、ローカルおよびリモートのコンピューターが次の要件を満たす必要があります。

  • -- Windows PowerShell 2.0 またはそれ以降

  • --Microsoft .NET Framework 2.0 以降

  • --Windows リモート管理 2.0

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

インストール済みの Windows PowerShell のバージョン番号を確認するには、$PSVersionTable 自動変数を使用します。

Windows リモート管理 (WinRM) 3.0 と Microsoft .NET Framework 4.0 は、Windows 8、Windows Server 2012、および Windows オペレーティング システムの新しいリリースに含まれています。WinRM 3.0 は、以前のオペレーティング システムの Windows Management Framework 3.0 に含まれています。コンピューターが必要な WinRM または Microsoft .NET Framework のバージョンを持たない場合、インストールは失敗します。

ユーザーのアクセス許可

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

セッションを作成し、リモート コンピューター (または、ローカル コンピューター上のリモート セッション) でコマンドを実行するための権限は、セッションの接続先となるリモート コンピューター上のセッション構成 (「エンドポイント」と呼ばれることもある) によって決定されます。具体的には、セッション構成のセキュリティ記述子が、セッション構成へのアクセスを持っているユーザーと、それを接続に使用できるユーザーを決定します。

既定のセッション構成でのセキュリティ記述子である Microsoft.PowerShell、Microsoft.PowerShell32、および Microsoft.PowerShell.Workflow は、Administrators グループのメンバーにのみアクセスを許可します。

現在のユーザーにセッション構成を使用するアクセス許可が割り当てられていない場合、リモート コンピューター上のコマンドの実行 (一時的なセッションを使用) または永続的なセッションの作成を行うコマンドは失敗します。ユーザーはセッションを作成するコマンドレットの ConfigurationName のパラメーターを使用して、使用可能であれば別のセッション構成を選択できます。

コンピューターの Administrators グループのメンバーは、既定のセッション構成のセキュリティ記述子を変更し、別のセキュリティ記述子で新しいセッション構成を作成することで、コンピューターにリモート接続するアクセス許可を持っているユーザーを確認できます。

セッション構成の詳細については、「about_Session_Configurations」(https://go.microsoft.com/fwlink/?LinkID=145152) を参照してください。

Windows ネットワークの場所

Windows PowerShell 3.0 以降では、Enable-PSRemoting コマンドレットが、プライベート、ドメイン、およびパブリック ネットワークで、クライアントおよびサーバー バージョンの Windows でのリモート処理を可能にします。

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

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

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

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

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

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

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

管理者として実行

次のようなリモート処理操作には管理者権限が必要です。

  • --ローカル コンピューターへのリモート接続の確立。これは通常、「ループバック」シナリオと呼ばれます。

  • --ローカル コンピューター上のセッション構成の管理。

  • --ローカル コンピューター上の Ws-management 設定の表示と変更。これらは WSMAN: ドライブの LocalHost ノードでの設定です。

これらのタスクを実行するには、ローカル コンピューターの Administrators グループのメンバーであっても、[管理者として実行] オプションを使用して、Windows PowerShell を開始する必要があります。

Windows 7 および Windows Server 2008 R2 で、[管理者として実行] オプションを使用して Windows PowerShell を開始するには次の操作を実行します。

  • 1. [スタート]、[すべてのプログラム]、[アクセサリ] の順にクリックし、Windows PowerShell フォルダーをクリックします。

  • 2. Windows PowerShell を右クリックし、[管理者として実行] をクリックします。

[管理者として実行] オプションを使用して Windows PowerShell を開始するには、次の操作を実行します。

  • 1. [スタート]、[すべてのプログラム] の順にクリックし、Windows PowerShell フォルダーをクリックします。

  • 2. Windows PowerShell を右クリックし、[管理者として実行] をクリックします。

[管理者として実行] オプションは、ショートカットを含め、Windows PowerShell の他の Windows エクスプローラーのエントリでも使用できます。項目を右クリックして、[管理者として実行] をクリックします。

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

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

サポートされているすべてのバージョンの Windows を実行しているコンピューターは、Windows PowerShell に対するリモート接続の確立とリモート コマンドの実行を構成不要で実現できます。ただし、接続を受信し、ローカルおよびリモートでユーザーが管理する Windows PowerShell セッション ("PSSession") の作成とローカル コンピューター上のコマンドの実行をユーザーに許可するには、コンピューター上の Windows PowerShell リモート処理を有効にする必要があります。

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

他のすべてのサポートされているバージョンの Windows では、Enable-PSRemoting コマンドレットを実行して、Windows PowerShell リモート処理を有効にする必要があります。

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

Windows PowerShell を構成するには、次のように、リモート コマンドを受信します。

  • 1. [管理者として実行] オプションを使用して、Windows PowerShell を開始します。

  • 2. コマンド プロンプトで、次のように入力します。Enable-PSRemoting

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

          New-PSSession

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

          C:\PS> new-pssession

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

コマンドが失敗した場合のサポートについては「about_Remote_Troubleshooting」を参照してください。

ポリシーの理解

リモートで作業する場合、Windows PowerShell の 2 つのインスタンスを使用します。1 つはローカル コンピューター上にあり、もう 1 つはリモート コンピューター上にあります。そのため、作業はローカルおよびリモート コンピューター上の Windows ポリシーと Windows PowerShell ポリシーから影響を受けます。

一般に、接続前と接続の確立時には、ローカル コンピューター上のポリシーが有効です。接続を使用しているときには、リモート コンピューター上のポリシーが有効です。

関連項目

about_Remote に関するページ

about_Remote_Variables

about_PSSessions

Invoke-Command

Enter-PSSession

New-PSSession