Windows 10 Compatibility Check using SCCM and Report

Benoit LecoursREPORT, Reports, SCCM, SSRS34 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

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

  1. Pingback: Check The Compatibility Of Applications With Devices On The Windows 10 Computer - Secured Guide

  2. Which files are exactly needed to be in the package? Looking at the description it says this “Using our proposed methods, you’ll be using about 250mb on the client drive instead of 5gb.”
    Also, “The source of this package must be the Windows 10 installation media” – but that is the full 5Gb
    Are you including it all, or only parts of it?

    So which files are included? Only the setup.exe is probably not enough, but it’s not described which files from the installation media are needed?

    thanks for the info.

    1. OK. so I included the whole shebang, the complete ISO, but it downloads everything onto the client, so the complete 5GB.

      Using our proposed methods, you’ll be using about 250mb on the client drive instead of 5gb?

      Also, if I try to run it, I get an error 0xB7(183) that translates into: ERROR_ALREADY_EXISTS 183 (0XB7)
      Cannot create a file when that file already exists. Which file? where?

      I did try to run an upgrade previously on that system, but removed the C:\$WINDOWS.~BT\ folder.

      Any assistance on this is greatly appreciated.

      Thanks!

  3. Pingback: Windows 10 Upgrade without Upgrade Readiness – Chad's Tech

  4. I am not sure if this actively montiored. I used this recently and noticed below while running the report. Any help is appreciated.

    An error has occurred during report processing. —> Microsoft.ReportingServices.ReportProcessing.ProcessingAbortedException: An error has occurred during report processing. —> Microsoft.ReportingServices.ReportProcessing.ReportProcessingException: Query execution failed for dataset ‘PackageName’. —> System.Exception: For more information about this error navigate to the report server on the local server machine, or enable remote errors

    ——————————-
    Microsoft.ConfigurationManagement.ManagementProvider.SmsException
    An error has occurred during report processing.

    Stack Trace:
    at Microsoft.ConfigurationManagement.AdminConsole.SrsReporting.ParameterPresenter.GetParameters()
    at Microsoft.ConfigurationManagement.AdminConsole.SrsReporting.ParameterPresenter.LoadParameters(IReport report, Collection`1 navigationParameters, IResultObject resultObject)
    at Microsoft.ConfigurationManagement.AdminConsole.SrsReporting.ReportViewerPresenter.Worker_DoWork(Object sender, DoWorkEventArgs e)
    at System.ComponentModel.BackgroundWorker.OnDoWork(DoWorkEventArgs e)
    at System.ComponentModel.BackgroundWorker.WorkerThreadStart(Object argument)

    ——————————-

    System.Web.Services.Protocols.SoapException
    An error has occurred during report processing. —> Microsoft.ReportingServices.ReportProcessing.ProcessingAbortedException: An error has occurred during report processing. —> Microsoft.ReportingServices.ReportProcessing.ReportProcessingException: Query execution failed for dataset ‘PackageName’. —> System.Exception: For more information about this error navigate to the report server on the local server machine, or enable remote errors

    Stack Trace:
    at Microsoft.ConfigurationManagement.AdminConsole.SrsReporting.ParameterPresenter.GetParameters()
    at Microsoft.ConfigurationManagement.AdminConsole.SrsReporting.ParameterPresenter.LoadParameters(IReport report, Collection`1 navigationParameters, IResultObject resultObject)
    at Microsoft.ConfigurationManagement.AdminConsole.SrsReporting.ReportViewerPresenter.Worker_DoWork(Object sender, DoWorkEventArgs e)
    at System.ComponentModel.BackgroundWorker.OnDoWork(DoWorkEventArgs e)
    at System.ComponentModel.BackgroundWorker.WorkerThreadStart(Object argument)

    ——————————-

  5. Hi,

    I’m trying to use the report, I modified the packageName dataset from vSMS_ClassicDeploymentAssetDetails to v_ClassicDeploymentAssetDetails, but as CEGross I don’t get the correct value in the Return Code (HEX) field and in Return Code Description, but only #Error.
    Can you give us some help?
    Thank you

  6. When looking at the reports listed here, I keep getting an error on the hex fields in the report. Any ideas why that would be occurring?

  7. Hi!

    You Need Leads, Sales, Conversions, Traffic for systemcenterdudes.com ? Will Findet…

    I WILL SEND 5 MILLION MESSAGES VIA WEBSITE CONTACT FORM

    Don’t believe me? Since you’re reading this message then you’re living proof that contact form advertising works!
    We can send your ad to people via their Website Contact Form.

    IF YOU ARE INTERESTED, Contact us => lisaf2zw526@gmail.com

    Regards,
    Buggy

  8. The view in the PackageName dataset has been changed from vSMS_ClassicDeploymentAssetDetails to v_ClassicDeploymentAssetDetails in Configuration Manager 1806 and higher.

  9. I changed the Server and Catalog information to correlate our environment, but I still get the error:
    Query execution failed for dataset ‘PackageName’. (rsErrorExecutingCommand)
    The SELECT permission was denied on the object ‘vSMS_ClassicDeploymentAssetDetails’, database ‘CM_404’, schema ‘dbo’.

    Is there a fix to this?

  10. 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

    1. Hi we are on CB1806, but when I run the report we get the same as you VIncent. No error codes displayed. Just wondering if this has to do with the View permissions on the v_ClassicDeploymentAssetDetails

  11. 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…

  12. 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

  13. 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?

  14. 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?

  15. 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?

  16. 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?

  17. 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.

  18. 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