PowerCLI で vCenter / ESXi に接続する Connect-VIServer は以前に接続したサーバを記録していて、
「-Menu」オプションで過去に接続したサーバを表示、選択して接続することができます。
PowerCLI> Connect-VIServer -Menu
下記のような感じになります。
このサーバリストは、PowerShell からみて下記のパスにあります。
$HOME\AppData\Roaming\VMware\PowerCLI\RecentServerList.xml
XML ファイルを見てみると、下記のような感じになっています。
Server ごとに指定されている Position の数字が、-Menu での表示順です。
すでに表示されない(おそらく 10件をこえたもの)は、Position 属性が削除されています。
<ServerList>
<CurrentMonth>May</CurrentMonth>
<Server Name="vc60n01.godc.lab" January="0" February="0" March="0" April="0" May="0" June="8" July="3" August="0" September="0" October="0" November="0" December="0" Position="1" />
<Server Name="vc55n01.godc.lab" January="0" February="0" March="0" April="0" May="0" June="0" July="0" August="0" September="0" October="0" November="0" December="0" />
<Server Name="vc60n02.godc.lab" January="0" February="0" March="0" April="0" May="0" June="3" July="2" August="0" September="0" October="0" November="0" December="0" Position="3" />
<Server Name="192.168.5.75" January="0" February="0" March="0" April="0" May="0" June="0" July="0" August="0" September="0" October="0" November="0" December="0" />
<Server Name="vc01.godc.lab" January="1" February="9" March="1" April="0" May="0" June="0" July="4" August="2" September="2" October="0" November="4" December="1" Position="5" />
<Server Name="vc02.godc.lab" January="0" February="0" March="0" April="0" May="0" June="0" July="2" August="0" September="0" October="0" November="0" December="0" Position="6" />
<Server Name="vcsa50-01.godc.lab" January="0" February="0" March="0" April="0" May="0" June="0" July="0" August="0" September="1" October="0" November="0" December="0" Position="7" />
<Server Name="192.168.1.71" January="0" February="0" March="0" April="0" May="0" June="0" July="0" August="0" September="1" October="0" November="0" December="0" Position="8" />
<Server Name="vc65-1.go-lab.jp" January="1" February="4" March="3" April="0" May="0" June="0" July="0" August="0" September="0" October="0" November="0" December="0" Position="9" />
<Server Name="vc-sv01.go-lab.jp" January="0" February="0" March="4" April="9" May="10" June="0" July="0" August="0" September="0" October="0" November="0" December="0" Position="10" />
<Server Name="vc02.go-lab.jp" January="0" February="0" March="0" April="1" May="0" June="0" July="0" August="0" September="0" October="0" November="0" December="0" Position="2" />
<Server Name="vc-sv02.go-lab.jp" January="0" February="0" March="0" April="0" May="4" June="0" July="0" August="0" September="0" October="0" November="0" December="0" Position="4" />
</ServerList>
見やすく 接続先サーバ(Name)と Position を抜粋すると、下記のようになっています。
PS C:\> $sv_list = [xml](gc $HOME\AppData\Roaming\VMware\PowerCLI\RecentServerList.xml)
PS C:\> $sv_list.ServerList.Server | sort {[int]$_.Position} | ft -AutoSize Name,Position
Name Position
---- --------
192.168.5.75
vc55n01.godc.lab
vc60n01.godc.lab 1
vc02.go-lab.jp 2
vc60n02.godc.lab 3
vc-sv02.go-lab.jp 4
vc01.godc.lab 5
vc02.godc.lab 6
vcsa50-01.godc.lab 7
192.168.1.71 8
vc65-1.go-lab.jp 9
vc-sv01.go-lab.jp 10
最近使用してる vCenter 2台を残して、削除してみました。
<ServerList>
<CurrentMonth>May</CurrentMonth>
<Server Name="vc-sv01.go-lab.jp" January="0" February="0" March="4" April="9" May="10" June="0" July="0" August="0" September="0" October="0" November="0" December="0" Position="1" />
<Server Name="vc-sv02.go-lab.jp" January="0" February="0" March="0" April="0" May="4" June="0" July="0" August="0" September="0" October="0" November="0" December="0" Position="2" />
</ServerList>
Connect-VIServer -Menu を実行してみると、2台だけ表示されるようになりました。
ちなみに、不要になったサーバを Position="" とするとリストを読まなくなるようで、
XML ファイルを編集してサーバを削除するには
今回のように Server 要素ごと削除するか、Position 属性を削除する必要があるようです。
なお、今回は PowerCLI 6.5 Release 1 を Windows 10 で実行しています。
PowerCLI C:\> (Get-PowerCLIVersion).UserFriendlyVersion
VMware PowerCLI 6.5 Release 1 build 4624819
検証環境などで多数の vCenter に接続する場合には「-Menu」オプションが便利かもしれません。
以上、PowerCLI の -menu リストを更新してみる話でした。