I’ve been planning to do this for a while but time or to a lesser extent motivational constraints prevented me from doing so.
To be honest, installing Windows 10 (or many previous versions of Windows) over the Internet is something I couldn’t understand not being made available by Microsoft. To me, it is something I don’t consider something revolutionary. After all, installing an Operating System over the Internet is something that is available to Linux for quite some time.
Nowadays, more and more organizations are cleaning up their on-premises infrastructures and move them to the cloud. While this is great, it may provide some challenges for deploying clients when no local infrastructure is available anymore to facilitate this. Many organizations would also like to use their own reference images.
A certain technology caught my attention that would make this possible for now: Azure File shares.
Azure File shares allows organizations to deploy Windows 10 using a network installation. The only difference is that the network share is at an Azure location of your choice.
To keep this simple, I created an Azure File share using the following instructions:
- Create a storage account that contains the file share: https://docs.microsoft.com/en-us/azure/storage/common/storage-create-storage-account
- Create an Azure File share: https://docs.microsoft.com/en-us/azure/storage/files/storage-how-to-create-file-share
To make this work, communication over port 445 needs to be allowed. This may be an issue by some ISPs which would completely defeat this approach.
Once the Azure File share is created and acces is available, all that needs to be done is to copy either the Windows 10 installation files or reference images created by yourself. I chose to place the Windows 10 installation files on the share.
Next step is creating a WinPE boot CD using the instructions available at https://docs.microsoft.com/en-us/windows-hardware/manufacture/desktop/winpe-create-a-boot-cd-dvd-iso-or-vhd
After creating the ISO file, I simply created a bootable USB drive and copied the files on that USB drive. I also added a simple .cmd file that mounts mounts the network share to avoid typing errors using the instructions at https://docs.microsoft.com/en-us/azure/storage/files/storage-how-to-use-files-windows
To start the installtion, I took the following steps:
- Boot from the USB drive
- Verify the network drivers are loaded and an IP-address has been assigned to the NIC
- Mount the Azure File Share
- Browse to the installation files
- Start setup.exe
After providing the required information for Windows setup, the installation was running. I tested this scenario at home. I am quite fortunate to have a decent Internet connection (300 Mbit/sec up/down FTTH). I wouldn’t really recommend this if network bandwith may be limited unless you have a lot of time on your hands. Nevertheless, using your own reference images and deploying machines when employees are sleeping may also work but that’s up to you
For the sake of this blog, I couldn’t be bothered to automate my deployment.
What would be really interesting is to see if I can place an MDT Deployment share on an Azure File share to deploy Windows over the Internet. I also would be very interested if Microsoft allows Windows 10 deployments using the http(s) protocol and not bother about shares at all. Ultimately, I’d like to run Windows setup using http(s) directly from Microsoft and having Microsoft maintain the setup with updates.
Seriously, how cool would that be?