This one is absurdly simple but pretty useful nevertheless.
At work, we have been getting a lot of calls recently where the teacher has complained that their interactive whiteboards aren’t working properly and all that they can see on the projected surface is their wallpaper. I’m sure that anyone who has experience with this things will immediately see that of course, their whiteboards are fine and that the PCs are set to extend the desktop onto a secondary display rather than clone it.
There are some big advantages to extending the desktop and I think that there are a few more IT literate teachers who have figured this out and decided to extend their desktop. However, what they’re also doing is forgetting to set it back when they’re finished and therefore upsetting the next teacher who goes to use the room. This of course generates a call to us and wastes everybody’s time.
I wanted to see if there was a way to control extending or cloning displays using a script or a PowerShell command. I googled for a while and found a few third party programs which claimed they could do it but I found that they didn’t work that well. I eventually came across this page which informed me about a program built into Windows versions from Windows called displayswitch.exe. It even has some command line switches!
displayswitch.exe /clone displayswitch.exe /extend displayswitch.exe /internal displayswitch.exe /external
Those are pretty self explanatory I think! I then created a couple of GPOs with WMI filters which detect interactive whiteboards. Inside those GPOs are startup and logout scripts with the following command:
So each time a PC with an interactive whiteboard attached to it is started or logged out, it puts itself back into clone mode. Easy!