Windows 10, remote upgrade

A tale of a brave Windows 8.1 system upgraded solely using Remote Desktop (RDP) and TeamViewer.

Heard about Windows 10 yet? That new, shiny toy from Microsoft? No? What the hell?! How long did you live in that Un*x cave?

Sorry, I just had to, even though I like both Linux and Unix; some fans just can’t really get over their affection. :-)

Moving on.

And now the upgrade…

If you run one of the Windows 7 or 8.1, you have probably already received an update with “Get Windows 10” app. Since all other websites focus on the basic upgrade path, I decided to do something a bit crazy: upgrade my home Windows 8.1 to Windows 10 remotely.

The computer I was doing the upgrade on, is 300 km far away from my current location. Thus, if anything went wrong, I’d have to wait at least another week before I’d get physical access to the computer again.

And since I didn’t want to wait, I performed the upgrade using the Media Creation Tool.

General tips for doing the upgrade

  1. You’ll need at least 4 gigs of free space on the system drive, but reserve a few more.
  2. During upgrade, Windows won’t let you preserve your apps and settings if you download different language version of Windows 10. This means, if you initially installed Windows in the Czech language, you also have to get Czech Windows 10, otherwise you can’t preserve the installed apps.
  3. Sometimes, upgrade process does not recognize the language correctly and downloads the wrong language version, leaving you with no option to preserve apps. If that happens, run the Media Creation Tool and choose Create installation media for another PC. Select the correct language version, edition and architecture, choose to create ISO image, then wait until it is created. Afterwards, just mount it and run setup.exe.
  4. The upgrade process is one of the easiest I have ever seen. Seriously. Don’t worry about it too much. Plus, it is reversible.

Remote upgrade

And now the thing we’re all waiting for: remote upgrade. Frankly, the process is the same as locally, and it worked perfectly fine over RDP connection. Until reboot

When the upgrade is in progress, you can’t track the progress remotely, so I had to just sit tight. The process is fully automated, whether something goes wrong or not. Understandably, network connection is not active in the first phase, so ping won’t work either.

After several reboots, the computer starts responding to the network, and OOBE activates. Remote Desktop Service did not start automatically, though! Which was weird, because Cygwin SSHd daemon did start. That way I was able to connect to the computer and verify what was happening.

For a while, I did try starting Remote Desktop service. That obviously wasn’t enough, as I still couldn’t connect. Then, I was toying with TightVNC server in the command line, trying to start it up, and coming to the conclusion: this is not going to work; but then, after running netstat -n -b, I was presented with an unexpected sight:

Pavel@Pavel-8 ~/vncserver
$ netstat -n -b

Active Connections

  Proto  Local Address          Foreign Address        State
 Can not obtain ownership information
  TCP     censored      :5938    ESTABLISHED

Oh yeah. I haven’t noticed at all, but TeamViewer got launched in the background. As most of the services did.

If you allow TeamViewer to run as a service, and set up a password for logging in (and it’s all even easier if you have a TeamViewer account), then you have absolutely no problem connecting to your computer, no matter the circumstances. I almost forgot that German developers are too stubborn to just comply with the obvious Windows restrictions. So, after that I connected, rolled through the OOBE (custom settings, of course), and logged in easily. And right after that, I was able to reset the Remote Desktop service and login with the usual mstsc call.

TeamViewer connected to my home computer

Note that if I had TightVNC server installed and running as a service, I would, most likely, be able to connect as well, but that’s untested and on your own risk. :-)


  1. If you have some local services, they are likely to get started right after upgrade. For example, TeamViewer and Cygwin services did start. Remote Desktop is, however, not one of them.
  2. Never underestimate Germans.