Windows 10 Compatibility Check using SCCM and Report

Benoit LecoursREPORT, Reports, SCCM, SSRS17 Comments

When planning for a Windows 10 migration, understanding your environment is the key. Luckily, Windows 10 setup comes with command line options which one of them is an excellent compatibility check (/Compat ScanOnly). This command can be used on a Windows 7,8 or 10 devices before a migration in order to see if those devices are Windows 10 compatible. Using SCCM, we will run this Windows 10 compatibility check, return the results in the SCCM database and use this data to build a comprehensive report. This report can be used to detect and fix migration errors before the actual Windows 10 deployment.

SCCM Windows 10 Compatibility Check Package Creation

We will start by creating a package for Windows 10 compatibility check. The source of this package must be the Windows 10 installation media. The deployment option and command line is important here. If they are not set correctly you’ll end up sending the complete installation media (including Install.wim) to the computers only for a compatibility check which is not really effective. Using our proposed methods, you’ll be using about 250mb on the client drive instead of 5gb.

  • In the SCCM Console, go to Software Library / Application Management / Packages
  • Create a new package

SCCM Windows 10 Compatibility Check

  • Name your package and specify your Windows 10 installation media as the source file. Be aware that setup.exe is language specific. If you have EN-US machine, you must provide EN-US media

SCCM Windows 10 Compatibility Check

  • Create a Standard Program

SCCM Windows 10 Compatibility Check

  • Command Line : SETUP.EXE /Auto Upgrade /Quiet /NoReboot /DynamicUpdate Enable /Compat ScanOnly
    • /DynamicUpdate: Enabling it causes setup to download the latest compatibility information from Windows Update
    • /CopyLogs parameter can also be added at the end. Use it to copy setup logs to a shared network drive. The problem with that switch is that the logs are not classified using computer names, it will be a nightmare finding the right logs after hundreds of deployments. This is why I’m not using it for this blog post.

SCCM Windows 10 Compatibility Check

  • In the Requirements page, select your operating systems

SCCM Windows 10 Compatibility Check

  • Complete the wizard

SCCM Windows 10 Compatibility Check

  • Right-click your package and distribute it to your distribution points

SCCM Windows 10 Compatibility Check

Deploy Windows 10 compatibility check on a test computer

We will now deploy the Windows 10 compatibility check program on a computer that runs Windows 10 1607. In our test, we want to evaluate if this computer can upgrades from Windows 10 1607 to 1709. Create a test collection and deploy the newly created program to a test device.

  • Right-Click your package and select Deploy
  • On the General tab, select your collection

SCCM Windows 10 Compatibility Check

  • On the Content tab, ensure that your content is distributed to your distribution point

SCCM Windows 10 Compatibility Check

  • Select your deployment purpose – Available or Required

SCCM Windows 10 Compatibility Check

  • On the Scheduling pane, select your schedule

SCCM Windows 10 Compatibility Check

  • On the User Experience pane, select the desired options

SCCM Windows 10 Compatibility Check

  • On the Distribution Points pane, select Run program from distribution point

SCCM Windows 10 Compatibility Check

  • Review your choice and complete the wizard

SCCM Windows 10 Compatibility Check

Running the Compatibility Check

On a targeted computer, run the program manually in the Software Center (Available) or wait for the schedule to trigger your deployment (Required).

The installation will starts. It will take about 5 minutes to complete… and it will fail. This is normal as the error code returned by the compatibility check will always be an error. (No problem will be 0xC1900210 -1047526896).

SCCM Windows 10 Compatibility Check

If you need more information about the error, look at Setupacr.log or Setuperr.log generated by Setup.exe. They are located in C:\$WINDOWS.~BT\Sources\Panther folder. (Or in the specified path if you use the /CopyLogs parameter in your command line. We cover the topic on how to troubleshoot Windows 10 error in this blog post

Once we tested on a couple of test machine and are happy with results, we can expand our deployment to all computers.

From there, what’s the easy way to check your compatibility results? You could go in the Monitoring / Deployment section in the console… or you build a custom report.

Windows 10 Compatibility Check Report

Luckily for you, we created a report which will give you a quick overview of your compatibility success or failure. We also included basic hardware inventory information for you to refer if a computer is not compliant because of hardware limitation. The only thing you need to do is to select your Compatibility package and run the report !

SCCM Windows 10 Compatibility Check

You can download this free report by visiting our product page. The Asset – Compatibility Check report is available in the Report / Asset Section.

Good to know : How to import an RDL file

Let us know what you think of it.

Share this Post

Founder of System Center Dudes. Based in Montreal, Canada, Senior Microsoft SCCM Consultant, 5 times Enterprise Mobility MVP. Working in the industry since 1999. His specialization is designing, deploying and configuring SCCM, mass deployment of Windows operating systems, Office 365 and Intunes deployments.

17 Comments on “Windows 10 Compatibility Check using SCCM and Report”

  1. Hello,

    I’m on SCCM 1806 and the property “StatusDescription” from the v_ClassicDeploymentAssetDetails doesn’t return the exit code of the task sequence but a string description like “The task sequence manager successfully completed execution of the task sequence”.
    Do you have same issue ?
    Thank you
    Vincent

  2. Hello,
    I found a fix for the issue
    “An error has occurred during report processing. (rsProcessingAborted)
    Query execution failed for dataset ‘PackageName’. (rsErrorExecutingCommand)
    For more information about this error navigate to the report server on the local server machine, or enable remote errors”
    Open the report in SSRS, Click on the arrow next to the report and click on “Manage” on the “Data Sources” tick “A Custom data source” and use “Microsoft SQL Server” in the connection string type:
    “Data Source=server.domain.com;Initial Catalog=CM_123”

    Just change the server.domain.com to your SQL server and the Catalog is your own.
    That worked for me…

  3. Hi,

    I imported this report and changed the dataset, but get the following when trying to run the report. Am I missing something?

    An error has occurred during report processing. (rsProcessingAborted)
    Query execution failed for dataset ‘PackageName’. (rsErrorExecutingCommand)
    For more information about this error navigate to the report server on the local server machine, or enable remote errors

  4. SystemCenterDudes,

    After some troubleshooting I found that the SCCM Reporting Services point account has SMSSCH_Users role on the SQL Database. This role has permissions to execute functions and use a “selection” of the views that are in the Configmgr Database.
    The view that is used in this report “vSMS_ClassicDeploymentAssetDetails” is not in that selection, so by default the reporting user cannot read this view.
    Is it a good practice to give this account read access to the complete database (all views and tables)?

    There is probably a good reason why Microsoft is limiting the read access to views? Maybe because these views can be changed or be deleted after a version upgrade?

    1. This would indeed be interesting to know as the Report, as it is now, is useless since it cannot be run (running on CM 1806, SQL 2016 SP1).

    2. But the question that remains… what do we need to change to get this report working again without giving out too much permissions or does anyone have an alternative report to get the information we need?

  5. We also have this error: The SELECT permission was denied on ‘vSMS_ClassicDeploymentAssetDetails
    It seems that the reporting services point account hasn’t got sufficient rights to read this table/view…
    What rights should the RSP account have on the SCCM database?

  6. We also have this error: The SELECT permission was denied on the object ‘vSMS_ClassicDeploymentAssetDetails
    It seems that the reporting services point account hasn’t got sufficient rights to read this table/view…
    What rights should the RSP account have on the SCCM database?

  7. Hello Team,

    I’ve created the package added the report but I getting the following error when I try to run it the report:

    The SELECT permission was denied on the object ‘vSMS_ClassicDeploymentAssetDetails’, database ‘CM_XXX’, schema ‘dbo’

    Does anyone know how to resolve this?

  8. Great Article,

    I just downloaded it and installed it…..created the package and all and ran it on 1 machine.
    I got the above mentioned error so looks good.

    When i try to run the report i get the message :

    The report server cannot process the report or shared dataset. The shared data source ‘CM_SCD’ for the report server or SharePoint site is not valid. Browse to the server or site and select a shared data source.

    Where do i change the data source to our CM server?

    1. Adam sure I dont mind. I didnt bother parsing the XMLs related to space, or sku etc as they are sort of self explanatory. but I did parse the xml that kicks out the list of incompatible hardware.. ill send you an email with a primer…

      My PS skills are sort of limited so forgive me if I take a somewhat simplistic approach.

  9. We run a script that parses those XMLs and populates the smsts.log with more explicit instructions, as well as provide a pop-up on screen that will notify the user, in particular, list the offending incompatible software.

    What mechanism within the TS could I use to get more detailed info delivered to the SCCM MP so that a report on the failed deployment could contain that extended information? This could have implications for other custom failure messaging we implemented.

Leave a Reply

Your email address will not be published. Required fields are marked *