Windows 10 Pre-Upgrade Validation using SETUP.EXE

Published Jun 19 2019 05:53 AM 7,312 Views
Microsoft
First published on TechNet on Aug 23, 2015

For those looking planning to do in-place upgrades to migrate from Windows 7, Windows 8, or Windows 8.1 to Windows 10 using System Center Configuration Manager task sequences (described here ), you might be interested in doing a “trial run” with existing systems to identify machines that may have issues.  To support this, SETUP.EXE includes a command line switch that tells it to “check for compatibility” but not actually perform the upgrade.  The full command line would typically look something like this:


SETUP.EXE /Auto Upgrade /Quiet /NoReboot /DynamicUpdate Disable /Compat ScanOnly


It’s that last part, highlighted above, that does the trick.  (You may or may not want to specify /DynamicUpdate Disable.  Disabling it causes SETUP to not download the latest compatibility information from Windows Update, but it would be better if you could do this.  That gets more interesting in ConfigMgr, but that’s a longer discussion.)


When you run this ScanOnly execution, the results are returned via return codes from SETUP.EXE itself.  Here are the possible values:



  • No issues found:  0xC1900210

  • Compatibility issues found (hard block):  0xC1900208

  • Migration choice (auto upgrade) not available (probably the wrong SKU or architecture)· 0xC1900204

  • Does not meet system requirements for Windows 10: 0xC1900200

  • Insufficient free disk space: 0xC190020E


(You’ll see these return codes as large negative numbers, but they are much easier to look at in hex.)


So all you have to do is deploy a simple ConfigMgr package or task sequence to all your devices, with the full Windows 10 source media.  It’s probably not a good idea to use download and execute or download on demand with ConfigMgr in this case – make sure you run SETUP.EXE from the network.  It’s rather unproductive to download the INSTALL.WIM when you aren’t actually going to use it.  But it does have to be there, SETUP.EXE will complain if it isn’t.


Once you’ve run this, you can create a report that shows the devices with each of the statuses.  The first obviously requires no further action, and the last has an obvious course of action (try to free up some more space).  But for the others you’ll probably want to review the SETUPACT.LOG or SETUPERR.LOG generated by SETUP.EXE to see what the specific error was.

1 Comment
New Contributor

Hi Michael,

 

After running below command, I do not get any result, it just show white window Windows 10 setup with no result whatsoever on it.

 

SETUP.EXE /Auto Upgrade /NoReboot /DynamicUpdate Disable /Compat ScanOnly

 

How do I know why Windows 10 upgrade is stopping? As there is nothing in in CompactScan.xml except below :-

 

-<HardwareItem HardwareType="Generic">

<CompatibilityInfo BlockingType="Hard" Title="This PC can't be upgraded to Windows 10." Message="Your PC settings need to be adjusted before upgrading to the latest version of Windows 10."/>

<Link Value="Learn More" Target="https://go.microsoft.com/fwlink/?LinkId=2147561"/>

</HardwareItem>

</Hardware>

<SystemInfo OSMinorVersion="0" OSMajorVersion="10" UplevelEdition="Windows 10"/>

<Devices/>


-<DriverPackages>

<DriverPackage HasSignedBinaries="True" BlockMigration="False" Inf="oem24.inf"/>

<DriverPackage HasSignedBinaries="True" BlockMigration="False" Inf="oem35.inf"/>

<DriverPackage HasSignedBinaries="True" BlockMigration="False" Inf="oem13.inf"/>

<DriverPackage HasSignedBinaries="True" BlockMigration="False" Inf="oem15.inf"/>

<DriverPackage HasSignedBinaries="True" BlockMigration="False" Inf="oem18.inf"/>

<DriverPackage HasSignedBinaries="True" BlockMigration="False" Inf="oem5.inf"/>

<DriverPackage HasSignedBinaries="True" BlockMigration="False" Inf="oem14.inf"/>

<DriverPackage HasSignedBinaries="True" BlockMigration="False" Inf="oem27.inf"/>

<DriverPackage HasSignedBinaries="True" BlockMigration="False" Inf="oem26.inf"/>

<DriverPackage HasSignedBinaries="False" BlockMigration="True" Inf="oem1.inf"/>

<DriverPackage HasSignedBinaries="False" BlockMigration="True" Inf="oem0.inf"/>

<DriverPackage HasSignedBinaries="True" BlockMigration="False" Inf="oem9.inf"/>

</DriverPackages>

<Programs/>

</CompatReport>

%3CLINGO-SUB%20id%3D%22lingo-sub-706593%22%20slang%3D%22en-US%22%3EWindows%2010%20Pre-Upgrade%20Validation%20using%20SETUP.EXE%3C%2FLINGO-SUB%3E%3CLINGO-BODY%20id%3D%22lingo-body-706593%22%20slang%3D%22en-US%22%3E%0A%20%26lt%3Bmeta%20http-equiv%3D%22Content-Type%22%20content%3D%22text%2Fhtml%3B%20charset%3DUTF-8%22%20%2F%26gt%3B%3CSTRONG%3E%20First%20published%20on%20TechNet%20on%20Aug%2023%2C%202015%20%3C%2FSTRONG%3E%20%3CBR%20%2F%3E%3CP%3EFor%20those%20looking%20planning%20to%20do%20in-place%20upgrades%20to%20migrate%20from%20Windows%207%2C%20Windows%208%2C%20or%20Windows%208.1%20to%20Windows%2010%20using%20System%20Center%20Configuration%20Manager%20task%20sequences%20(described%20%3CA%20href%3D%22https%3A%2F%2Ftechcommunity.microsoft.com%2Fb%2Fconfigmgrteam%2Farchive%2F2015%2F06%2F16%2Frevised-content-for-the-win10-in-place-upgrade-via-task-sequence-for-configmgr.aspx%22%20target%3D%22_blank%22%3E%20here%20%3C%2FA%3E%20)%2C%20you%20might%20be%20interested%20in%20doing%20a%20%E2%80%9Ctrial%20run%E2%80%9D%20with%20existing%20systems%20to%20identify%20machines%20that%20may%20have%20issues.%26nbsp%3B%20To%20support%20this%2C%20SETUP.EXE%20includes%20a%20command%20line%20switch%20that%20tells%20it%20to%20%E2%80%9Ccheck%20for%20compatibility%E2%80%9D%20but%20not%20actually%20perform%20the%20upgrade.%26nbsp%3B%20The%20full%20command%20line%20would%20typically%20look%20something%20like%20this%3A%3C%2FP%3E%3CBR%20%2F%3E%3CP%3ESETUP.EXE%20%2FAuto%20Upgrade%20%2FQuiet%20%2FNoReboot%20%2FDynamicUpdate%20Disable%20%3CSPAN%20style%3D%22background-color%3A%23ffff00%3B%22%3E%20%2FCompat%20ScanOnly%3C%2FSPAN%3E%3C%2FP%3E%3CBR%20%2F%3E%3CP%3EIt%E2%80%99s%20that%20last%20part%2C%20highlighted%20above%2C%20that%20does%20the%20trick.%26nbsp%3B%20(You%20may%20or%20may%20not%20want%20to%20specify%20%2FDynamicUpdate%20Disable.%26nbsp%3B%20Disabling%20it%20causes%20SETUP%20to%20not%20download%20the%20latest%20compatibility%20information%20from%20Windows%20Update%2C%20but%20it%20would%20be%20better%20if%20you%20could%20do%20this.%26nbsp%3B%20That%20gets%20more%20interesting%20in%20ConfigMgr%2C%20but%20that%E2%80%99s%20a%20longer%20discussion.)%3C%2FP%3E%3CBR%20%2F%3E%3CP%3EWhen%20you%20run%20this%20ScanOnly%20execution%2C%20the%20results%20are%20returned%20via%20return%20codes%20from%20SETUP.EXE%20itself.%26nbsp%3B%20Here%20are%20the%20possible%20values%3A%3C%2FP%3E%3CBR%20%2F%3E%3CUL%3E%3CBR%20%2F%3E%3CLI%3ENo%20issues%20found%3A%26nbsp%3B%200xC1900210%3C%2FLI%3E%3CBR%20%2F%3E%3CLI%3ECompatibility%20issues%20found%20(hard%20block)%3A%26nbsp%3B%200xC1900208%3C%2FLI%3E%3CBR%20%2F%3E%3CLI%3EMigration%20choice%20(auto%20upgrade)%20not%20available%20(probably%20the%20wrong%20SKU%20or%20architecture)%C2%B7%200xC1900204%3C%2FLI%3E%3CBR%20%2F%3E%3CLI%3EDoes%20not%20meet%20system%20requirements%20for%20Windows%2010%3A%200xC1900200%3C%2FLI%3E%3CBR%20%2F%3E%3CLI%3EInsufficient%20free%20disk%20space%3A%200xC190020E%3C%2FLI%3E%3CBR%20%2F%3E%3C%2FUL%3E%3CBR%20%2F%3E%3CP%3E(You%E2%80%99ll%20see%20these%20return%20codes%20as%20large%20negative%20numbers%2C%20but%20they%20are%20much%20easier%20to%20look%20at%20in%20hex.)%3C%2FP%3E%3CBR%20%2F%3E%3CP%3ESo%20all%20you%20have%20to%20do%20is%20deploy%20a%20simple%20ConfigMgr%20package%20or%20task%20sequence%20to%20all%20your%20devices%2C%20with%20the%20full%20Windows%2010%20source%20media.%26nbsp%3B%20It%E2%80%99s%20probably%20not%20a%20good%20idea%20to%20use%20download%20and%20execute%20or%20download%20on%20demand%20with%20ConfigMgr%20in%20this%20case%20%E2%80%93%20make%20sure%20you%20run%20SETUP.EXE%20from%20the%20network.%26nbsp%3B%20It%E2%80%99s%20rather%20unproductive%20to%20download%20the%20INSTALL.WIM%20when%20you%20aren%E2%80%99t%20actually%20going%20to%20use%20it.%26nbsp%3B%20But%20it%20does%20have%20to%20be%20there%2C%20SETUP.EXE%20will%20complain%20if%20it%20isn%E2%80%99t.%3C%2FP%3E%3CBR%20%2F%3E%3CP%3EOnce%20you%E2%80%99ve%20run%20this%2C%20you%20can%20create%20a%20report%20that%20shows%20the%20devices%20with%20each%20of%20the%20statuses.%26nbsp%3B%20The%20first%20obviously%20requires%20no%20further%20action%2C%20and%20the%20last%20has%20an%20obvious%20course%20of%20action%20(try%20to%20free%20up%20some%20more%20space).%26nbsp%3B%20But%20for%20the%20others%20you%E2%80%99ll%20probably%20want%20to%20review%20the%20SETUPACT.LOG%20or%20SETUPERR.LOG%20generated%20by%20SETUP.EXE%20to%20see%20what%20the%20specific%20error%20was.%3C%2FP%3E%0A%20%0A%3C%2FLINGO-BODY%3E%3CLINGO-TEASER%20id%3D%22lingo-teaser-706593%22%20slang%3D%22en-US%22%3EFirst%20published%20on%20TechNet%20on%20Aug%2023%2C%202015%20For%20those%20looking%20planning%20to%20do%20in-place%20upgrades%20to%20migrate%20from%20Windows%207%2C%20Windows%208%2C%20or%20Windows%208.%3C%2FLINGO-TEASER%3E%3CLINGO-LABS%20id%3D%22lingo-labs-706593%22%20slang%3D%22en-US%22%3E%3CLINGO-LABEL%3Emichael%20niehaus%3C%2FLINGO-LABEL%3E%3CLINGO-LABEL%3Ewindows%2010%3C%2FLINGO-LABEL%3E%3C%2FLINGO-LABS%3E%3CP%3E%3C%2FP%3E%3CP%3E%3C%2FP%3E%3CP%3E%3CSYSTEMINFO%20osminorversion%3D%22%26quot%3B0%26quot%3B%22%20osmajorversion%3D%22%26quot%3B10%26quot%3B%22%20upleveledition%3D%22%26quot%3BWindows%22%2010%3D%22%22%3E%3C%2FSYSTEMINFO%3E%3C%2FP%3E%3CP%3E%3CDEVICES%3E%3C%2FDEVICES%3E%3C%2FP%3E%3CP%3E%3CBR%20%2F%3E-%3CDRIVERPACKAGES%3E%3C%2FDRIVERPACKAGES%3E%3C%2FP%3E%3CP%3E%3CDRIVERPACKAGE%20hassignedbinaries%3D%22%26quot%3BTrue%26quot%3B%22%20blockmigration%3D%22%26quot%3BFalse%26quot%3B%22%20inf%3D%22%26quot%3Boem24.inf%26quot%3B%2F%22%3E%3C%2FDRIVERPACKAGE%3E%3C%2FP%3E%3CP%3E%3CDRIVERPACKAGE%20hassignedbinaries%3D%22%26quot%3BTrue%26quot%3B%22%20blockmigration%3D%22%26quot%3BFalse%26quot%3B%22%20inf%3D%22%26quot%3Boem35.inf%26quot%3B%2F%22%3E%3C%2FDRIVERPACKAGE%3E%3C%2FP%3E%3CP%3E%3CDRIVERPACKAGE%20hassignedbinaries%3D%22%26quot%3BTrue%26quot%3B%22%20blockmigration%3D%22%26quot%3BFalse%26quot%3B%22%20inf%3D%22%26quot%3Boem13.inf%26quot%3B%2F%22%3E%3C%2FDRIVERPACKAGE%3E%3C%2FP%3E%3CP%3E%3CDRIVERPACKAGE%20hassignedbinaries%3D%22%26quot%3BTrue%26quot%3B%22%20blockmigration%3D%22%26quot%3BFalse%26quot%3B%22%20inf%3D%22%26quot%3Boem15.inf%26quot%3B%2F%22%3E%3C%2FDRIVERPACKAGE%3E%3C%2FP%3E%3CP%3E%3CDRIVERPACKAGE%20hassignedbinaries%3D%22%26quot%3BTrue%26quot%3B%22%20blockmigration%3D%22%26quot%3BFalse%26quot%3B%22%20inf%3D%22%26quot%3Boem18.inf%26quot%3B%2F%22%3E%3C%2FDRIVERPACKAGE%3E%3C%2FP%3E%3CP%3E%3CDRIVERPACKAGE%20hassignedbinaries%3D%22%26quot%3BTrue%26quot%3B%22%20blockmigration%3D%22%26quot%3BFalse%26quot%3B%22%20inf%3D%22%26quot%3Boem5.inf%26quot%3B%2F%22%3E%3C%2FDRIVERPACKAGE%3E%3C%2FP%3E%3CP%3E%3CDRIVERPACKAGE%20hassignedbinaries%3D%22%26quot%3BTrue%26quot%3B%22%20blockmigration%3D%22%26quot%3BFalse%26quot%3B%22%20inf%3D%22%26quot%3Boem14.inf%26quot%3B%2F%22%3E%3C%2FDRIVERPACKAGE%3E%3C%2FP%3E%3CP%3E%3CDRIVERPACKAGE%20hassignedbinaries%3D%22%26quot%3BTrue%26quot%3B%22%20blockmigration%3D%22%26quot%3BFalse%26quot%3B%22%20inf%3D%22%26quot%3Boem27.inf%26quot%3B%2F%22%3E%3C%2FDRIVERPACKAGE%3E%3C%2FP%3E%3CP%3E%3CDRIVERPACKAGE%20hassignedbinaries%3D%22%26quot%3BTrue%26quot%3B%22%20blockmigration%3D%22%26quot%3BFalse%26quot%3B%22%20inf%3D%22%26quot%3Boem26.inf%26quot%3B%2F%22%3E%3C%2FDRIVERPACKAGE%3E%3C%2FP%3E%3CP%3E%3CDRIVERPACKAGE%20hassignedbinaries%3D%22%26quot%3BFalse%26quot%3B%22%20blockmigration%3D%22%26quot%3BTrue%26quot%3B%22%20inf%3D%22%26quot%3Boem1.inf%26quot%3B%2F%22%3E%3C%2FDRIVERPACKAGE%3E%3C%2FP%3E%3CP%3E%3CDRIVERPACKAGE%20hassignedbinaries%3D%22%26quot%3BFalse%26quot%3B%22%20blockmigration%3D%22%26quot%3BTrue%26quot%3B%22%20inf%3D%22%26quot%3Boem0.inf%26quot%3B%2F%22%3E%3C%2FDRIVERPACKAGE%3E%3C%2FP%3E%3CP%3E%3CDRIVERPACKAGE%20hassignedbinaries%3D%22%26quot%3BTrue%26quot%3B%22%20blockmigration%3D%22%26quot%3BFalse%26quot%3B%22%20inf%3D%22%26quot%3Boem9.inf%26quot%3B%2F%22%3E%3C%2FDRIVERPACKAGE%3E%3C%2FP%3E%3CP%3E%3C%2FP%3E%3CP%3E%3CPROGRAMS%3E%3C%2FPROGRAMS%3E%3C%2FP%3E%3CP%3E%3C%2FP%3E%3CLINGO-SUB%20id%3D%22lingo-sub-2604816%22%20slang%3D%22en-US%22%3ERe%3A%20Windows%2010%20Pre-Upgrade%20Validation%20using%20SETUP.EXE%3C%2FLINGO-SUB%3E%3CLINGO-BODY%20id%3D%22lingo-body-2604816%22%20slang%3D%22en-US%22%3E%3CP%3EHi%20Michael%2C%3C%2FP%3E%3CP%3E%26nbsp%3B%3C%2FP%3E%3CP%3EAfter%20running%20below%20command%2C%20I%20do%20not%20get%20any%20result%2C%20it%20just%20show%20white%20window%20Windows%2010%20setup%20with%20no%20result%20whatsoever%20on%20it.%3C%2FP%3E%3CP%3E%26nbsp%3B%3C%2FP%3E%3CP%3ESETUP.EXE%20%2FAuto%20Upgrade%20%2FNoReboot%20%2FDynamicUpdate%20Disable%20%2FCompat%20ScanOnly%3C%2FP%3E%3CP%3E%26nbsp%3B%3C%2FP%3E%3CP%3EHow%20do%20I%20know%20why%20Windows%2010%20upgrade%20is%20stopping%3F%20As%20there%20is%20nothing%20in%20in%20CompactScan.xml%20except%20below%20%3A-%3C%2FP%3E%3CP%3E%26nbsp%3B%3C%2FP%3E%3CP%3E-%3CHARDWAREITEM%20hardwaretype%3D%22%26quot%3BGeneric%26quot%3B%22%3E%3C%2FHARDWAREITEM%3E%3C%2FP%3E%3CP%3E%3CCOMPATIBILITYINFO%20blockingtype%3D%22%26quot%3BHard%26quot%3B%22%20title%3D%22%26quot%3BThis%22%20pc%3D%22%22%20can%3D%22%22%3E%3C%2FCOMPATIBILITYINFO%3E%3C%2FP%3E%3CP%3E%3CLINK%20value%3D%22%26quot%3BLearn%22%20more%3D%22%22%20%2F%3E%3CA%20href%3D%22https%3A%2F%2Fgo.microsoft.com%2Ffwlink%2F%3FLinkId%3D2147561%22%20target%3D%22_blank%22%20rel%3D%22noopener%20noreferrer%22%3Ehttps%3A%2F%2Fgo.microsoft.com%2Ffwlink%2F%3FLinkId%3D2147561%3C%2FA%3E%22%2F%26gt%3B%3C%2FP%3E%3CP%3E%3C%2FP%3E%3C%2FLINGO-BODY%3E%3CP%3E%3C%2FP%3E%3CP%3E%3C%2FP%3E%3CP%3E%3CSYSTEMINFO%20osminorversion%3D%22%26quot%3B0%26quot%3B%22%20osmajorversion%3D%22%26quot%3B10%26quot%3B%22%20upleveledition%3D%22%26quot%3BWindows%22%2010%3D%22%22%3E%3C%2FSYSTEMINFO%3E%3C%2FP%3E%3CP%3E%3CDEVICES%3E%3C%2FDEVICES%3E%3C%2FP%3E%3CP%3E%3CBR%20%2F%3E-%3CDRIVERPACKAGES%3E%3C%2FDRIVERPACKAGES%3E%3C%2FP%3E%3CP%3E%3CDRIVERPACKAGE%20hassignedbinaries%3D%22%26quot%3BTrue%26quot%3B%22%20blockmigration%3D%22%26quot%3BFalse%26quot%3B%22%20inf%3D%22%26quot%3Boem24.inf%26quot%3B%2F%22%3E%3C%2FDRIVERPACKAGE%3E%3C%2FP%3E%3CP%3E%3CDRIVERPACKAGE%20hassignedbinaries%3D%22%26quot%3BTrue%26quot%3B%22%20blockmigration%3D%22%26quot%3BFalse%26quot%3B%22%20inf%3D%22%26quot%3Boem35.inf%26quot%3B%2F%22%3E%3C%2FDRIVERPACKAGE%3E%3C%2FP%3E%3CP%3E%3CDRIVERPACKAGE%20hassignedbinaries%3D%22%26quot%3BTrue%26quot%3B%22%20blockmigration%3D%22%26quot%3BFalse%26quot%3B%22%20inf%3D%22%26quot%3Boem13.inf%26quot%3B%2F%22%3E%3C%2FDRIVERPACKAGE%3E%3C%2FP%3E%3CP%3E%3CDRIVERPACKAGE%20hassignedbinaries%3D%22%26quot%3BTrue%26quot%3B%22%20blockmigration%3D%22%26quot%3BFalse%26quot%3B%22%20inf%3D%22%26quot%3Boem15.inf%26quot%3B%2F%22%3E%3C%2FDRIVERPACKAGE%3E%3C%2FP%3E%3CP%3E%3CDRIVERPACKAGE%20hassignedbinaries%3D%22%26quot%3BTrue%26quot%3B%22%20blockmigration%3D%22%26quot%3BFalse%26quot%3B%22%20inf%3D%22%26quot%3Boem18.inf%26quot%3B%2F%22%3E%3C%2FDRIVERPACKAGE%3E%3C%2FP%3E%3CP%3E%3CDRIVERPACKAGE%20hassignedbinaries%3D%22%26quot%3BTrue%26quot%3B%22%20blockmigration%3D%22%26quot%3BFalse%26quot%3B%22%20inf%3D%22%26quot%3Boem5.inf%26quot%3B%2F%22%3E%3C%2FDRIVERPACKAGE%3E%3C%2FP%3E%3CP%3E%3CDRIVERPACKAGE%20hassignedbinaries%3D%22%26quot%3BTrue%26quot%3B%22%20blockmigration%3D%22%26quot%3BFalse%26quot%3B%22%20inf%3D%22%26quot%3Boem14.inf%26quot%3B%2F%22%3E%3C%2FDRIVERPACKAGE%3E%3C%2FP%3E%3CP%3E%3CDRIVERPACKAGE%20hassignedbinaries%3D%22%26quot%3BTrue%26quot%3B%22%20blockmigration%3D%22%26quot%3BFalse%26quot%3B%22%20inf%3D%22%26quot%3Boem27.inf%26quot%3B%2F%22%3E%3C%2FDRIVERPACKAGE%3E%3C%2FP%3E%3CP%3E%3CDRIVERPACKAGE%20hassignedbinaries%3D%22%26quot%3BTrue%26quot%3B%22%20blockmigration%3D%22%26quot%3BFalse%26quot%3B%22%20inf%3D%22%26quot%3Boem26.inf%26quot%3B%2F%22%3E%3C%2FDRIVERPACKAGE%3E%3C%2FP%3E%3CP%3E%3CDRIVERPACKAGE%20hassignedbinaries%3D%22%26quot%3BFalse%26quot%3B%22%20blockmigration%3D%22%26quot%3BTrue%26quot%3B%22%20inf%3D%22%26quot%3Boem1.inf%26quot%3B%2F%22%3E%3C%2FDRIVERPACKAGE%3E%3C%2FP%3E%3CP%3E%3CDRIVERPACKAGE%20hassignedbinaries%3D%22%26quot%3BFalse%26quot%3B%22%20blockmigration%3D%22%26quot%3BTrue%26quot%3B%22%20inf%3D%22%26quot%3Boem0.inf%26quot%3B%2F%22%3E%3C%2FDRIVERPACKAGE%3E%3C%2FP%3E%3CP%3E%3CDRIVERPACKAGE%20hassignedbinaries%3D%22%26quot%3BTrue%26quot%3B%22%20blockmigration%3D%22%26quot%3BFalse%26quot%3B%22%20inf%3D%22%26quot%3Boem9.inf%26quot%3B%2F%22%3E%3C%2FDRIVERPACKAGE%3E%3C%2FP%3E%3CP%3E%3C%2FP%3E%3CP%3E%3CPROGRAMS%3E%3C%2FPROGRAMS%3E%3C%2FP%3E%3CP%3E%3C%2FP%3E
Version history
Last update:
‎Jun 19 2019 05:53 AM
Updated by: