ad1

2018年3月7日水曜日

PowerCLIのセキュリティ警告を無視する設定

私の場合はずぼらな正確なので、手元の検証環境でPowerCLIでvCenter接続時などの証明書チェック時の挙動は "Ignore" にしていたので気づかなかったのですが、
PowerCLI 10.0 に更新した人から今までどおりのアクセスだと弾かれてしまい、vCenterに接続できないと問い合わせがあったので変更手順を記しておきます。

以下のように、Get-Credentialの値を変数に入れて、Connect-VIServer などに渡している場合、デフォルトでは今までは黄色い文字で警告が出てましたが、PowerCLI 10から以下のように "Invalid server certificate" で弾かれてしまうようです。

PS E:\> $cre = Get-Credential

コマンド パイプライン位置 1 のコマンドレット Get-Credential
次のパラメーターに値を指定してください:
Credential

PS E:\> Connect-VIServer -Server ex-vcsa.techlab.local -Credential $cre
Connect-VIServer : 2018/03/07 17:52:31  Connect-VIServe
Error: Invalid server certificate. Use Set-PowerCLIConfiguration to set the value for the
InvalidCertificateAction option to Prompt if you'd like to connect once or to add a permane
nt exception for this server.
Additional Information: 機関 'ex-vcsa.techlab.local' との SSL/TLS のセキュリティで
保護されているチャネルに対する信頼関係を確立できませんでした。
発生場所 行:1 文字:1
+ Connect-VIServer -Server ex-vcsa.techlab.local -Credential $cr ...
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  + CategoryInfo          : セキュリティ エラー: (: ) [Connect-VIServer]、ViSecurityNegotiationException
  + FullyQualifiedErrorId : Client20_ConnectivityServiceImpl_Reconnect_CertificateError,VMware.VimAutomation.ViCore.Cmdlets.Commands.ConnectVIServer


これを回避するためには Connect-VIServer のオプションで -Force を付けて実行するか
以後、-Force オプションを付けずに接続可能なように、Set-PowerCLIConfiguration でPowerCLIの規定値を変えておきます。 規定値は以下のようになっていると思います。Get-PowerCLIConfiguration コマンドで確認します。
ちなみにそれぞれの値の意味は以下のとおりです。
Unset – デフォルト値。基本的にはWarnと同じです(ただ、PowerCLI10から少しセキュリティが強化された?)
Prompt – サーバー証明書が信頼されていない場合、アクションを求めるプロンプトを表示します。
Fail – 証明書が有効でない場合は接続は確立しません。
Ignore – 証明書が無効であるかどうかを考慮せずに接続を確立します。
Warn – 証明書が有効でない場合、その理由と証明書に関する追加情報が表示されます。


PS E:\> Get-PowerCLIConfiguration

Scope    ProxyPolicy     DefaultVIServerMode InvalidCertificateAction  DisplayDeprecationWarnings WebOperationTimeout
                                                                                                  Seconds
-----    -----------     ------------------- ------------------------  -------------------------- -------------------
Session  UseSystemProxy  Multiple            Unset                     True                       300
User
AllUsers

閉じた環境で接続先は信頼しているのであれば、"AllUser" に "Ignore" を入れてしまってもよいですが、今までのようにせめて黄色文字で警告文を出すのであれば "Warn" で設定します。

PS E:\> Set-PowerCLIConfiguration -InvalidCertificateAction Warn -Scope AllUsers

Perform operation?
Performing operation 'Update PowerCLI configuration.'?
[Y] Yes  [A] Yes to All  [N] No  [L] No to All  [S] Suspend  [?] Help (default is "Y"): A

Scope    ProxyPolicy     DefaultVIServerMode InvalidCertificateAction  DisplayDeprecationWarnings WebOperationTimeout
                                                                                                  Seconds
-----    -----------     ------------------- ------------------------  -------------------------- -------------------
Session  UseSystemProxy  Multiple            Warn                      True                       300
User
AllUsers                                     Warn

Ignoreの場合は以下のように設定します。

PS E:\> Set-PowerCLIConfiguration -InvalidCertificateAction Ignore -Scope AllUsers

Perform operation?
Performing operation 'Update PowerCLI configuration.'?
[Y] Yes  [A] Yes to All  [N] No  [L] No to All  [S] Suspend  [?] Help (default is "Y"): A

Scope    ProxyPolicy     DefaultVIServerMode InvalidCertificateAction  DisplayDeprecationWarnings WebOperationTimeout
                                                                                                  Seconds
-----    -----------     ------------------- ------------------------  -------------------------- -------------------
Session  UseSystemProxy  Multiple            Ignore                    True                       300
User
AllUsers                                     Ignore

過去30日でアクセスの多い投稿