まとめ

  • MSI パッケージではないので、アンインストールはコントロールパネルから行えない
  • Uninstall-Module でアンインストール
  • アンインストール対象のモジュールは RequiredModules プロパティを使って依存関係のあるモジュールを列挙
  • 大雑把に対応するならばモジュールフォルダ内の当該フォルダを単純に削除

はじめに

VMware PowerCLI 6.5.1 から MSI インストーラーパッケージではなくなってしまったので、従来のようにコントロールパネルのプログラムのアンインストールから PowerCLI を削除することができません。インストール時のお作法に則って、アンインストールも同様のお作法に従います。

依存関係がインストール向け…Orz

Install-Module -Name VMware.PowerCLI で、関連モジュールが全てインストールされることから分かるように、VMware.PowerCLI がその他のモジュールを Require しています。VMware.PowerCLI.psd1 の中身を見るとよく分かります。

    ...snip...
    # Modules that must be imported into the global environment prior to importing this module
    RequiredModules = @(
    @{"ModuleName"="VMware.VimAutomation.Sdk";"ModuleVersion"="1.0.0.5334677"}
    @{"ModuleName"="VMware.VimAutomation.Common";"ModuleVersion"="6.5.1.5335010"}
    @{"ModuleName"="VMware.VimAutomation.Core";"ModuleVersion"="6.5.1.5374329"}
    @{"ModuleName"="VMware.VimAutomation.Srm";"ModuleVersion"="6.5.1.5374694"}
    @{"ModuleName"="VMware.VimAutomation.License";"ModuleVersion"="6.5.1.5375648"}
    @{"ModuleName"="VMware.VimAutomation.Vds";"ModuleVersion"="6.5.1.5374428"}
    @{"ModuleName"="VMware.VimAutomation.vROps";"ModuleVersion"="6.5.1.5375723"}
    @{"ModuleName"="VMware.VimAutomation.Cis.Core";"ModuleVersion"="6.5.1.5374323"}
    @{"ModuleName"="VMware.VimAutomation.HA";"ModuleVersion"="6.0.0.5314477"}
    @{"ModuleName"="VMware.VimAutomation.HorizonView";"ModuleVersion"="7.1.0.5307191"}
    @{"ModuleName"="VMware.VimAutomation.PCloud";"ModuleVersion"="6.5.1.5376282"}
    @{"ModuleName"="VMware.VimAutomation.Cloud";"ModuleVersion"="6.5.1.5375799"}
    @{"ModuleName"="VMware.DeployAutomation";"ModuleVersion"="6.5.1.5299608"}
    @{"ModuleName"="VMware.ImageBuilder";"ModuleVersion"="6.5.1.5299608"}
    @{"ModuleName"="VMware.VimAutomation.Storage";"ModuleVersion"="6.5.1.5374001"}
    @{"ModuleName"="VMware.VimAutomation.StorageUtility";"ModuleVersion"="1.0"}
    @{"ModuleName"="VMware.VumAutomation";"ModuleVersion"="6.5.1.5301639"}
    )
    ...snip...

ということで、アンインストール時にはモジュールの依存関係に頼れません。Uninstall-Module -Name VMware.PowerCLI としても VMware.PowerCLI モジュールが消えるだけで、その他の VMware.* モジュールは残ったままとなります。逆依存を遡る都合の良いオプションはないため、スクリプトで対応します。具体的には以下のコマンドレットを実行します。

    PS C:\Temp> (Get-Module VMware.PowerCLI -ListAvailable).RequiredModules | Uninstall-Module -Force
    PS C:\Temp> Get-Module VMware.PowerCLI -ListAvailable | Uninstall-Module -Force

もっともこの辺のことはマニュアルに記載してあるので API Reference ばかり見ていないで User Guide もよく読みましょう。» 自分

Uninstall PowerCLI

もっとズボラに

モジュールのアンインストールはもっと簡単に行えます。PowerShell のモジュール フォルダから、VMware.* フォルダを全て削除してしまうのです。最もオペミスで遅効性の大惨事を招きかねないので、コマンドでしっかり管理したほうがよいでしょう。