Windows Server
 Computer >> コンピューター >  >> システム >> Windows Server

WinRMクライアントがHTTPの不正な要求ステータス(400)を受信する原因と対処法

現象:Enter-PSSession実行時にHTTP 400エラーが発生する

Active Directoryドメイン内のWindowsサーバーにWinRMを構成している際、奇妙な問題に遭遇することがあります。WinRMサービスの設定・有効化が完了し、PowerShellリモーティングによるリモート接続も許可されているにもかかわらず、Enter-PSSession lon-dc1コマンドでサーバーへ接続しようとすると、PowerShellコンソールに以下のようなエラーが表示されるケースです。

PS C:\Windows\system32> Enter-PSSession lon-dc01

Enter-PSSession : リモート サーバー lon-dc1 への接続に失敗しました。
次のエラー メッセージが返されました : WinRM クライアントは、HTTP 不正な
要求ステータス (400) を受信しましたが、リモート サービスからは障害の原因に
関するその他の情報は提供されませんでした。詳細については、
about_Remote_Troubleshooting のヘルプ トピックを参照してください。

また、環境によっては以下のようなエラーメッセージが表示されることもあります。

WinRM クライアントは要求を処理できません。接続先コンピューターからの HTTP 応答のコンテンツ タイプを判別できません。コンテンツ タイプがないか、無効です。

ネットワークポート自体は正常に応答している

注目すべきは、この状態でもサーバー側のWinRMポート(TCP 5985/HTTP、5986/HTTPS)は正常に応答しており、接続自体は受け付けられているという点です。WinRMポートの可用性は、PortQryツールまたはPowerShellのTest-NetConnectionコマンドレットで確認できます。

TNC lon-dc1 -Port 5985

原因:Kerberosトークンサイズの16KB超過

調査の結果、この問題の原因は、ユーザーが多数のドメインセキュリティグループに所属していたことで、Kerberosトークンのサイズが肥大化していたことにありました。トークンサイズが16KBを超えるとこのエラーが発生します(詳細は「Kerberos MaxTokenSizeとセキュリティグループ」に関する記事を参照してください)。

今回のケースでも同様に、認証パッケージヘッダーのサイズが16KBを超えたため、WinRMサーバーがクライアントからの要求を拒否していました。IISの既定のHTTPヘッダーサイズは最大16KBに制限されているため、大きなユーザートークンが原因でHTTP認証に問題が生じる場合は、この上限を64KBへ引き上げる必要があります。

解決策1:トークンサイズを削減する

根本的な対策は、ユーザーのトークンサイズを小さくすることです。具体的には、ユーザーが所属しているセキュリティグループの数を見直して削減します。ただし、業務要件上どうしてもグループを減らせないケースもあるでしょう。

解決策2:レジストリでHTTPヘッダーサイズの上限を引き上げる

グループの削減が困難な場合は、サーバー上の以下のレジストリキーにあるDWORD値を変更します。

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\services\HTTP\Parameters
  • MaxFieldLength:0000ffff(65535)に増やす
  • MaxRequestBytes:0000ffff(65535)に増やす

再起動と動作確認

レジストリの変更後はサーバーを再起動し、リモートクライアントからEnter-PSSessionコマンドを実行して、WinRM接続が正常に行えることを確認してください。

  1. 修正:現在のメールクライアントはメッセージング要求を実行できません

    Outlookで「現在のメールクライアントはメッセージング要求を実行できません」というメールクライアントエラーが表示される場合、システムのメールクライアントが正しく設定されていないか、設定に必要な情報が欠けていることが原因として考えられます。また、Officeのインストールが破損している場合にもこのエラーが発生することがあります。この問題は、PCの起動時や、他のアプリケーションからメールを送信しようとした際に現れることがあります。「既定のメールクライアントがない」問題の解決策に進む前に、以下の点を確認しておきましょう。まず、メールクライアントがインストールされていること(OutlookやThu

  2. Windows 10でHTTP 400 Bad Requestエラーを解決する6つの対処法

    インターネットを閲覧する際、ブラウザはサーバーに対してリクエストを送信し、サーバーから正常なHTTPコードが返されれば、スムーズにウェブサイトを閲覧できます。しかし、「HTTP 400 Bad Request」というエラーが表示されると、インターネットへのアクセスができなくなってしまいます。なお、このエラーはゲートウェイタイムアウトを示す「HTTP 504エラー」とは異なるものです。 このエラーは、ある瞬間まで何も問題がなかったのに、突然発生することが多く、明確な原因は特定されていません。エラーが表示された際にまず行うべき基本的な対処法は、アドレスバーに入力したURLが正しいかどうかを確認する