Upgrade Windows 7 to Windows 10 with Connectwise Automate Script

SankalpIT – Plugins for Automate

Grow your MSP business to next level with SankalpIT : learn more

Windows 10 Upgrade Script for ConnectWise Automate

Upgrade Windows 7 to Windows 10

 Upgrade Windows 7 to Windows 10


What are the prerequisites for this Script?

    1. ) Windows ISO File: Windows 10 1809/1903 setup file on LTShare. Get Windows 10 Pro x64 1903 Now!
    2. Windows 10 Ent. x64 v1903 ISO File: To get Windows 10 Ent. x64 v1903 ISO file. Click here..
    3. ) Place On LTShare: Place the file(s) to L:TransferWindows10
        • a) Windows_10_x64_Pro.iso – Use this naming convention for Windows 10 64bit (including ultimate, pro, enterprise).
        • b) Windows_10_x86_Pro.iso  – Use this naming convention for Windows 10 32bit (including ultimate, pro, enterprise).
        • c) Windows_10_x64_Home.iso  – Use this naming convention for Windows 10 64bit (including starter, home, and whole-home family).
        • d) Windows_10_x86_Home.iso  – Use this naming convention for Windows 10 32bit (including starter, home, and whole-home family).

      Note: If you want to change default naming convention, feel free to make changes in the script called “Function Script to Fulfill Initial Upgrade Requirements”->Global Parameters section.

    4. ) UpgradeKeyChecker Utility: Download “UpgradeKeyChecker.zip” and place in the same folder. It requires a script license to work. Instruction are given below.

Requirements on the target machine.

  1. 10 Gb free disk space on any drive to download the setup files and extract it.
  2. More than 5 GB disk space on the system drive.
  3. 2 GB RAM

How does the script work?

    1. Create a ticket to record the upgrade process. On upgrade success, the ticket will be closed with proper time entry. Else, it remains in the open state.
    2. Disk Space: the Script checks the all drives internal drives on target machine choose the one that has maximum free disk space to store the windows setup file (and other related files). The target machine must have at least 10GB free disk space on any drive and 5GB on the system drive.
    3. If Laptop: Laptop should be on charging mode if the script finds it on battery mode then exit with ticket comment.
    4. Windows 10 setup file. Script downloads setup to file %Drive%:WindowsSetupFolderWindows10.iso. location.
      – First, the script tries to copy the windows setup file from the Location Cache directory %cachedir%Windows_10_x64_Pro.iso to %Drive%:WindowsSetupFolderWindows10.iso.
      – If it couldn’t find the file in the cache directory, it tries to download the ISO from LTShare folder.
      – If it won’t find ISO file on LTShare then exit with a ticket notes.

Note: Please make sure you set up a network (cache) directory on the location if you want the script to copy the required *.iso file from a network drive. Please take look on how to setup Cache directory documentation given on Docs.Connectwise.com. https://docs.connectwise.com

    1. UpgradeKeyChecker utility: It downloads the UpgradeKeyChecker utility to the setup folder.
    2. Check User logged in: If a user logged into the system and working on the system, then script sends message to the user asking for permission to upgrade. If it doesn’t respond or says no to upgrade, then the script delays the upgrade and It runs after run after 9 hours. It asks the same question if the user logged in, but this time it is not rescheduled for next run. It simply exits with ticket notes.

Note: If you want to run the script on such machine where it had been rescheduled, but the upgrade didn’t take place then you need to uncheck the checkbox called “Asked user No. of Times” from Windows Upgrade tab of the Computer Management Screen.

  1. System Restore Point: It creates a system restore point on the machine.
  2. Export last logged in user reg file: The script exports last logged in users that it imports after the upgrade.
  3. Upgrade process: it runs the upgrade process using UpgradeKeyChecker utility that requires a license key to run, and you should be able to browse https://license.sankalpit.com/ on the target machine.
    Supported parameters:
    • Setup.exe path: %Drive%:\WindowsSetupFolder\setup\setup.exe.
    • Script License Key: We will send you an email having your Key. That you will need to provide in Function Script to upgrade Windows to Windows 10 script. Open this script -> Globals and Parameters tab. Then, select scriptkey variable and enter your license XXXXxxxxXXXXxxxxXXXX there and click Save button.
    • Windows License Key: You can assign Windows License key in the EDF called Windows License Key on the Computer Management screen to use in the script. Windows setup will upgrade Windows to the specific edition by checking the license key.

    With license key, you can upgrade Home Basic (or any other Home Family OS versions like Starters, Home Basic, Home Premium, etc.) 32bit machine to Pro, Enterprise or Ultimate 64bit Edition. It all depends what License key you’re using to upgrade.

  4. Import Last logged in User’s Reg file: After the upgrade, it imports the last logged user’s details to the registry. It helps users who don’t remember their user names.
  5. How much time it takes: it depends on the performance of the machine, but it usually takes 40 to 60 minutes.
  6. Ticketing: Script records everything (failure or success) in ConnectWise Automate ticket to check.


How does the profile migration work? How many profiles are migrated per computer?

– Windows setup handles it very smoothly. Users won’t see any difference then Windows 10 graphics and working environment. This upgrade is the same as you upgrade your windows 7 to windows 10 by the double-clicking Migration tool.

Are any backups performed?

– The script creates the system restore point. However, we recommend you to take a bare mental backup before running the upgrade. As you always have a backup if anything went wrong.

However, I have seen if anything went wrong with your machine upgrade process will be canceled and it restores to windows 7.

Is that easily adjustable to update to the next latest 10 when it comes out, and we are ready to deploy?

– Yes, It depends on what Windows 10 version you have placed on LTShare folder. I Upgrade Windows 7 to Windows 10 1703, Windows 10 1803 and Windows 10 1903. It the matter of setup file you give the script to run.

Is it possible to get it to do mostly in the background?

– It is a major upgrade as we know, we could not make it 100% silent upgrade, but yes, we were able to make the script to do 60% of its job in the background. Windows upgrade requires several reboots that’s why we couldn’t make it 100% silent.

Can supply license keys to upgrade to specific Windows 10 edition?

– Yes, you can migrate Windows 7 32bit machine to windows 10 64bit if you supply Windows license key. Windows upgrade checks the license key and runs the upgrade accordingly.

Can I upgrade Windows 7 unlicensed to Windows 10?

– Yes you can. We recommend supplying windows license key with the upgrade.

Does it support HostedRMM?

– No, It doesn’t support HostedRMM.

Does it upgrade Encrypted Machines?

– Attempts an upgrade without suspending BitLocker. If the upgrade fails, Windows Setup will suspend BitLocker and complete the upgrade.

If fails again, then it is recommended to remove the encryption and run the script again.

How do I troubleshoot the upgrade related issues by myself?

If the script doesn’t work for you, and you don’t know why!

Then, run the Command prompt as Admin and run the following command. The script runs the same command as the System user account.

  • Without Windows Key:“C:WindowsSetupFolderupgradeKeyChecker.exe” /setup “C:WindowsSetupFoldersetupsetup.exe” /scriptkey XxxxXXXXxxxxXX
  • Or with Windows Key:“C:WindowsSetupFolderupgradeKeyChecker.exe” /setup “C:WindowsSetupFoldersetupsetup.exe” /scriptkey XxxxXXXXxxxxXX /windowskey xxxxx-xxxxx-xxxxx-xxxxx-xxxxx

Please don’t say, WindowsSetupFolder directory exists in D:, E: or any other drive and what do I need to do 🙂

Why IIS wasn’t downloading the big files – the .iso files? what is the solution?

– The problem was the .iso file not being defined within the MIME Type in IIS.
– To resolve we have defined .iso as the MIME Type in IIS.

Need to follow the mentioned steps to set MIME Type for .iso files:

1. Open IIS Manager (Start >> Run >> type inetmgr hit enter).

2. Select the root node from the connections pane. Double-click MIME Types from features pane.

3. Click on Add link in the Actions pane. This will bring up the dialog box. Enter file extensions, specify corresponding MIME type and click on OK button.

File name extension: .iso

MIME Type: application/octet-stream

4. Restart your IIS Server from IIS Manager.

Term and Conditions: Click here