Disable-PSRemoting
リモート ユーザーがローカル コンピューターでコマンドを実行するのを防止します。
構文
Disable-PSRemoting
[-Force]
[-WhatIf]
[-Confirm]
[<CommonParameters>]
説明
Disable-PSRemoting コマンドレットは、他のコンピューターのユーザーがローカル コンピューターでコマンドを実行するのを防止します。
Disable-PSRemoting は、ローカル コンピューター上のすべてのセッション構成へのリモート アクセスをブロックします。 これにより、リモート ユーザーがローカル コンピューターに一時的または永続的なセッションを作成できなくなります。 Disable-PSRemoting では、ローカル コンピューターのユーザーがローカル コンピューターまたはリモート コンピューターでセッション (PSSessions) を作成できないようにすることはできません。
すべてのセッション構成へのリモート アクセスを再度有効にするには、Enable-PSRemoting コマンドレットを使用します。 選択したセッション構成へのリモート アクセスを有効にするには、Set-PSSessionConfiguration コマンドレットの AccessMode パラメーターを使用します。 Enable-PSSessionConfiguration コマンドレットと Disable-PSSessionConfiguration コマンドレットを使用して、すべてのユーザーのセッション構成を有効または無効にすることもできます。 セッション構成の詳細については、「 about_Session_Configurations」を参照してください。
Windows PowerShell 2.0 では、Disable-PSRemoting を使用すると、すべてのユーザーがローカル コンピューターに対してユーザー管理セッションを作成できなくなります。 Windows PowerShell 3.0 では、Disable-PSRemoting を使用すると、他のコンピューターのユーザーがローカル コンピューターでユーザー管理セッションを作成できなくなりますが、ローカル コンピューターのユーザーはユーザーが管理するループバック セッションを作成できます。
このコマンドレットを実行するには、[管理者として実行] オプションを使用してWindows PowerShellを開始します。
注意: Windows PowerShell 3.0 とWindows PowerShell 2.0 エンジンの両方を持つシステムでは、enable-PSRemoting コマンドレットと Disable-PSRemoting コマンドレットを実行するために Windows PowerShell 2.0 を使用しないでください。 コマンドが正常に完了したように見えても、リモート処理が正しく構成されません。 リモート処理コマンドや後でリモート処理を有効または無効にする操作が失敗する可能性があります。
例
例 1: すべてのセッション構成へのリモート アクセスを禁止する
PS C:\> Disable-PSRemoting
このコマンドは、コンピューター上のすべてのセッション構成に対するリモート アクセスを防止します。
例 2: 確認プロンプトなしですべてのセッション構成へのリモート アクセスを禁止する
PS C:\> Disable-PSRemoting -Force
このコマンドは、確認メッセージを表示せずに、コンピューター上のすべてのセッション構成に対するリモート アクセスを防止します。
例 3: このコマンドレットを実行した場合の影響
PS C:\> Disable-PSRemoting -Force
[ADMIN] PS C:\> New-PSSession -ComputerName localhost
Id Name ComputerName State Configuration Availability
-- ---- ------------ ----- ------------- ------------
1 Session1 Server02... Opened Microsoft.PowerShell Available
# On Server02 remote computer:
PS C:\> New-PSSession -ComputerName Server01
[SERVER01] Connecting to remote server failed with the following error
message : Access is denied. For more information, see the about_Remote_Troubleshooting Help topic.
+ CategoryInfo : OpenError: (System.Manageme....RemoteRunspace:RemoteRunspace) [], PSRemotingTransportException
+ FullyQualifiedErrorId : PSSessionOpenFailed
この例は、Disable-PSRemoting コマンドレットを使用した場合の効果を示しています。 このコマンド シーケンスを実行するには、[管理者として実行] オプションを使用してWindows PowerShellを開始します。
最初のコマンドは、Disable-PSRemoting コマンドレットを使用して、Server01 コンピューター上のすべての登録済みのセッション構成を無効にしています。
2 番目のコマンドでは、New-PSSession コマンドレットを使用して、ローカル コンピューター ("ループバック" とも呼ばれます) へのリモート セッションを作成します。 このコマンドは成功します。
3 番目のコマンドは、Server02 リモート コンピューター上で実行されます。 このコマンドでは、New-PSSession コマンドレットを使用して、Server01 リモート コンピューターへのセッションを作成します。 リモート アクセスは無効なため、このコマンドは失敗します。
例 4: このコマンドレットと Enable-PSRemoting を実行した場合の影響
PS C:\> Disable-PSRemoting -force
[ADMIN] PS C:\> Get-PSSessionConfiguration | Format-Table -Property Name, Permission -Auto
Name Permission
---- ----------
microsoft.powershell NT AUTHORITY\NETWORK AccessDenied, BUILTIN\Administrators AccessAllowed
microsoft.powershell.workflow NT AUTHORITY\NETWORK AccessDenied, BUILTIN\Administrators AccessAllowed
microsoft.powershell32 NT AUTHORITY\NETWORK AccessDenied, BUILTIN\Administrators AccessAllowed
microsoft.ServerManager NT AUTHORITY\NETWORK AccessDenied, BUILTIN\Administrators AccessAllowed
WithProfile NT AUTHORITY\NETWORK AccessDenied, BUILTIN\Administrators AccessAllowed
[ADMIN] PS C:\> Enable-PSRemoting -Force
WinRM already is set up to receive requests on this machine.
WinRM already is set up for remote management on this machine.
[ADMIN] PS C:\> Get-PSSessionConfiguration | Format-Table -Property Name, Permission -Auto
Name Permission
---- ----------
microsoft.powershell BUILTIN\Administrators AccessAllowed
microsoft.powershell.workflow BUILTIN\Administrators AccessAllowed
microsoft.powershell32 BUILTIN\Administrators AccessAllowed
microsoft.ServerManager BUILTIN\Administrators AccessAllowed
WithProfile BUILTIN\Administrators AccessAllowed
この例では、 Disable-PSRemoting コマンドレットと Enable-PSRemoting コマンドレットを使用したセッション構成への影響 を 示します。
最初のコマンドは、Disable-PSRemoting コマンドレットを使用して、すべてのセッション構成へのリモート アクセスを無効にします。 Force パラメーターにより、すべてのユーザー メッセージが表示されなくなります。
2 番目のコマンドでは、Get-PSSessionConfiguration コマンドレットを使用して、コンピューター上のセッション構成を表示します。 コマンドはパイプライン演算子を使用して結果を Format-Table コマンドに送信します。このコマンドでは、テーブル内の構成の Name プロパティと Permission プロパティのみが表示されます。
この出力から、リモート ユーザーのみ、構成へのアクセスが拒否されていることがわかります。 ローカル コンピューター上の Administrators グループのメンバーに対しては、セッション構成の使用が許可されます。 出力では、コマンドが、ユーザーが作成した WithProfile セッション構成を含むすべてのセッション構成に影響することも示しています。
3 番目のコマンドは、Enable-PSRemoting コマンドレットを使用して、コンピューター上のすべてのセッション構成へのリモート アクセスを再度有効にします。 このコマンドでは、Force パラメーターを使用してすべてのユーザー メッセージを抑制し、確認メッセージを表示することなく WinRM サービスを再起動します。
4 番目のコマンドでは 、Get-PSSessionConfiguration コマンドレットと Format-Table コマンドレットを使用して、セッション構成の名前とアクセス許可を表示します。 結果は、AccessDenied セキュリティ記述子がすべてのセッション構成から削除されたことを示しています。
例 5: カスタム セキュリティ記述子を持つセッション構成へのリモート アクセスを禁止する
PS C:\> Register-PSSessionConfiguration -Name Test -FilePath .\TestEndpoint.pssc -ShowSecurityDescriptorUI
[ADMIN] PS C:\> Get-PSSessionConfiguration | Format-Table -Property Name, Permission -Wrap
Name Permission
---- ----------
microsoft.powershell BUILTIN\Administrators AccessAllowed
Test NT AUTHORITY\INTERACTIVE AccessAllowed, BUILTIN\Administrators AccessAllowed,
DOMAIN01\User01 AccessAllowed
[ADMIN] PS C:\> Disable-PSRemoting -Force
[ADMIN] PS C:\> Get-PSSessionConfiguration | Format-Table -Property Name, Permission -Wrap
Name Permission
---- ----------
microsoft.powershell NT AUTHORITY\NETWORK AccessDenied, BUILTIN\Administrators AccessAllowed
Test NT AUTHORITY\NETWORK AccessDenied, NTAUTHORITY\INTERACTIVE AccessAllowed,
BUILTIN\Administrators AccessAllowed, DOMAIN01\User01 AccessAllowed
# Domain01\User01
PS C:\> New-PSSession -ComputerName Server01 -ConfigurationName Test
[Server01] Connecting to remote server failed with the following error message : Access is denied. For more information, see the about_Rem
ote_Troubleshooting Help topic.
+ CategoryInfo : OpenError: (System.Manageme....RemoteRunspace:RemoteRunspace) [], PSRemotingTransportException
+ FullyQualifiedErrorId : PSSessionOpenFailed
この例では、 Disable-PSRemoting コマンドレットが、カスタム セキュリティ記述子を使用したセッション構成を含むすべてのセッション構成へのリモート アクセスを無効にすることを示します。
最初のコマンドでは、Register-PSSessionConfiguration コマンドレットを使用してテスト セッション構成を作成します。 このコマンドでは、FilePath パラメーターを使用してセッションをカスタマイズするセッション構成ファイルを指定し、ShowSecurityDescriptorUI パラメーターを使用してセッション構成のアクセス許可を設定するダイアログ ボックスを表示します。 [Permissions] ダイアログ ボックスでは、Domain01\User01 ユーザー用にカスタムのフル アクセス許可を作成します。
2 番目のコマンドでは 、Get-PSSessionConfiguration コマンドレットと Format-Table コマンドレットを使用して、セッション構成とそのプロパティを表示します。 Test セッション構成によって対話的なアクセスと Domain01\User01 ユーザー用の特殊なアクセス許可が許可されていることが出力に示されています。
3 番目のコマンドは、Disable-PSRemoting コマンドレットを使用して、すべてのセッション構成へのリモート アクセスを無効にします。
4 番目のコマンドは、Get-PSSessionConfiguration コマンドレットと Format-Table コマンドレットを使用して、セッション構成とそのプロパティを表示します。 出力は、すべてのネットワーク ユーザーの AccessDenied セキュリティ記述子が、テスト セッション構成を含むすべてのセッション構成に追加されることを示しています。 他のセキュリティ記述子は変更されませんが、"network_deny_all" セキュリティ記述子が優先されます。
5 番目のコマンドは、 Disable-PSRemoting コマンドによって、テスト セッション構成に対する特別なアクセス許可を持つ Domain01\User01 ユーザーでも、テスト セッション構成を使用してコンピューターにリモートで接続できないようにすることを示しています。
例 6: 選択したセッション構成へのリモート アクセスを再度有効にする
PS C:\> Disable-PSRemoting -Force
[ADMIN] PS C:\> Get-PSSessionConfiguration | Format-Table -Property Name, Permission -Auto
Name Permission
---- ----------
microsoft.powershell NT AUTHORITY\NETWORK AccessDenied, BUILTIN\Administrators AccessAllowed
microsoft.powershell.workflow NT AUTHORITY\NETWORK AccessDenied, BUILTIN\Administrators AccessAllowed
microsoft.powershell32 NT AUTHORITY\NETWORK AccessDenied, BUILTIN\Administrators AccessAllowed
microsoft.ServerManager NT AUTHORITY\NETWORK AccessDenied, BUILTIN\Administrators AccessAllowed
WithProfile NT AUTHORITY\NETWORK AccessDenied, BUILTIN\Administrators AccessAllowed
[ADMIN] PS C:\> Set-PSSessionConfiguration -Name Microsoft.ServerManager -AccessMode Remote -Force
[ADMIN] PS C:\> Get-PSSessionConfiguration | Format-Table -Property Name, Permission -Auto
Name Permission
---- ----------
microsoft.powershell NT AUTHORITY\NETWORK AccessDenied, BUILTIN\Administrators AccessAllowed
microsoft.powershell.workflow NT AUTHORITY\NETWORK AccessDenied, BUILTIN\Administrators AccessAllowed
microsoft.powershell32 NT AUTHORITY\NETWORK AccessDenied, BUILTIN\Administrators AccessAllowed
microsoft.ServerManager BUILTIN\Administrators AccessAllowed
WithProfile NT AUTHORITY\NETWORK AccessDenied, BUILTIN\Administrators AccessAllowed
この例では、選択したセッション構成にのみリモート アクセスを再度有効にする方法を示します。
最初のコマンドは、Disable-PSRemoting コマンドレットを使用して、すべてのセッション構成へのリモート アクセスを無効にします。
2 番目のコマンドでは 、Get-PSSessionConfiguration コマンドレットと Format-Table コマンドレットを使用して、セッション構成とそのプロパティを表示します。 すべてのネットワーク ユーザーを対象として AccessDenied セキュリティ記述子がすべてのセッション構成に追加されたことが出力に示されています。
3 番目のコマンドでは、 Set-PSSessionConfiguration コマンドレットを 使用します。 このコマンドでは、AccessMode パラメーターに値 Remote を使用して、Microsoft.ServerManager セッション構成へのリモート アクセスを有効にしています。 AccessMode パラメーターを使用して、ローカル アクセスを有効にしたり、セッション構成を無効にしたりすることもできます。
4 番目のコマンドは、Get-PSSessionConfiguration コマンドレットと Format-Table コマンドレットを使用して、セッション構成とそのプロパティを表示します。 出力を見ると、すべてのネットワーク ユーザーを対象とした AccessDenied セキュリティ記述子が削除され、Microsoft.ServerManager セッション構成へのリモート アクセスが復元されたことがわかります。
パラメーター
-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: | None |
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
パイプを使用してこのコマンドレットに入力を渡すことはできません。
出力
None
このコマンドレットはオブジェクトを返しません。
メモ
セッション構成を無効にしても、 Enable-PSRemoting コマンドレットまたは Enable-PSSessionConfiguration コマンドレットによって行われたすべての変更が元に戻されるわけではありません。 場合によっては次の変更を手動で元に戻す必要があります。
WinRM サービスを停止して無効にする。
2. 任意の IP アドレスで要求を受け入れるリスナーを削除します。
3. WS-Management 通信のファイアウォール例外を無効にします。
4. LocalAccountTokenFilterPolicy の値を 0 に復元します。これにより、コンピューター上の Administrators グループのメンバーへのリモート アクセスが制限されます。
セッション構成は、セッションの環境を定義する設定のグループです。 コンピューターに接続するすべてのセッションは、コンピューターに登録されているセッション構成のいずれかを使用する必要があります。 すべてのセッション構成へのリモート アクセスを拒否することにより、リモート ユーザーがコンピューターに接続するセッションを確立するのを効果的に防止できます。
Windows PowerShell 2.0 では、Disable-PSRemoting によって、すべてのセッション構成のセキュリティ記述子にDeny_Allエントリが追加されます。 この設定により、すべてのユーザーがローカル コンピューターへのユーザー管理セッションを作成できなくなります。 Windows PowerShell 3.0 では、Disable-PSRemoting によって、すべてのセッション構成のセキュリティ記述子にNetwork_Deny_Allエントリが追加されます。 この設定により、他のコンピューターのユーザーがローカル コンピューターでユーザー管理セッションを作成できなくなりますが、ローカル コンピューターのユーザーはユーザーが管理するループバック セッションを作成できます。
Windows PowerShell 2.0 では、Disable-PSRemoting は と同等ですDisable-PSSessionConfiguration -Name *
。
Windows PowerShell 3.0 以降のリリースでは、Disable-PSRemoting は と同等ですSet-PSSessionConfiguration -Name \<Configuration name\> -AccessMode Local
Windows PowerShell 2.0 では、Disable-PSRemoting は関数です。 Windows PowerShell 3.0 より、これはコマンドレットになりました。