Saving bandwidth when upgrading multiple machines to Windows 10

Microsoft will stop offering the free upgrade to Windows 10 it is currently handing out to Windows 7, 8, and 8.1 users from July 29, 2016. If you want the free upgrade to Windows 10, you must do so now or forever your peace.

Microsoft has made it fairly easy for everyone (but watch out for the new privacy and automatic update settings and customize them) and it is a compact 3GB download. This happens through the Windows Update mechanism. But there are people around the world on metered connections who would exhaust their bandwidth trying to upgrade multiple machines. Those people can download and save a USB or ISO installer version using the Windows 10 Media Creation Tool and upgrade multiple PCs (eligible for the upgrade). Note that Widows 10 is set up by default to share downloaded updates with other computers, but apparently this does not work for the Windows 10 upgrade files as I did not notice any speed improvements even though there was a recently upgraded Windows 10 machine on the LAN with this sharing enabled.

If you are on a metered connection and already upgraded your machine but now want to upgrade other machines without downloading the files all over again, there are a couple of workarounds. Windows 10 upgrade files are located in the $WINDOWS.~BT folder on your system drive and may still be there. The installer downloads a “install.esd” file which can be converted to an ISO file by following tutorials like this on the web. The ISO can be written to a DVD or its contents copied via a USB drive to another computer to perform the upgrade.

I’m currently traveling and putting up with a metered connection. With the free upgrade deadline near, I realized I had a few laptops lying around which I did not upgrade yet. Instead of converting the ESD file to an ISO, I simply copied over the fullĀ $WINDOWS.~BT folder to another machine waiting for the upgrade using a USB drive. You may need to run Explorer as an administrator to successfully copy the files if copying from within Windows. I tried running the setup.exe file but it complained about missing files and failed. I then ran across this Reddit thread and decided to give it a try. Even though OP was trying to resume setup on the same machine the files were downloaded on, I decided to try it on the second machine and launched the Sources/setupprep.exe file, and lo!, the setup ran and completed successfully. Since my primary OS is Ubuntu which sits on a separate SSD with its own EFI bootloader, I was not worried if anything went wrong, but nothing did. If your folder is missing the Sources/install.esd file which means you cannot build but the ISO but rest of the install files are there, you can still try this method to do the upgrade on other machines. I hope this will help people with bandwidth quotas who did not begin with downloading the ISO file and need to upgrade more machines.

UTA VPN from Linux

UTA provides a VPN service for UTA students and faculty to facilitate work from off-campus. Cisco AnyConnect is used for the connection which has a Java installer and client interface, and installs platform specific binaries to your system. As usual, support for Linux breaks with time and is not fixed and the Cisco AnyConnect client for Linux cannot be installed on many machines. Time to look for an open alternative.

OpenConnect provides all the functionality of Cisco’s AnyConnect and works nicely on all platforms. OpenConnect can be used from the command line, or through the network-manager applet interface.

It can be installed on Ubuntu/Debian systems as:
sudo apt-get install openconnect
To use the network-manager applet, you should also install the network-manager-openconnect, network-manager-openconnect-gnome packages. This post only covers the command line method.

To connect to UTA’s VPN:
sudo openconnect vpn.uta.edu
and follow the prompts on the console.

  • UTA apparently has not updated its certificates in a while, so one has to accept unverified certificates twice by typing “yes”.
  • When prompted for GROUP, students should use the first one .Default--Students by typing it in exactly
  • Use your NetID and password as is. It is not required to prefix “uta\” to the username.

Once everything is done, you see the Connect Banner with UTA’s VPN policy and you are connected to the student VPN.

Pressing Ctrl-C in the console should gracefully shut down the VPN connection. If things are not right afterwards or you cannot reconnect, see below.

If you suspend your machine while it is connected to VPN, networking may not behave correctly on resume or you may not be able to re-establish the VPN connection. Killing the old VPN process by pressing Ctrl-C in the console, and then killing the openconnect daemon seems to fix things for me.

sudo pkill openconnect

If you know the Expect language, you can write a script to automate this and get you connected without responding to prompts. You can also use autoexpect to generate the Expect script.