久しぶりにExchangeOnlineを使用するPowerShellプログラムを実行してみたところ、動かないではありませんか。「え?なんで?何もしてないのに壊れたわ」とPCわからない人が絶対言うであろう素人発言が頭をよぎりました。
New-PSSession : [outlook.office365.com] リモート サーバー outlook.office365.com への接続に失敗し、次のエラー メッセージが返されました: アクセスが拒否されました。詳細については、about_Remote_Troubleshooting のヘルプ トピックを参照してください。
調べてみたところ、自分が使用しているExchangeOnlinePowerShellのバージョンが古かったようです。かつ、認証方法も古かったようで、新しい認証方法で接続しなければなりませんでした。全然知らなかったよ、教えてくれよMicrosoftちゃん…
【重要なお知らせ】Exchange Online における基本認証の廃止について - Windows Blog for Japan
いつも Microsoft 365 をご利用いただきありがとうございます。 お客様の大切なデータとアカウントをより安全に保護する目的で、2022 年 10 月 1 日以降、MAPI、RPC、オフライン アドレス帳 (OAB)、Exchang...
ExchangeOnlinePowerShellをバージョンアップする
まずはExchangeOnlinePowerShellを新しくしたいと思います。以下のコマンドを叩き込みましょう。
PS> Install-Module -Name ExchangeOnlineManagement
なんかいろいろメッセージ画面が聞いてくるので「すべて続行」します。インストールが完了します。バージョンを確認してみましょう。
PS> Get-InstalledModule ExchangeOnlineManagement |
Format-List Name,Version,InstalledLocation
Name : ExchangeOnlineManagement
Version : 3.0.0
InstalledLocation :
C:\Program Files\WindowsPowerShell\Modules\ExchangeOnlineManagement\3.0.0
バージョン3になりましたね。
認証方法の変更
接続方法のおソース
$secpasswd = ConvertTo-SecureString -String 'password' -AsPlainText -Force
$o365cred = New-Object System.Management.Automation.PSCredential ("papa@papamamameyou.com", $secpasswd)
Connect-ExchangeOnline -Credential $o365cred
切断方法のおソース
Disconnect-ExchangeOnline
これで動くようになりました!
まとめ
久しぶりに動かすプログラムが動かなくなってると焦りますね(;^ω^)
あと何もしてないのに壊れることはありません。必ず原因があります。真実はいつもひとつです。
コメント