古いOS(WIn2012等)で最新のVMware.PowerCLIをインストールする方法



古いWin2012等のOSで、VMWareのAPIであるPowerCLI動かす方法を調べてみました。
(現時点での最新バージョンは 13.2.1)

最新のVMware.PowerCLIは、以下の前提ソフトが必要なようです。
・.NET Framework 4.7.2 or later または .NET Core 3.1
・Windows PowerShell 5.1 または PowerShell 7.x

この条件は、Windows7(Win2008R2)以降であれば、MSからインストーラがダウンロードできますので、何とかなりそうです。

いろいろ試行錯誤した結果、
以下の方法で、インストール出来ることを確認しました。

  • .netframework 4.7.2 以上に更新(OS再起動要求有)

    現在の .netframework のバージョンを確認するには、以下のコマンドをpowershellで実行してください
$release = Get-ItemPropertyValue -LiteralPath 'HKLM:SOFTWARE\Microsoft\NET Framework Setup\NDP\v4\Full' -Name Release
switch ($release) {
{ $_ -ge 533320 } { $version = '4.8.1 or later'; break }
{ $_ -ge 528040 } { $version = '4.8'; break }
{ $_ -ge 461808 } { $version = '4.7.2'; break }
{ $_ -ge 461308 } { $version = '4.7.1'; break }
{ $_ -ge 460798 } { $version = '4.7'; break }
{ $_ -ge 394802 } { $version = '4.6.2'; break }
{ $_ -ge 394254 } { $version = '4.6.1'; break }
{ $_ -ge 393295 } { $version = '4.6'; break }
{ $_ -ge 379893 } { $version = '4.5.2'; break }
{ $_ -ge 378675 } { $version = '4.5.1'; break }
{ $_ -ge 378389 } { $version = '4.5'; break }
default { $version = $null; break }
}

if ($version) {
Write-Host -Object ".NET Framework Version: $version"
} else {
Write-Host -Object '.NET Framework Version 4.5 or later is not detected.'
}

  • Windows Management Frameworkを5.1以上に更新(OS再起動要求有)
    バージョンを確認するには、Powershell上で以下のコマンドを実行し、
    PSVersion行を確認してください。
$PSVersionTable
  • Install-Moduleが「NuGet プロバイダーが必要です」というエラーで失敗する場合、
    Netの通信プロトコルをTLS1.2に変更する必要があります。
    (TLS1.2に対応していない場合、powershellで実行)。

    (設定確認)
    [Net.ServicePointManager]::SecurityProtocol
    (設定変更)
    [Net.ServicePointManager]::SecurityProtocol = [Net.SecurityProtocolType]::Tls12
  • 既存PowerCLIアンインストール
    (旧バージョンを既に導入していた場合、プログラムと機能から実施)
  • PowerCLIのインストール(powershellからコマンド実行)
    Install-Module VMware.PowerCLI

これで一旦インストールできました。

なお、今までは、Connect-VIServer接続時に、証明書エラーがあっても、黄色い文字で警告が出るのみで、処理の継続ができていましたが、
PowerCLI10以降では、完全にエラーとなり、処理が進まなくなっているようです。

これを回避するには、2つあり、以下のいずれかで対応します。

  • Connect-VIServerのオプションで、-Force を付けて実行
  • Set-PowerCLIConfiguration でPowerCLIの規定値を変える
(設定確認)
PS C:> Get-PowerCLIConfiguration
Scope ProxyPolicy DefaultVIServerMode InvalidCertificateAction DisplayDeprecationWarnings WebOperationTimeout
Seconds
----- ----------- ------------------- ------------------------ -------------------------- -------------------
Session UseSystemProxy Multiple Unset True 300
User
AllUsers
(設定変更:PowerCLI10以前の動作と同じ、警告表示するが、作業は続行する)
PS C:\> 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 (defaultis "Y"): A
Scope    ProxyPolicy     DefaultVIServerMode InvalidCertificateAction  DisplayDeprecationWarnings WebOperationTimeout Seconds
-----    -----------     ------------------- ------------------------  -------------------------- -------------------
Session  UseSystemProxy  Multiple            Warn                      True                       300
User
AllUsers                                     Warn

現在のPowerCLIコマンドのバージョンは以下のコマンドで確認できます。

Get-PowerCLIVersion

PowerCLIのバージョンアップは、PowerCLI 6.5.1以降をPowerShell Galleryからすでにインストールしている場合は、以下のコマンドで実行できます。

Update-Module -Name VMware.PowerCLI

PowerCLI 6.5.1以降インストール済での、PowerCLI削除は以下のコマンドで可能です。。

Get-Module -Name VMware.* -ListAvailable | Uninstall-Module -Force

関連URL

Compatibility Matrix for VMware PowerCLI

.NET Framework 4.7.2 をダウンロード | 無料の公式ダウンロード (microsoft.com)

Download Windows Management Framework 5.1 from Official Microsoft Download Center

【PowerShell】Install-Module MSOnline実施時に「NuGet プロバイダーが必要です」と表示された場合 (zenn.dev)

PowerCLI のインストール (vmware.com)

PowerShell Gallery からの PowerCLI インストール・アップデート方法

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

Views: 31

カテゴリー: 未分類 パーマリンク

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です