Script to attach a USB device to a virtual machine [VPC]

A couple of people have asked me how to automate attaching a USB device to a Windows Virtual PC virtual machine, so here is a PowerShell script to do just that:

 # Connect to Virtual PC
 $vpc = new-object -com VirtualPC.Application
  
 # Get VM name
 $vmName = Read-host "Specify the name of the virtual machine that you want to use"
  
 # List available USB devices
 write-host "The following USB devices are available:"
 $vpc.USBDeviceCollection | select -ExpandProperty DeviceString
  
 # Get the USB device name
 $usb = Read-host "Enter the name of the USB device that you want to connect to the virtual machine"
  
 # Get the VM object
 $vm = $vpc.findVirtualMachine($vmName)
  
 # Get the USB object
 $usbDevice = $vpc.USBDeviceCollection | ? {$_.DeviceString -eq $usb} | select -first 1
  
 # Attach the device - this will fail if the VM is not running
 $vm.AttachUSBDevice($usbDevice)

Note that I am using the “DeviceString” of the USB device – which is not guaranteed to be unique.  So what I do is just grab the first one that matches.

Cheers,
Ben

AttachUSBDevice.zip