まとめ

  • オフライン環境でも VMware PowerCLI 6.5.1 のインストールは可能
  • インターネットに接続できる環境で Save-Module コマンドレットでモジュールファイルをダウンロード
  • ダウンロードしたフォルダ群を PowerShell のモジュール フォルダにコピー

はじめに

VMware PowerCLI 6.5.1 のインストールは、これまでの MSI パッケージによるインストールから PowerShell Gallery からのモジュール インストールに変更になっています。つまり、インストール対象のマシンは PowerShell Gallery に接続しなければなりません。業務システムではインターネットに接続できないケースはよくあるので、この制約は乗り越える必要があります。

マニアな人は PowerShell のリポジトリを自力で立ち上げて下さいませ。

オフラインでの VMware PowerCLI 6.5.1 のインストール

Install-Module コマンドレットでローカル フォルダをリポジトリにするオプションがあるのかと思いきや、残念ながら見当たりません。Microsoft Developer Network の Installing a PowerShell Module の記事を参考に、PowerShell Gallery からダウンロードしたモジュールを、インストール対象マシンにコピーすることで、オフラインでの VMware PowerCLI 6.5.1 のインストールを実現します。

Save-Module コマンドレットで任意のフォルダに、関連するモジュール全てをダウンロードすることができます。これは作業用の PC などで行います。

    PS C:\Temp> Save-Module -Name VMware.PowerCLI -Path C:\Temp
    PS C:\Temp> dir
    
    
        ディレクトリ: C:\Temp
    
    
    Mode                LastWriteTime         Length Name
    ----                -------------         ------ ----
    d-----       2017/06/14     19:49                VMware.DeployAutomation
    d-----       2017/06/14     19:48                VMware.ImageBuilder
    d-----       2017/06/14     19:49                VMware.PowerCLI
    d-----       2017/06/14     19:47                VMware.VimAutomation.Cis.Core
    d-----       2017/06/14     19:48                VMware.VimAutomation.Cloud
    d-----       2017/06/14     19:45                VMware.VimAutomation.Common
    d-----       2017/06/14     19:47                VMware.VimAutomation.Core
    d-----       2017/06/14     19:48                VMware.VimAutomation.HA
    d-----       2017/06/14     19:48                VMware.VimAutomation.HorizonView
    d-----       2017/06/14     19:48                VMware.VimAutomation.License
    d-----       2017/06/14     19:48                VMware.VimAutomation.PCloud
    d-----       2017/06/14     19:45                VMware.VimAutomation.Sdk
    d-----       2017/06/14     19:48                VMware.VimAutomation.Srm
    d-----       2017/06/14     19:49                VMware.VimAutomation.Storage
    d-----       2017/06/14     19:49                VMware.VimAutomation.StorageUtility
    d-----       2017/06/14     19:48                VMware.VimAutomation.Vds
    d-----       2017/06/14     19:48                VMware.VimAutomation.vROps
    d-----       2017/06/14     19:49                VMware.VumAutomation
    
    
    PS C:\Temp>

インストール対象マシンへのモジュール ファイルのコピー

PowerShell のモジュール フォルダは、変数 $Env:PSModulePath にカンマ刻みで設定されています。

    PS C:\Temp> $Env:PSModulePath
    C:\Users\Administrator\Documents\WindowsPowerShell\Modules;C:\Program Files\WindowsPowerShell\Modules;C:\Windows\system32\WindowsPowerShell\v1.0\Modules

それぞれ以下のような使い分けとなり、C:¥Windows フォルダ配下のモジュール フォルダは利用することは出来ません。

  • C:\Users${USERNAME}\Documents\WindowsPowerShell\Modules (ユーザー固有のモジュール)
  • C:\Program Files\WindowsPowerShell\Modules (システムワイドのモジュール)
  • C:\Windows\system32\WindowsPowerShell\v1.0\Modules (Windows によって Reserved)

VMware PowerCLI 6.5 R1 (6.5.0) 以前がインストールされている場合は C:\Program Files (x86)\VMware\Infrastructure\PowerCLI\Modules が最後に追加されているかも知れません。

単純ではありますが、このコピー作業のみで VMware PowerCLI 6.5.1 のインストールは完了です。

私自身は動作確認のために利用することが多いので、C:¥Program Files¥WindowsPowerShell¥Modules 配下にモジュールをコピーしています。ズボラなので ExecutionPolicy なぞは Bypass (以下ry

    PS C:\Temp> Import-Module VMware.PowerCLI
    Import-Module : モジュール ディレクトリに有効なモジュール ファイルが見つからなかったため、指定されたモジュール 'VMware.PowerCLI' は読み込まれませんでした。
    発生場所 行:1 文字:1
    + import-module VMware.PowerCLI
    + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
        + CategoryInfo          : ResourceUnavailable: (VMware.PowerCLI:String) [Import-Module], FileNotFoundException
        + FullyQualifiedErrorId : Modules_ModuleNotFound,Microsoft.PowerShell.Commands.ImportModuleCommand
    ...snip...
    ここでモジュールファイルをコピーする
    ...snip...
    PS C:\Temp> Import-Module VMware.PowerCLI
              Welcome to VMware PowerCLI!
    
    Log in to a vCenter Server or ESX host:              Connect-VIServer
    To find out what commands are available, type:       Get-VICommand
    To show searchable help for all PowerCLI commands:   Get-PowerCLIHelp
    Once you've connected, display all virtual machines: Get-VM
    If you need more help, visit the PowerCLI community: Get-PowerCLICommunity
    
           Copyright (C) VMware, Inc. All rights reserved.
    
    
    PS C:\Temp>