PowerShell で Exchange Online に接続しようとした際、"A window handle must be configured. See https://aka.ms/msal-net-wam#parent-window-handles" というエラーに遭遇しました。
URL が記載されていたため飛んでみたところ、親ウィンドウハンドルを用意する必要があるとのこと。
色々面倒そうだったので別の手段でできないか調べたところ、回避する方法について記載しているサイトを見つけました。ただ、すべて英語だったため、この記事では日本語でまとめたものを紹介したいと思います。
解決策
解決方法については3つありそうです。
- ISE 以外の PowerShell を利用する
- ExchangeOnlineManagement のバージョンを変更する
- PowerShell を更新する
1.ISE 以外の PowerShell を利用する
特に指定が無いようなら、ISE 以外の PowerShell を利用することで回避可能です。
2.ExchangeOnlineManagement のバージョンを変更する
バージョンを特定のところまで下げれば回避可能です。
"3.5.1" まで下げればエラーが出ないことが確認されているので、そのバージョンに変更するコマンドを紹介します。1回すべてアンインストールして、指定のバージョンをインストールするコマンドです。
Uninstall-Module -Name ExchangeOnlineManagement -AllVersions -Force Install-Module -Name ExchangeOnlineManagement -RequiredVersion 3.5.1 -Force
3.PowerShell を更新する
PowerShell 自体をバージョン "7.x" にすることでも回避可能です。
ただし、PowerShell v6 以降では ISE はサポートされていないため、この方法は実質不可能です。
参考:https://learn.microsoft.com/ja-jp/powershell/scripting/windows-powershell/ise/introducing-the-windows-powershell-ise
一応、ISE のバージョンを"7.x" とする方法を紹介しているサイトもあるので、どうしてもという方は探してみてください。(ここでは紹介しません。実行はあくまでも自己責任としてください。)
まとめ
以上、3点の回避方法でした。お役に立てましたら幸いです。