事象
PowerCLIにてConnect-VIServerを利用してESXiに接続を試みるも
> Connect-VIServer : パラメーター 'Password' で必要とされる型 'System.String' に 'System.Object[]' を変換できません。指定されたメソッドはサポートされていません。 発生場所 行:1 文字:56 + Connect-VIServer -Server xx -User root -Password xxxxx + ~~~~~~~~~~~~~~ + CategoryInfo : InvalidArgument: (:) [Connect-VIServer]、ParameterBindingException + FullyQualifiedErrorId : CannotConvertArgument,VMware.VimAutomation.ViCore.Cmdlets.Commands.ConnectVIServer
というエラーで接続に失敗する。
環境情報
- VMware ESXi 6.7
- VMware.PowerCLI 12.0
原因/解決策
パスワードに「,」のような記号が入っている。
よってパスワード部分をダブルクオーテーションで囲んで再度実行すると
> Connect-VIServer -Server xx -User root -Password "xxxxx" Name Port User ---- ---- ---- xx 443 root
正常に接続できた。
以下、補足です。
補足
Powershellコンソールではオプション指定にカンマを使用するコマンドを実行する際には、カンマが入ったオプション部分をダブルクオートで括る必要があります。
以下のようにESXiのパスワード規則をきつくしているとパスワードに記号を入れ込む必要がありますが
カンマが入った場合は同様のエラーになります。
このあたりの部分をスクリプト化する場合は注意が必要で、念の為ダブルクオーテーションで囲っておくことをおすすめします。
以上です。
以上、ご参考になれば幸いです。