定期的にAzure PowerShellモジュールが更新されていて、update-module azで更新しているわけですが、更新はside by sideなので古いモジュールが累積していきます。私はドキュメントフォルダーをOneDrive for Businessに同期しているので余計に…ということで、古いモジュールと不要なフォルダーを削除するスクリプトを作ってみました。
私の環境でテストはしていますが、実行は自己責任で。PoshSemantcVersionモジュールを使ってセマンティックバージョン判定しているので、インストールしてから実行してください。
install-module PoshSemantcVersion -AllowClobber
remove unnecessary old Azure PowerShell module
- 一番新しいバージョンのモジュール以外をアンインストールする
- インストールされていないモジュールバージョンのフォルダーがあった場合、強制的に削除する
Windowsの場合、アンチマルウェア動いていることもあって削除にはものすごく時間がかかります。私の場合最初のPowerShell Azureモジュールから持っていたこともあって、12時間くらいかかりました…。一時的にリアルタイムスキャンを無効にしたほうがいいでしょう。
最初は74行目に-whatifをつけてフォルダー削除を確認することをお勧めします。
Azureモジュール専用ではなく、get-installedmodules -name 'az*'のところを*にすればすべてのモジュールを対象にできます。