I recently bought a Microsoft Surface and I have been wanting to watch a few programmes on BBC iPlayer whilst out of the country for Christmas. I discovered Tunlr – a free media proxy service which allows access to Hulu and iPlayer regardless of geolocation. However, editing DNS server settings by hand is time consuming and awkward without using the trackpad, so I wanted a script to automate the task. This will also work for other proxy services such as unblock-us.com – just replace the DNS IPs in the script. I had previously written a quick script for changing IP configuration which used netsh commands but these don’t work on Windows RT. Some other PowerShell methods I found weren’t supported either but I did find new network settings cmdlets for the purpose that were added in Windows 8/RT.
The next problem was elevation to get sufficient rights to change the network settings. It transpires that the PowerShell and VBScript environments are heavily restricted in Windows RT, which prevents auto-prompting for elevation. Fortunately Windows RT does allow Run as Administrator from the right-click menu for .cmd scripts. If you’re using touch control, you just touch and hold then release for the right-click. The script will remind you if you forget to do this. Hover your mouse over the top right corner of the script below, and use the View Source button to save the following to your desktop as Tunlr.cmd:
@echo off ::Use Tunlr to watch streaming TV services regardless of geolocation ::Tunlr DNS servers redirect requests for well-known services via Tunlr's proxy servers ::Tunlr should only be used while watching streams to reduce server load ::More details at http://tunlr.net/ ::Elevation cannot be automated on Windows RT since object creation is disabled for PowerShell and VBScript ::http://stackoverflow.com/questions/13504499/windows-rt-powershell-permissiondenied-on-new-object ipconfig /all | find "188.8.131.52" > nul && ( echo Disabling Tunlr... PowerShell -Command Set-DnsClientServerAddress -InterfaceAlias "WiFi" -ResetServerAddresses || ( echo Right-click and re-run this script as Administrator pause ) ) || ( echo Enabling Tunlr... PowerShell -Command Set-DnsClientServerAddress -InterfaceAlias "WiFi" -ServerAddresses 184.108.40.206,220.127.116.11 || ( echo Right-click and re-run this script as Administrator pause ) )