PowerCLI でコマンドを実行するときには

あらかじめ Connect-VIServer コマンドレットで vCenter(もしくは ESXi)に接続します。

PowerCLI> Connect-VIServer vcenter55-2.vmad.local

※「-User」と「-Password」でユーザ/パスワードを指定することもできますが省略しています。

 

この Connect-VIServer を複数回実行するか、

もしくは vCenter のアドレスを「,」で区切って複数指定することで、

複数のサーバ(vCenter / ESXi) に同時接続してコマンド実行することが可能です。

※どちらの方法も、ユーザ/パスワードはサーバごとに入力することになります。

 

Connect-VIServer を複数回実行するコマンドライン例

vcenter55-2.vmad.local と vcenter51u1-2.vmad.local が接続先 vCenter のアドレスです。

PowerCLI> Connect-VIServer vcenter55-2.vmad.local

PowerCLI> Connect-VIServer vcenter51u1-2.vmad.local


接続先サーバを複数指定するコマンドライン例

※「-Server」は省略可のですが、わかりやすくするために付けてみました。

PowerCLI> Connect-VIServer -Server vcenter55-2.vmad.local,vcenter51u1-2.vmad.local

 

ちょっと強引なコマンドラインですが、

下記のような感じで、複数の vCenter に接続できたことが確認できます。

PowerCLI> Get-Datacenter | select @{N="VIServer";E={$_.Uid -replace ".*@|:443.*",""}} -Unique

 

VIServer

--------

vcenter55-2.vmad.local

vcenter51u1-2.vmad.local

 

PowerCLI の設定確認方法

 

複数サーバへの接続を許可するかどうかは、

PowerCLIの Connect-VIServer で初めて複数サーバに接続した時に質問されます。

下記の質問に 「Y」 を入力すると、複数サーバ接続ができるようになります。

powercli-Multiple-msg.png

PowerCLI C:\> Connect-VIServer vcenter55-2.vmad.local

 

 

Working with multiple default servers?

 

 

    Select [Y] if you want to work with more than one default servers. In this

case, every time when you connect to a different server using Connect-VIServer,

the new server connection is stored in an array variable together with the

previously connected servers. When you run a cmdlet and the target servers

cannot be determined from the specified parameters, the cmdlet runs against all

servers stored in the array variable.

    Select [N] if you want to work with a single default server. In this case,

when you run a cmdlet and the target servers cannot be determined from the

specified parameters, the cmdlet runs against the last connected server.

 

 

    WARNING: WORKING WITH MULTIPLE DEFAULT SERVERS WILL BE ENABLED BY DEFAULT

IN A FUTURE RELEASE. You can explicitly set your own preference at any time by

using the DefaultServerMode parameter of Set-PowerCLIConfiguration.

 

 

[Y] はい(Y)  [N] いいえ(N)  [S] 中断(S)  [?] ヘルプ (既定値は "Y"): Y

 

下記のように PowerCLI の設定を確認することで

複数サーバへ接続可能なモードかどうかを確認できます。

 

DefaultVIServerMode が「Multiple」となっていれば、複数サーバへ接続可能な状態です。

powercli-Multiple.png

ちょっと見にくいですが、下記のように表示されます。

PowerCLI> Get-PowerCLIConfiguration

 

Scope    ProxyPolicy     DefaultVIServerMode InvalidCertificateAction  DisplayDeprecationWarnings WebOperationTimeout

                                                                                                  Seconds

-----    -----------     ------------------- ------------------------  -------------------------- -------------------

Session  UseSystemProxy  Multiple            Unset                     True                       300

User                     Multiple

AllUsers

 

ちなみに、

この DefaultVIServerMode が Single になっていると、

複数台のvCenterに接続しようとしても、最後に接続したサーバのセッションだけが

有効になってしまいます。

 

DefaultVIServerMode = Multiple の設定方法

 

何らかの事情で

DefaultVIServerMode が Single になっている場合は、

下記のコマンドで Multiple(複数サーバへ接続可能なモード)に変更できます。

PowerCLI> Get-PowerCLIConfiguration

 

Scope    ProxyPolicy     DefaultVIServerMode InvalidCertificateAction  DisplayDeprecationWarnings WebOperationTimeout

                                                                                                  Seconds

-----    -----------     ------------------- ------------------------  -------------------------- -------------------

Session  UseSystemProxy  Single              Unset                     True                       300

User                     Single

AllUsers

 

 

PowerCLI> Set-PowerCLIConfiguration -DefaultVIServerMode Multiple -Scope User -Confirm:$false

 

Scope    ProxyPolicy     DefaultVIServerMode InvalidCertificateAction  DisplayDeprecationWarnings WebOperationTimeout

                                                                                                  Seconds

-----    -----------     ------------------- ------------------------  -------------------------- -------------------

Session  UseSystemProxy  Multiple            Unset                     True                       300

User                     Multiple

AllUsers

 

vCenter だけでなく、vCenter 管理されていない 無償版 ESXi へも複数接続できるので

PowerCLI でまとめて情報取得したい時などに同時接続すると便利だと思います。

 

以上、PowerCLI から複数台の vCenter に接続してみる話でした。