Got a question today regarding file association types in Windows 8:
how can I set the default programs for all users. Most of out computers are non-touch and I want the desktop apps (e.g. Windows Photo Viewer), not the store apps to be the default for opening pictures, videos, etc.
Great question, this has been bugging me too! I do not like the default Photo Viewer in Windows 8. I like the preview mode from Windows 7.
So, I did some research by using “Set Default Programs” app in Windows 8. Then I ran the super ProcMon.exe tool from Sysinternals.com
After filtering out the junk, I could see some *interesting* writes to the registry:
But the “Hash” part had me concerned. I did some internet searching for the hash, and came across a post and a pointer to a blog with some answers. This is both good news and bad.
One of the problems with Windows XP is that any program can come in and party on the entire system. No, I don’t want you to put a shortcut on the desktop, install a crappy IE Toolbar, and change the default file association for *.jpg files to your app, I just wanted to play a stupid game. Since Windows 7, Microsoft has been attempting to block that functionality from the stupid applications, and give them back to the user. Take note of the last line in the ITaskbarList3 interface:
Applications cannot programmatically pin themselves to the taskbar. That functionality is reserved strictly for the user.
Of course that sucks for us IT Pros who may wish to create *default* working environments for corporate images, but there are some tricks we can do.
This blog appears to have the answer: http://blogs.technet.com/b/mrmlcgn/archive/2013/02/26/windows-8-associate-a-file-type-or-protocol-with-a-specific-app-using-a-gpo-e-g-default-mail-client-for-mailto-protocol.aspx
New for Windows 8 is a dism command: /Get-DefaultAppAssociations that allows you to export a control case from a known good computer. Microsoft the supports importing the exported xml file via GPO. For example, before I changed the file association, .AVI was pointing to the Modern App, after the change the /export-DefaultAppAssociations shows change to the new app:
<Association Identifier=".avi" ProgId="AppXhjhjmgrfm2d7rd026az898dy2p1pcsyt" ApplicationName="Video" />
<Association Identifier=".avi" ProgId="VLC.avi" ApplicationName="VLC media player" />
I am still doing some investigation to see if a GPO is required, or if you can inject the association into a local user account. Also, if you do have some Modern Windows 8 Touch Tablets, it would recommend keeping most of the Modern App defaults in place, perhaps separate GPO’s for Desktops/Laptops vs Tablets?