次の方法で共有


Enable-PSRemoting

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

構文

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

説明

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

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

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

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

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

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

このコマンドレットを実行するには、[管理者として実行] オプションを使用して Windows PowerShell を起動します。

注意事項

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

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

Enable-PSRemoting

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

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

Enable-PSRemoting -Force

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

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

Enable-PSRemoting -SkipNetworkProfileCheck -Force

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

この例では、Windows のクライアント バージョンでパブリック ネットワークからのリモート アクセスを許可する方法を示します。 これらのコマンドを使用する前に、セキュリティ設定を分析し、コンピューター ネットワークが損害から保護することになることを確認します。

最初のコマンドは、Windows PowerShell でのリモート処理を有効にします。 既定では、これにより、プライベート ネットワークとドメイン ネットワークからのリモート アクセスを許可するネットワーク規則が作成されます。 このコマンドでは、SkipNetworkProfileCheck パラメーターを使用して、同じローカル サブネット内のパブリック ネットワークからのリモート アクセスを許可しています。 確認メッセージを抑制するために Force パラメーターが使用されています。

SkipNetworkProfileCheck パラメーターは、既定で同じローカル サブネット内のパブリック ネットワークからのリモート アクセスが許可される Windows のサーバー バージョンには効果がありません。

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

パラメーター

-Confirm

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

Type:SwitchParameter
Aliases:cf
Position:Named
Default value:False
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-Force

すべてのユーザー プロンプトが表示されないようにします。 既定では、それぞれの操作について確認を求められます。

Type:SwitchParameter
Position:Named
Default value:False
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-SkipNetworkProfileCheck

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

このパラメーターは、パブリック ネットワークに対して既定でローカル サブネット ファイアウォール規則を持つ Windows のサーバー バージョンに対しては効果を持ちません。 Windows のサーバー バージョンでローカル サブネット ファイアウォール規則が無効になっている場合に Enable-PSRemoting を使用すると、このパラメーターの値に関係なく、ローカル サブネット ファイアウォール規則が再び有効になります。

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

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

Type:SwitchParameter
Position:Named
Default value:False
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-WhatIf

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

Type:SwitchParameter
Aliases:wi
Position:Named
Default value:False
Required:False
Accept pipeline input:False
Accept wildcard characters:False

入力

None

パイプを使用してこのコマンドレットに入力を渡すことはできません。

出力

String

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

メモ

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

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

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

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

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

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

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

  • Windows PowerShell 3.0 以降、Enable-PSRemoting では、すべてのセッション構成の Enabled プロパティ (WSMan:\ComputerName>\Plugin\<<SessionConfigurationName>\Enabled) の値を True ($true) に設定することで、すべてのセッション構成が有効になります。

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