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

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 情報取得例でした。

Version history
Revision #:
1 of 1
Last update:
‎10-11-2018 09:00 AM
Updated by: