Monthly Archives: January 2014

BBCode Youtube Embed

More for me as an aid to memory.  A lot of forums use BBCode and the following will do a cut down version of the YouTube embed optimised for widescreen. You might want to adjust the height until the black bars appear or fade – up to you.

[video height=228type=youtube]tak2JxBsjLM?theme=dark&color=white&start=38.5&end=72.1&rel=0&modestbranding=1&showinfo=0&controls=0&version=3&fs=1[/video]


Function to Add a USB Device to ESX Host

PowerCLI has a function to remove a USB device from a host, Remove-UsbDevice. However, what if you need to add a usb device to a VM.  Well you can with a bit of PowerCLI magic.  This solution assumes the device you wish to add remains in the same USB port and that the VM will be on the same host as the USB device of interest.  If you wish you can hack around to insert the host ID and change from path: option to pid: and vid: options.  You can read more about the option at VMware pubs.

Below is a simple function for Add-UsbDevice. It takes a VM name (wildcard if you know it will be unique for ease) and then the path is normally in the form of BUS/0/DEVICE i.e. “2/0/5”.

1 # 2 # Simple to use once connected to the server of interest (not vCenter) 3 # Set-UsbDevice -Name "My VM Name" -UsbPath "2/0/5" 4 # 5 # Find out the UsbPath from lsusb - typically BUS/0/DEVICE - but not guaranteed! 6 # 7 8 Function Set-UsbDevice 9 { 10 11 # We need both parameters 12 [CmdletBinding()] 13 Param( 14 [Parameter(Mandatory=$True,Position=1)] 15 [string]$Name, 16 17 [Parameter(Mandatory=$True)] 18 [string]$UsbPath 19 ) 20 21 #Get our VM then then ID 22 $VM = Get-VM $Name 23 $Id = $VM.Id 24 25 #Create a new Virtual Machine Configuration Specification 26 $newSpec = New-Object VMware.Vim.VirtualMachineConfigSpec 27 $newSpec.deviceChange = New-Object VMware.Vim.VirtualDeviceConfigSpec[] (1) 28 $newSpec.deviceChange[0] = New-Object VMware.Vim.VirtualDeviceConfigSpec 29 $newSpec.deviceChange[0].operation = "add" 30 $newSpec.deviceChange[0].device = New-Object VMware.Vim.VirtualUSB 31 $newSpec.deviceChange[0].device.key = -100 32 $newSpec.deviceChange[0].device.backing = New-Object VMware.Vim.VirtualUSBUSBBackingInfo 33 $newSpec.deviceChange[0].device.backing.deviceName = "path:$UsbPath host:localhost" 34 $newSpec.deviceChange[0].device.connectable = New-Object VMware.Vim.VirtualDeviceConnectInfo 35 $newSpec.deviceChange[0].device.connectable.startConnected = $true 36 $newSpec.deviceChange[0].device.connectable.allowGuestControl = $false 37 $newSpec.deviceChange[0].device.connectable.connected = $true 38 $newSpec.deviceChange[0].device.connected = $false 39 40 $_this = Get-View -Id "$Id" 41 $_this.ReconfigVM_Task($newSpec) 42 43 }

If you want to find out the path on your host then using the shell you can use lsusb:

~ # lsusb
Bus 02 Device 06: ID 0424:4030 Standard Microsystems Corp.
Bus 02 Device 05: ID 03f0:1fe0 Hewlett-Packard
Bus 02 Device 04: ID 0fde:ca04
Bus 02 Device 03: ID 0424:2660 Standard Microsystems Corp.
Bus 02 Device 02: ID 8087:8000 Intel Corp.
Bus 02 Device 01: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 01 Device 04: ID 0a12:0001 Cambridge Silicon Radio
Bus 01 Device 03: ID 0403:6001 Future Technology Devices
Bus 01 Device 02: ID 8087:8008 Intel Corp.
Bus 01 Device 01: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 03 Device 01: ID 1d6b:0001 Linux Foundation 1.1 root hub

Use the command like this in PowerCLI once you have connected to the Host:

Set-UsbDevice -name "vSphere *" -UsbPath "2/0/5"

Any questions then please leave a comment.

Install windows Live Writer for Windows 8 and 8.1

Windows Live Writer is a great blogging App if you like to do things on the computer and out of the browser.  It is part of the Live Essentials Pack and works fine with Windows 8 or Windows 8.1.  For a list of all the language versions of Live Essentials go here:

You will need to have .NET 3.5 Framework installed – but it should prompt you if you haven’t