I have two audio devices and use a bat file with 'nircmd' to change what audio device (and monitor) to use as default. This so I can change from TV (AV Receiver over HDMI) to Monitor (Mainboard Audio device).
Example:
nircmdc.exe setdefaultsounddevice "DENON-AVRHD"
Until recently this worked fine but the last couple of weeks Windows keep changing the name of the device, required by nircmd, and I have to change it manually. For instance it changes to: DENON-AVRHD-4 DENON-AVRHD-8 DENON-AVRHD-C
Here's an image of my current devices:

"Speakers" are always the same but the Denon AVR keeps changing almost every boot. I am not sure what has caused this change, possibly drivers (NVIDIA HD Audio) or the recent Windows update.
Is there any way to stop this from happening?
wmic sounddev get name | findstr "DENON"to get the current name. Use the output from this in your batch file. – DavidPostill Feb 14 '16 at 20:18Get-AudioDeviceList– DavidPostill Feb 14 '16 at 20:59powershell Set-DefaultAudioDevice 2in the bat file. Also had a look at another alternative 'AudioSwitch' (https://github.com/sirWest/AudioSwitch) since it supports cmd switches. I contacted the author of Nircmd, possibly he can change it to use indexes instead of name strings. – Stian Lund Feb 14 '16 at 21:44