Windows 11 を使い始めたころから .rdp ファイルで保存した資格情報を利用した自動接続が以下のエラーで失敗するようになりました。
このエラーを見る限り、Credential Guard が保存された資格情報の使用をブロックしているようです。
軽く調べた限り、Credential Guard は Windows 11 22H2 から既定で有効化されているみたいです。
参考:Credential Guard の概要 | Microsoft Learn
Credential Guard により資格情報の使用がブロックされた理由は詳しくは特定できてませんが、以下のドキュメントに記載の動作が影響している可能性が高そうです。
パスワードベースの認証で安全でないプロトコルに依存する 802.1x ワイヤレスまたは有線ネットワーク、RDP、または VPN 接続を使用するデバイスは、SSO を使用してサインインできず、Credential Guard の実行中にすべての新しい Windows セッションで手動で再認証を強制されます。
参考:Credential Guard を使用するときの考慮事項と既知の問題 | Microsoft Learn
今回は、この RDP 接続時の再認証を回避してスムーズにリモートアクセスを行う方法を調べたのでまとめておきます。
もくじ
回避策 1:Microsoft Store 版のリモートデスクトップアプリを使用する
この問題、どうやら Microsoft Store 版のリモートデスクトップアプリを使用すると解決するようです。
実際に試してみたところ、リモートデスクトップのストアアプリを使用すると、アプリで保存した資格情報を使用して自動的にリモートアクセスできるようになりました。
ただし、個人的にはストアアプリ版のリモートデスクトップはスクロール時の動作が気持ち悪くて気に食わないのでこの方法の採用は見送りました。
回避策 2:cmdkey で汎用資格情報を登録する
次の回避策は、cmdkey で汎用資格情報を登録するものです。
従来のリモートデスクトップクライアントで資格情報を保存した場合、その資格情報は Windows Credentials
として保存されます。
cmdkey でこれを削除し、Generic Credencials
として登録しなおすことでリモートデスクトップ時の Credential Guard によるブロックを回避して自動ログオンができるようになるようです。
まずは以下のコマンドで現在登録されている資格情報を確認します。
cmdkey /list
>
Target: Domain:target=TERMSRV/192.168.10.10
Type: Domain Password
User: kash1064
Local machine persistence
次に、delete オプションで既存の資格情報を削除した後、Generic Credencials
として資格情報を再登録します。
cmdkey /delete:TERMSRV/192.168.10.10
cmdkey /generic:TERMSRV/192.168.10.10 /user:<UserName> /pass:<Password>
再度以下のコマンドを実行して資格情報が登録されたことを確認した後、.rdp ファイルを使用してリモートアクセスに成功することを確認します。
cmdkey /list
>
Target: LegacyGeneric:target=TERMSRV/192.168.10.10
Type: Generic
User: kash1064
まとめ
Windows の認証情報管理周りの知識がなさ過ぎて Credential Guard で接続がブロックされる理由や回避策が機能する理由を深掘りしきれなかったので、認証回りも勉強していこうと思います。