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接続が正常に行えることを確認してください。
-
修正:現在のメールクライアントはメッセージング要求を実行できません
Outlookで「現在のメールクライアントはメッセージング要求を実行できません」というメールクライアントエラーが表示される場合、システムのメールクライアントが正しく設定されていないか、設定に必要な情報が欠けていることが原因として考えられます。また、Officeのインストールが破損している場合にもこのエラーが発生することがあります。この問題は、PCの起動時や、他のアプリケーションからメールを送信しようとした際に現れることがあります。「既定のメールクライアントがない」問題の解決策に進む前に、以下の点を確認しておきましょう。まず、メールクライアントがインストールされていること(OutlookやThu
-
Windows 10でHTTP 400 Bad Requestエラーを解決する6つの対処法
インターネットを閲覧する際、ブラウザはサーバーに対してリクエストを送信し、サーバーから正常なHTTPコードが返されれば、スムーズにウェブサイトを閲覧できます。しかし、「HTTP 400 Bad Request」というエラーが表示されると、インターネットへのアクセスができなくなってしまいます。なお、このエラーはゲートウェイタイムアウトを示す「HTTP 504エラー」とは異なるものです。 このエラーは、ある瞬間まで何も問題がなかったのに、突然発生することが多く、明確な原因は特定されていません。エラーが表示された際にまず行うべき基本的な対処法は、アドレスバーに入力したURLが正しいかどうかを確認する