Follow-up about Hyper-V VM integration services

Following my post about Hyper-V VM integration services, https://p0w3rsh3ll.wordpress.com/2012/11/12/keeping-hyper-v-vm-integration-services-up-to-date/, I’ve some additional tips to share:

  • A new version of the VM integration services has been released in November: 6.2.9200.16433
  • It was first spotted by Thomas Maurer on the following page http://www.thomasmaurer.ch/2012/11/first-patch-tuesday-with-windows-server-2012-hyper-v-patches-new-version-of-hyper-v-integration-servies/

    The new package is actually bundled in KB2770917

    I couldn’t find the package in the download center as mentioned on the KB2770917
    My WindowsUpdate.log indicates that it got it from this location

  • About identifying VM integration services version
  • You can actually get the VM integration services version only when the VM is running. So, we can just the following filter:

    Get-VM | ? State -eq "Running" |            
     Select Name,State,Integrationservicesversion |            
     ft -AutoSize

    Get VM integration services version

  • About upgrading the VM integration services
    • Load the ISO that contains the new version
    • # Load the ISO            
      Get-VM | ? State -eq "Running" |            
       ?  IntegrationServicesVersion -eq "6.2.9200.16384" |            
       Get-VMDvdDrive | Set-VMDvdDrive -Path C:\Windows\system32\vmguest.iso
    • Run the setup.exe
    • Get-VM | ? State -eq "Running" | ?  IntegrationServicesVersion -eq "6.2.9200.16384" |             
      ForEach-Object -Process {            
          Invoke-Command -ComputerName $_.VMName -ScriptBlock {            
              Get-WmiObject -Query 'Select * FROM win32_volume WHERE DriveType = 5' |            
              ForEach-Object -Process {            
                  if (Test-Path -Path "$($_.Caption)support\$env:PROCESSOR_ARCHITECTURE\setup.exe") {            
                      # 'Found'            
                      $ps = new-object System.Diagnostics.Process            
                      $ps.StartInfo.Filename = "$($_.Caption)support\$env:PROCESSOR_ARCHITECTURE\setup.exe"            
                      $ps.StartInfo.Arguments = " /quiet /norestart"            
                      $ps.StartInfo.RedirectStandardOutput = $True            
                      $ps.StartInfo.UseShellExecute = $false            
                      $ps.start()            
                      $ps.WaitForExit()            
                      'Exit code {0}' -f $ps.ExitCode            
                      Restart-Computer -Force            
                  } else {            
                      # 'Not Found'            
                  }            
              }            
          }            
      }

      Note that a reboot is required and is included in the above code.

  • About troubleshooting the VM integration services upgrade
    • using the log file
    • To troubleshoot the installation of VM integration services, you can read the C:\Windows\vmguestsetup.log located on the guest operating system.

    • using the event log
    • If the upgrade is successful, you’ll find the ‘Setup’ eventlog an entry about KB955484 (don’t be surprised but the page doesn’t exist anymore…)
      VM integration event

    • using the Deployment Image Servicing and Management tool
    • If I do:

      dism --% /online /get-packages

      We can see that:
      DISM

    Bonus: a wiki techNet article about ‘PowerShell – Running Executables’
    http://social.technet.microsoft.com/wiki/contents/articles/7703.powershell-running-executables.aspx

    Advertisements

2 thoughts on “Follow-up about Hyper-V VM integration services

  1. Pingback: Die Hyper-V Integration Services aktualisieren | Server Talk

  2. Pingback: Follow-up about Hyper-V VM integration services | The PowerShell of Windows

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s