株式会社ネットワールドのエンジニアがお届けする技術情報ブログです。
各製品のエキスパートたちが旬なトピックをご紹介します。

AHV移行のTIPS : PowerShellを使ったVMware Toolsのアンインストール

こんにちは、ネットワールド仮想基盤の魔術師 の海野です。

※実際にはそんな役職や肩書はないです。

2017年もNutanix Advent Calendarに参加しました。お手柔らかによろしくお願いします。

この企画に参加する方はヘビーな内容を書く方が多そうですので、私はアッサリ仕上げたいと思います。



V2V : Nutanix AHV環境への移行

最近流行りのXtract for VMs以外に、従来のイメージサービスなどを使ったvSphereからNutanix AHVへのV2V方式がいくつかありますが、

その中で避けて通れないものが「VMware Toolsをどうするか」ということです。

当然、AHV環境ではVMware Toolsは不要ですから、いままでお世話になったVMware Toolsを偲びながらもアンインストールを実行すると思います。

仮想マシンの台数が少なければ手作業によるアンインストールも現実的ですし、実際にそうされる方も多いと思います。

一方で、VDIをはじめとする非常に多数の仮想マシンがある環境や、とても大きなスケールのサーバー統合基盤ではどうでしょうか。

マスターイメージ化されているVDIであれば、VMware Toolsのアンインストールも比較的簡単にできそうですが、

個別で作業を行う必要があるフルクローンですと、話はそう単純ではありません。

 

PowerShellを使ったVMware Toolsのアンインストール

そこで、CLIを使いシンプルにVMware Toolsをアンインストールをするための手段として、PowerShellをご紹介します。

以下のコマンドをPowerShellにて実行することでVMware Toolsをアンインストールすることが可能です。

参考リンク : Get-WMiObject コマンドレットの使用

※ソースはサンプルです。使用は自己責任でご判断ください。

$App = Get-WmiObject -Class Win32_Product  | where { $_.name -eq "VMware Tools" }

$App.uninstall()



コケたときのために

PowerShellコマンドの中にTry-Catchを組み合わせれば、エラーが発生した状況を検知することも可能です。

このソースでは、何らかの理由でアンインストールが失敗した場合、

共有フォルダー内にファイル名を [ "コンピューター名" + "yyyyMMdd-HH-mmss" .txt ] とし、テキストの中身を "Error" で出力させます。

※共有フォルダーには適切な権限が設定されていることを前提としています。

参考リンク : Get-WMiObject コマンドレットの使用

$OutputFileName = "<★共有フォルダーのパス>" + $Env:COMPUTERNAME + "-" +(Get-Date).ToString("yyyyMMdd-HHmmss") +".txt"

try{
$App = Get-WmiObject -Class Win32_Product | where { $_.name -eq "VMware Tools" }
$App.Uninstall() # > $OutputFileName
}
catch
{
Write-Output "Error" > $OutputFileName
}



どうやってPowerShellを実行させるか

VDI環境であれば、Active Directoryが事実上必須であるため、GPOを利用することが可能です。

ログオンスクリプトRunOnceと組み合わせることで、移行後の初回起動時にだけこのPowerShellを実行させるといったことも可能です。

環境ごとの移行プランにあわせてご検討ください。 



まとめ

Nutanix環境へのV2V時に課題となるVMware Toolsの後片付けですが、PowerShellGPOを組み合わせることで、膨大な手作業を行わずにアンインストールすることができます。

なお、繰り返しとなりますが、今回ご紹介したPowerShellのソースはサンプルです。

当社ならびに私個人が動作を保証するものではなく、自己責任でご利用いただくようお願いします。



AHVへの移行のご相談はぜひネットワールドまで。

では、Nutanixとともに素敵なクリスマスをお過ごしください。