about_Remote_Requirements
簡単な説明
PowerShell でリモート コマンドを実行するためのシステム要件と構成要件について説明します。
詳細な説明
このトピックでは、PowerShell でリモート接続を確立し、リモート コマンドを実行するためのシステム要件、ユーザー要件、リソース要件について説明します。 また、リモート操作を構成する手順も示します。
Note
一部のコマンドレットは、リモート コンピューターの RPC 接続またはリモート接続用の WMI セッションからオブジェクトを取得します。 PowerShell リモート処理インフラストラクチャは使用しません。 このドキュメントの要件は、これらのコマンドレットには適用されません。
ComputerName パラメーターを持っていて、PowerShell リモート処理を使用していないコマンドレットを見つけるには、コマンドレットの ComputerName パラメーターの説明を読んでください。
システム要件
Windows では、PowerShell リモート処理では、Windows 管理フレームワーク (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 でのみ実行される機能は、両方のコンピューターが Windows PowerShell 3.0 以降を実行している場合にのみ使用できます。
インストールされているバージョンの PowerShell のバージョン番号を確認するには、自動変数を使用します $PSVersionTable
。
PowerShell 7 以降では、SSH 経由の PowerShell リモート処理もサポートされています。 SSH 経由の PowerShell リモート処理を使用すると、SSH を実行している Windows、macOS、または Linux ホストに接続できます。 詳細については、「SSH 経由の PowerShell リモート処理」を参照してください。
ユーザーのアクセス許可
リモート セッションを作成してリモート コマンドを実行するには、既定では、現在のユーザーがリモート コンピューター上の 管理istrators グループのメンバーであるか、管理者の資格情報を指定する必要があります。 それ以外の場合、コマンドは失敗します。
セッションの作成とリモート コンピューターでのコマンドの実行に必要なアクセス許可は、セッション構成によって確立されます。 セッション構成では、リモート コンピューター上の接続 エンドポイント の構成オプションを定義します。 具体的には、セッション構成のセキュリティ記述子によって、セッション構成にアクセスできるユーザーと、それを使用して接続できるユーザーが決まります。
既定のセッション構成 (Microsoft.PowerShell と Microsoft.PowerShell32) のセキュリティ記述子では、管理istrators グループのメンバーにのみアクセスできます。
コンピューター上の 管理istrators グループのメンバーは、既定のセッション構成のセキュリティ記述子を変更するか、別のセキュリティ記述子で新しいセッション構成を作成することで、リモートでコンピューターに接続するアクセス許可を持つユーザーを決定できます。 ユーザーは、コマンドレットの *-PSSession
ConfigurationName パラメーターを使用して、さまざまなエンドポイントに接続できます。
セッション構成の詳細については、「 about_Session_Configurations」を参照してください。
Windows ネットワークの場所
Windows PowerShell 3.0 以降では、このコマンドレットを使用して、 Enable-PSRemoting
クライアントバージョンとサーバーバージョンの Windows でリモート処理を有効にすることができます。
プライベートネットワークと doメイン ネットワークを使用する Windows のサーバー バージョンでは、コマンドレットはEnable-PSRemoting
無制限のリモート アクセスを許可するファイアウォール規則を作成します。 また、同じローカル サブネット内のコンピューターからのリモート アクセスのみを許可するパブリック ネットワークのファイアウォール規則も作成します。 このローカル サブネット ファイアウォール規則は、パブリック ネットワーク上の Windows のサーバー バージョンでは既定で有効になっていますが Enable-PSRemoting
、変更または削除された場合は規則を再適用します。
プライベートおよび doメイン ネットワークを使用する 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
プライベート ネットワークと doメイン ネットワークにのみファイアウォール規則が作成されます。 ネットワークの場所がパブリックの場合、 Enable-PSRemoting
失敗します。
管理者として実行
次のリモート処理操作には、管理istrator 特権が必要です。
- ローカル コンピューターへのリモート接続の確立。 これは、一般的に "ループバック" シナリオと呼ばれます。
- ローカル コンピューターでのセッション構成の管理。
- ローカル コンピューターでの WS-Management 設定の表示と変更。 WSMAN: ドライブの LocalHost ノードの設定を次に示します。
ローカル コンピューターの 管理istrators グループのメンバーである場合でも、管理者として実行オプションを使用して PowerShell を起動する必要があります。
別のプログラムから Windows PowerShell を起動する場合はcmd.exe
、[管理者として実行] オプションを使用してプログラムを起動します。
リモート処理用にコンピューターを構成する方法
サポートされているバージョンの Windows を実行しているコンピューターは、構成なしで PowerShell でリモート接続を確立し、リモート コマンドを実行できます。 ただし、リモート接続を受信するには、コンピューターで PowerShell リモート処理を有効にする必要があります。
Windows Server 2012 以降のリリースの Windows Server では、PowerShell リモート処理が既定で有効になっています。 設定が変更された場合は、コマンドレットを実行して既定の設定を Enable-PSRemoting
復元できます。
既定では、PowerShell のリモート処理機能は、管理用 Web サービス (WS-Management) プロトコルの Microsoft 実装である WinRM サービスによってサポートされます。 PowerShell リモート処理を有効にすると、WS-Management の既定の構成を変更し、ユーザーが WS-Management に接続できるようにするシステム構成を追加します。
リモート コマンドを受信するように PowerShell を構成するには:
- [管理者として実行] オプションを使用して PowerShell を起動します。
- コマンド プロンプトに
Enable-PSRemoting
を入力します。
リモート処理が正しく構成されていることを確認するには、次のコマンドなどのテスト コマンドを実行します。これにより、ローカル コンピューターにリモート セッションが作成されます。
New-PSSession
リモート処理が正しく構成されている場合、コマンドはローカル コンピューターにセッションを作成し、セッションを表すオブジェクトを返します。
Id Name ComputerName State ConfigurationName
-- ---- ------------ ----- -----
1 Session1 localhost Opened Microsoft.PowerShell
コマンドが失敗した場合は、about_Remote_Troubleshootingを参照してください。
ポリシーについて理解する
リモートで作業する場合は、ローカル コンピューターとリモート コンピューターの 2 つの PowerShell インスタンスを使用します。 その結果、作業は、ローカル コンピューターとリモート コンピューターの両方の Windows ポリシーと PowerShell ポリシーの影響を受ける可能性があります。
接続する前と接続の確立中に、ローカル コンピューター上のポリシーが有効になります。 接続を使用している場合、リモート コンピューターのポリシーが有効になります。
関連項目
PowerShell