簡體   English   中英

PowerCLI / Powershell 更改 VM 的監視器計數

[英]PowerCLI / Powershell to change monitor count of VM

我正在嘗試設置一個腳本,該腳本可以運行以自動更改特定文件夾中所有 VM 的監視器計數。 任何幫助將不勝感激。 以下是腳本的當前迭代:

#Variable Declaration
$vcenter = Gc-UserInputFromList("vcenter instances go here")
$tenant = Get-UserInput "Enter the 4 digit tenant ID"
[int]$NumDisplays

#vSphere connection
$session = Connect-Viserver -Server $vcenter

#Change Monitor Count
$vms = get-vm -Location $tenant

Foreach ($vm in $vms){
      $VideoAdapter = $vm.ExtensionData.Config.Hardware.Device | where {$vm.GetType().Name -eq "VirtualMachineVideoCard"}
      $spec = New-Object VMware.Vim.VirtualMachineConfigSpec
      $Config = New-Object VMware.Vim.VirtualDeviceConfigSpec
      $Config.device.numDisplays = 3
      $Config.operation = "edit"
      $spec.deviceChange += $Config
      $VMView = $vm | Get-View
      $VMView.ReconfigVM($spec)
   }

盡管我努力解決,但目前仍收到這些錯誤

在此對象上找不到屬性“numDisplays”。 驗證該屬性是否存在並且可以設置。

使用“1”參數調用“ReconfigVM”的異常:“在解析 vim.vm.device.VirtualDeviceSpec 類型的序列化 DataObject 時,VirtualDeviceConfigSpec 類型的數據對象缺少所需的屬性設備

能夠解決錯誤。

循環的最終版本是:

#Variable Declaration
$vcenter = Gc-UserInputFromList("vcenter instances go here")
$tenant = Get-UserInput "Enter the 4 digit tenant ID"
[int]$NumDisplays

#vSphere connection
$session = Connect-Viserver -Server $vcenter

#Change Monitor Count
$vms = get-vm -Location $tenant

#The script

Function setMonitorCount {

$vms = get-vm -Location $tenant

Foreach ($vm in $vms){
        if ($vm.PowerState -eq "PoweredOff") {
      $VideoAdapter = $vm.ExtensionData.Config.Hardware.Device | where {$_.GetType().Name -eq "VirtualMachineVideoCard"}
      $spec = New-Object VMware.Vim.VirtualMachineConfigSpec
      $Config = New-Object VMware.Vim.VirtualDeviceConfigSpec
      $Config.device = $VideoAdapter
      $Config.device.numDisplays = 3
      $Config.operation = "edit"
      $spec.deviceChange += $Config
      $VMView = $vm | Get-View
      $VMView.ReconfigVM($spec)
      Write-Output "Changing monitor count for $vm and powering back on."
      $poweredOn = Start-VM $vm
      }

   }

   }

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM