Enable-PSRemoting
リモート コマンドを受信するようにコンピューターを構成します。
構文
Enable-PSRemoting
[-Force]
[-SkipNetworkProfileCheck]
[-WhatIf]
[-Confirm]
[<CommonParameters>]
説明
コマンドレットは Enable-PSRemoting
、WS-Management テクノロジを使用して送信される PowerShell リモート コマンドを受信するようにコンピューターを構成します。
Windows Server 2012では、PowerShell リモート処理が既定で有効になっています。 を使用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を登録します。PowerShell とMicrosoft。PowerShell.Workflow セッション構成 (まだ登録されていない場合)。
- Microsoftを登録します。まだ登録されていない場合は、64 ビット コンピューターでの PowerShell32 セッション構成。
- すべてのセッション構成を有効にする。
- すべてのセッション構成のセキュリティ記述子を、リモート アクセスを許可するように変更する。
- 上記の変更を有効にするために、WinRM サービスを再起動する。
Windows プラットフォームでこのコマンドレットを実行するには、[管理者として実行] オプションを使用して PowerShell を起動します。 これは、Linux または MacOS バージョンの PowerShell には適用されません。
注意事項
PowerShell 3.0 と PowerShell 2.0 の両方を持つシステムでは、PowerShell 2.0 を使用して コマンドレットと Disable-PSRemoting
コマンドレットをEnable-PSRemoting
実行しないでください。 コマンドが正常に完了したように見えても、リモート処理が正しく構成されません。 リモート コマンドとその後のリモート処理の有効化と無効化の試行は失敗する可能性があります。
例
例 1: リモート コマンドを受信するようにコンピューターを構成する
このコマンドは、リモート コマンドを受信するようにコンピューターを構成します。
Enable-PSRemoting
例 2: 確認プロンプトなしでリモート コマンドを受信するようにコンピューターを構成する
このコマンドは、リモート コマンドを受信するようにコンピューターを構成します。 Force パラメーターは、ユーザーのプロンプトを抑制します。
Enable-PSRemoting -Force
例 3: クライアントでのリモート アクセスを許可する
この例では、Windows オペレーティング システムのクライアント バージョンでパブリック ネットワークからのリモート アクセスを許可する方法を示します。 ファイアウォール規則の名前は、Windows のバージョンによって異なる場合があります。
ルールの一覧を表示するには、 を使用 Get-NetFirewallRule
します。 ファイアウォール規則を有効にする前に、規則のセキュリティ設定を表示して、構成が環境に適していることを確認します。
Get-NetFirewallRule -Name 'WINRM*' | Select-Object 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
コマンドレットの実行前に確認を求めるメッセージが表示されます。
Type: | SwitchParameter |
Aliases: | cf |
Position: | Named |
Default value: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-Force
ユーザーに確認せずに、直ちにコマンドを実行します。
Type: | SwitchParameter |
Position: | Named |
Default value: | None |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-SkipNetworkProfileCheck
このコマンドレットは、コンピューターがパブリック ネットワーク上にある場合に、Windows オペレーティング システムのクライアント バージョンでリモート処理を有効にすることを示します。 このパラメーターは、同じローカル サブネット内のコンピューターに対してのみリモート アクセスを許可する、パブリック ネットワークのファイアウォール規則を有効にします。
このパラメーターは、Windows オペレーティング システムのサーバー バージョンには影響しません。既定では、パブリック ネットワーク用のローカル サブネット ファイアウォール規則があります。 ローカル サブネットのファイアウォール規則がサーバー バージョンで無効になっている場合は、 Enable-PSRemoting
このパラメーターの値に関係なく、再度有効にします。
ローカル サブネットの制限を削除し、パブリック ネットワーク上のすべての場所からリモート アクセスを有効にするには、NetSecurity モジュールの コマンドレットを使用Set-NetFirewallRule
します。
このパラメーターは、PowerShell 3.0 で導入されました。
Type: | SwitchParameter |
Position: | Named |
Default value: | None |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-WhatIf
コマンドレットの実行時に発生する内容を示します。 このコマンドレットは実行されません。
Type: | SwitchParameter |
Aliases: | wi |
Position: | Named |
Default value: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
入力
None
オブジェクトをこのコマンドレットにパイプすることはできません。
出力
このコマンドレットは、その結果を記述する文字列を返します。
メモ
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 オペレーティング システムのクライアント バージョンでは、 Enable-PSRemoting
PowerShell 2.0 では、ドメインとプライベート ネットワークの場所に対してのみファイアウォール例外が作成されます。 セキュリティ リスクを最小限に抑えるために、 Enable-PSRemoting
クライアント バージョンの Windows でパブリック ネットワークのファイアウォール規則を作成しません。 現在のネットワークの場所がパブリックの場合、 Enable-PSRemoting
次のメッセージが返されます。ファイアウォールの状態を確認できません。
PowerShell 3.0 以降では、 Enable-PSRemoting
すべてのセッション構成の Enabled プロパティの値を に設定することで、すべてのセッション構成を有効にします $True
。
PowerShell 2.0 では、 Enable-PSRemoting
セッション構成のセキュリティ記述子から Deny_All 設定を削除します。 PowerShell 3.0 では、 Enable-PSRemoting
Deny_All と Network_Deny_All の設定を削除します。 これにより、ローカルで使用するために予約されたセッション構成へのリモート アクセスが提供されます。
関連リンク
フィードバック
フィードバックの送信と表示