Guest User

Untitled

a guest
Mar 17th, 2018
87
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.41 KB | None | 0 0
  1. #Requires -Version 3.0
  2.  
  3. function Set-VMToolsUpgradePolicy {
  4.  
  5. <#
  6. .SYNOPSIS
  7. Updates the Tools Upgrade Policy on VMware VM.
  8.  
  9. .DESCRIPTION
  10. This function uses get-view to get a managed object reference to a VM, and updates its 'ToolsUpgradePolicy'
  11.  
  12. .PARAMETER VM
  13. One or more valid vSphere VM objects.
  14.  
  15. .PARAMETER Setting
  16. This parameter can be either "manual", "upgradeAtPowerCycle"
  17.  
  18. .EXAMPLE
  19. get-vm | where name -like "myvm" | Set-VMToolsUpgradePolicy -Setting manual -verbose
  20.  
  21. .NOTES
  22. Author: Jim Birley
  23. #>
  24.  
  25. [CmdletBinding()]
  26. [OutputType('PSCustomObject')]
  27. param (
  28. [Parameter(Mandatory,
  29. ValueFromPipeline)]
  30. [PSCustomObject[]]$VM,
  31. [Parameter(Mandatory)]
  32. [ValidateSet("manual", "upgradeAtPowerCycle")]
  33. [string]$Setting
  34. )
  35.  
  36. BEGIN { }
  37.  
  38. PROCESS {
  39. foreach ($MyVM in $VM) {
  40. Write-Verbose "Setting Tools Upgrade Policy on $($MyVM.Name) to $Setting"
  41. $MoRef = $MyVM | Get-View -verbose:$false
  42. $vmConfigSpec = New-Object VMware.Vim.VirtualMachineConfigSpec
  43. $vmConfigSpec.Tools = New-Object VMware.Vim.ToolsConfigInfo
  44. $vmConfigSpec.Tools.ToolsUpgradePolicy = $Setting
  45. $MoRef.ReconfigVM($vmConfigSpec)
  46. $MyVM | Select-Object Name, @{N='ToolsUpgradePolicy';E={($_ | get-view -Verbose:$false).Config.Tools.ToolsUpgradePolicy}}
  47. }
  48. }
  49.  
  50. END { }
  51. }
Add Comment
Please, Sign In to add comment