PowerCLI で VM の設定を確認してみる。(「3D サポートを有効化」編)



  • VMSA-2018-0025 にて、 VM の 3D サポート機能にかかわる

    セキュリティ脆弱性が公表されました。

     

    よい機会なので、PowerCLI で VM の設定状況を確認してみます。

    ただし、この「3D サポートを有効化」はデフォルトでは無効になっています。

    そこで今回の環境では意図的に有効にしています。

     

    まず、今回は 10台の VM を用意しました。

    PowerCLI> Get-VM | Sort-Object Name

     

     

    Name                 PowerState Num CPUs MemoryGB

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

    test-vm-001          PoweredOn  1        4.000

    test-vm-002          PoweredOn  1        4.000

    test-vm-003          PoweredOn  1        4.000

    test-vm-004          PoweredOn  1        4.000

    test-vm-005          PoweredOn  1        4.000

    test-vm-006          PoweredOn  1        4.000

    test-vm-007          PoweredOn  1        4.000

    test-vm-008          PoweredOn  1        4.000

    test-vm-009          PoweredOn  1        4.000

    test-vm-010          PoweredOn  1        4.000

     

     

    このうち1台の VM の設定を確認してみます。

    対象の仮想デバイスの設定を確認する専用コマンドが見つけられなかったので、

    とりあえず VM「test-vm-010」の ExtensionData からデバイスの情報を探ると

    Key = 500 が Video Card だとわかるので、その情報を見てみます。

    PowerCLI> $vm = Get-VM test-vm-010

    PowerCLI> $vm.ExtensionData.Config.Hardware.Device | select Key,{$_.DeviceInfo.Label}

     

      Key $_.DeviceInfo.Label

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

      200 IDE 0

      201 IDE 1

      300 PS2 controller 0

      100 PCI controller 0

      400 SIO controller 0

      600 Keyboard

      700 Pointing device

      500 Video card

    12000 VMCI device

    1000 SCSI controller 0

    15000 SATA controller 0

    16000 CD/DVD drive 1

    2000 Hard disk 1

    4000 Network adapter 1

     

     

    この VM の Video Card は、Enable3DSupport が True になっていることがわかりました。

    PowerCLI> $vm.ExtensionData.Config.Hardware.Device | where {$_.key -eq 500}

     

    VideoRamSizeInKB       : 16384

    NumDisplays            : 1

    UseAutoDetect          : False

    Enable3DSupport        : True

    Use3dRenderer          : automatic

    GraphicsMemorySizeInKB : 262144

    Key                    : 500

    DeviceInfo             : VMware.Vim.Description

    Backing                :

    Connectable            :

    SlotInfo               :

    ControllerKey          : 100

    UnitNumber             : 0

     

     

    Enable3DSupport は、下記のように確認することもできます。

    PowerCLI> ($vm.ExtensionData.Config.Hardware.Device | where {$_.key -eq 500}).Enable3DSupport

    True

    PowerCLI> Get-VM test-vm-010 | %{($_.ExtensionData.Config.Hardware.Device | where {$_.key -eq 500}).Enable3DSupport}

    True

     

    まとめて複数の仮想マシンの情報を確認することもできます。

    PowerCLI> Get-VM | select Name,@{N="Enable3DSupport";E={($_.ExtensionData.Config.Hardware.Device | where {$_.key -eq 500}).Enable3DSupport}} | Sort-Object Name

     

     

    Name        Enable3DSupport

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

    test-vm-001           False

    test-vm-002           False

    test-vm-003           False

    test-vm-004            True

    test-vm-005            True

    test-vm-006           False

    test-vm-007            True

    test-vm-008            True

    test-vm-009            True

    test-vm-010            True

     

     

    下記のように、Enable3DSupport  = True の VM だけ抽出することもできます。

    PowerCLI> Get-VM | select Name,@{N="Enable3DSupport";E={($_.ExtensionData.Config.Hardware.Device | where {$_.key -eq 500}).Enable3DSupport}} | where {$_.Enable3DSupport -eq "True"} | Sort-Object Name

     

     

    Name        Enable3DSupport

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

    test-vm-004            True

    test-vm-005            True

    test-vm-007            True

    test-vm-008            True

    test-vm-009            True

    test-vm-010            True

     

     

    また、今回の設定のように .vmx パラメータの設定によるものであれば、

    シンプルに Get-AdvancedSetting で確認できるケースもあります。

    PowerCLI> Get-VM | Get-AdvancedSetting -Name mks.enable3d | select Entity,Value | Sort-Object Entity

     

    Entity      Value

    ------      -----

    test-vm-004 TRUE

    test-vm-005 TRUE

    test-vm-007 TRUE

    test-vm-008 TRUE

    test-vm-009 TRUE

    test-vm-010 TRUE

     

     

    このように、PowerCLI を利用することで、簡単に、大量 VM の設定確認ができます。

     

    ちなみに、今回の実行環境は Windows PowerShell + PowerCLI 11.0.0 です。

    PowerCLI> Get-Host | select Version

     

    Version

    -------

    5.1.17134.228

     

    PowerCLI> Get-Module VMware.PowerCLI | select Version

     

    Version

    -------

    11.0.0.10380590

     

     

    以上、PowerCLI による VM 情報取得例でした。



    https://communities.vmware.com/people/gowatana/blog/2018/10/11/powercli-tips

 

© Lightnetics 2018