次の方法で共有


Enable-PSRemoting

リモート コマンドを受信するようにコンピューターを構成します。

構文

Enable-PSRemoting
      [-Force]
      [-SkipNetworkProfileCheck]
      [-WhatIf]
      [-Confirm]
      [<CommonParameters>]

説明

Enable-PSRemoting コマンドレットは、WS-Management テクノロジを使用して送信される PowerShell リモート コマンドを受信するようにコンピューターを構成します。

PowerShell リモート処理は、Windows Server 2012 では既定で有効になっています。 Enable-PSRemotingを使用すると、サポートされている他のバージョンの Windows で PowerShell リモート処理を有効にし、無効になった場合に Windows Server 2012 でリモート処理を再度有効にすることができます。

このコマンドは、コマンドを受信する各コンピューターで 1 回だけ実行する必要があります。 コマンドのみを送信するコンピューターで実行する必要はありません。 構成はリスナーを開始するため、必要な場所でのみ実行することが賢明です。

PowerShell 3.0 以降では、 Enable-PSRemoting コマンドレットを使用すると、コンピューターがパブリック ネットワーク上にある場合に、クライアント バージョンの Windows で PowerShell リモート処理を有効にできます。 詳細については、 SkipNetworkProfileCheck パラメーターの説明を参照してください。

Enable-PSRemoting コマンドレットは、次の操作を実行します。

  • Set-WSManQuickConfig コマンドレットを実行し、次のタスクを実行します。
    • WinRM サービスを開始する。
    • WinRM サービスのスタートアップの種類を "自動" に設定する。
    • 任意の IP アドレスで要求を受け入れるリスナーを作成する。
    • WS-Management 通信のためのファイアウォールの例外を有効にする。
    • Microsoft.PowerShellMicrosoft.PowerShell.Workflow セッション構成を登録します (まだ登録されていない場合)。
    • Microsoft.PowerShell32 セッション構成を 64 ビット コンピューターに登録します (まだ登録されていない場合)。
    • すべてのセッション構成を有効にする。
    • すべてのセッション構成のセキュリティ記述子を、リモート アクセスを許可するように変更する。
  • 上記の変更を有効にするために、WinRM サービスを再起動する。

Windows プラットフォームでこのコマンドレットを実行するには、[管理者として実行] オプションを使用して PowerShell を起動します。 これは、Linux または MacOS バージョンの PowerShell には適用されません。

注意事項

PowerShell 3.0 と PowerShell 2.0 の両方を持つシステムでは、PowerShell 2.0 を使用して Enable-PSRemoting コマンドレットと Disable-PSRemoting コマンドレットを実行しないでください。 コマンドが正常に完了したように見えても、リモート処理が正しく構成されません。 リモート コマンドとその後のリモート処理の有効化と無効化の試行は失敗する可能性があります。

例 1: リモート コマンドを受信するようにコンピューターを構成する

このコマンドは、リモート コマンドを受信するようにコンピューターを構成します。

Enable-PSRemoting

例 2: 確認プロンプトなしでリモート コマンドを受信するようにコンピューターを構成する

このコマンドは、リモート コマンドを受信するようにコンピューターを構成します。 Force パラメーターは、ユーザー プロンプトを抑制します。

Enable-PSRemoting -Force

例 3: クライアントでのリモート アクセスを許可する

この例では、Windows オペレーティング システムのクライアント バージョンでパブリック ネットワークからのリモート アクセスを許可する方法を示します。 ファイアウォール規則の名前は、Windows のバージョンによって異なる場合があります。 ルールの一覧を表示するには、 Get-NetFirewallRule を使用します。 ファイアウォール規則を有効にする前に、規則のセキュリティ設定を表示して、構成が環境に適していることを確認します。

Get-NetFirewallRule -Name 'WINRM*' | Select-Object -Property Name

Name
----
WINRM-HTTP-In-TCP-NoScope
WINRM-HTTP-In-TCP
WINRM-HTTP-Compat-In-TCP-NoScope
WINRM-HTTP-Compat-In-TCP

Enable-PSRemoting -SkipNetworkProfileCheck -Force
Set-NetFirewallRule -Name 'WINRM-HTTP-In-TCP' -RemoteAddress Any

既定では、 Enable-PSRemoting は、プライベート ネットワークとドメイン ネットワークからのリモート アクセスを許可するネットワーク 規則を作成します。 このコマンドでは、 SkipNetworkProfileCheck パラメーターを使用して、同じローカル サブネット内のパブリック ネットワークからのリモート アクセスを許可します。 このコマンドは、確認メッセージを抑制するために Force パラメーターを指定します。

SkipNetworkProfileCheck パラメーターは、既定で同じローカル サブネット内のパブリック ネットワークからのリモート アクセスを許可する Windows オペレーティング システムのサーバー バージョンには影響しません。

NetSecurity モジュールの Set-NetFirewallRule コマンドレットは、任意のリモートの場所からパブリック ネットワークからのリモート アクセスを許可するファイアウォール規則を追加します。 これには、異なるサブネット内の場所が含まれます。

Note

ファイアウォール規則の名前は、Windows のバージョンによって異なる場合があります。 Get-NetFirewallRule コマンドレットを使用して、システム上の規則の名前を一覧表示します。

パラメーター

-Confirm

コマンドレットの実行前に確認を求めるメッセージが表示されます。

型:SwitchParameter
Aliases:cf
配置:Named
規定値:False
必須:False
パイプライン入力を受け取る:False
ワイルドカード文字を受け取る:False

-Force

ユーザーに確認せずに、直ちにコマンドを実行します。

型:SwitchParameter
配置:Named
規定値:None
必須:False
パイプライン入力を受け取る:False
ワイルドカード文字を受け取る:False

-SkipNetworkProfileCheck

このコマンドレットは、コンピューターがパブリック ネットワーク上にある場合に、Windows オペレーティング システムのクライアント バージョンでリモート処理を有効にすることを示します。 このパラメーターは、同じローカル サブネット内のコンピューターに対してのみリモート アクセスを許可する、パブリック ネットワークのファイアウォール規則を有効にします。

このパラメーターは、Windows オペレーティング システムのサーバー バージョンには影響しません。既定では、パブリック ネットワーク用のローカル サブネット ファイアウォール規則があります。 ローカル サブネットのファイアウォール規則がサーバー バージョンで無効になっている場合は、このパラメーターの値に関係なく、 Enable-PSRemoting 再度有効にします。

ローカル サブネットの制限を削除し、パブリック ネットワーク上のすべての場所からリモート アクセスを有効にするには、NetSecurity モジュールの Set-NetFirewallRule コマンドレットを使用します。

このパラメーターは PowerShell 3.0 で導入されました。

型:SwitchParameter
配置:Named
規定値:None
必須:False
パイプライン入力を受け取る:False
ワイルドカード文字を受け取る:False

-WhatIf

コマンドレットの実行時に発生する内容を示します。 このコマンドレットは実行されません。

型:SwitchParameter
Aliases:wi
配置:Named
規定値:False
必須:False
パイプライン入力を受け取る:False
ワイルドカード文字を受け取る:False

入力

None

このコマンドレットにオブジェクトをパイプすることはできません。

出力

String

このコマンドレットは、その結果を記述する文字列を返します。

メモ

PowerShell 3.0 では、 Enable-PSRemoting は WS-Management 通信に対して次のファイアウォール例外を作成します。

Windows オペレーティング システムのサーバー バージョンでは、 Enable-PSRemoting は、リモート アクセスを許可するプライベート ネットワークとドメイン ネットワークのファイアウォール規則を作成し、同じローカル サブネット内のコンピューターからのリモート アクセスのみを許可するパブリック ネットワークのファイアウォール規則を作成します。

Windows オペレーティング システムのクライアント バージョンでは、PowerShell 3.0 の Enable-PSRemoting は、無制限のリモート アクセスを許可するプライベート ネットワークとドメイン ネットワークのファイアウォール規則を作成します。 同じローカル サブネットからのリモート アクセスを許可するパブリック ネットワークのファイアウォール規則を作成するには、 SkipNetworkProfileCheck パラメーターを使用します。

Windows オペレーティング システムのクライアントまたはサーバー のバージョンで、ローカル サブネットの制限を解除し、リモート アクセスを許可するパブリック ネットワークのファイアウォール規則を作成するには、NetSecurity モジュールの Set-NetFirewallRule コマンドレットを使用して次のコマンドを実行します。 Set-NetFirewallRule -Name "WINRM-HTTP-In-TCP-PUBLIC" -RemoteAddress Any

PowerShell 2.0 では、 Enable-PSRemoting は WS-Management 通信に対して次のファイアウォール例外を作成します。

Windows オペレーティング システムのサーバー バージョンでは、リモート アクセスを許可するすべてのネットワークのファイアウォール規則が作成されます。

Windows オペレーティング システムのクライアント バージョンでは、PowerShell 2.0 の Enable-PSRemoting は、ドメインとプライベート ネットワークの場所に対してのみファイアウォール例外を作成します。 セキュリティ リスクを最小限に抑えるために、 Enable-PSRemoting は、クライアント バージョンの Windows 上のパブリック ネットワークのファイアウォール規則を作成しません。 現在のネットワークの場所がパブリックの場合、 Enable-PSRemoting は次のメッセージを返します。ファイアウォールの状態を確認できません。

PowerShell 3.0 以降では、 Enable-PSRemoting は、すべてのセッション構成の Enabled プロパティの値を $Trueに設定することで、すべてのセッション構成を有効にします。

PowerShell 2.0 では、 Enable-PSRemoting はセッション構成のセキュリティ記述子から Deny_All 設定を削除します。 PowerShell 3.0 では、 Enable-PSRemotingDeny_AllNetwork_Deny_All の設定を削除します。 これにより、ローカルで使用するために予約されたセッション構成へのリモート アクセスが提供されます。