UPDATE #3 - 6/28/2018
Feel free to read below, however, if you want the quick solution, check out Marc’s updated blog post. He’s put together a simple solution to this issue.
http://blog.ctglobalservices.com/configuration-manager-sccm/mag/devicemap-and-device-inventory-failures-in-win7-to-win10-1709-in-place-upgrades/
UPDATE #2 - 5/24/2018
After posting this, I came across these https://twitter.com/jarwidmark/status/998591545392685057 and http://blog.ctglobalservices.com/configuration-manager-sccm/mag/devicemap-and-device-inventory-failures-in-win7-to-win10-1709-in-place-upgrades/ which indicated that the fix was to update the devinv.dll file in Sources directory of your Windows 10 Upgrade media. This led me to finding out that KB2952664 updates devinv.dll to a new version. Also, I found that my Windows 7 Reference image already had a version of both the hotfix and the dll - version 10.0.14979.1011 from 12/31/2016.
Updated Fix
Using the instructions from Mark Graham (@surferstylee13)http://blog.ctglobalservices.com/configuration-manager-sccm/mag/devicemap-and-device-inventory-failures-in-win7-to-win10-1709-in-place-upgrades/ I have added the latest version of devinv.dll to my upgrade media and in my In-Place Upgrade TS, instead of uninstalling the hotfix (which also seems to work, but I don’t know the side effects of removing it), I’m installing the latest version which I’ve downloaded from the Windows Update Catalog. According to the file name, KB2952664 is on revision 24. I haven’t found an easy to find which version of the KB you have installed other than checking the file versions.
- Make the changes to the Prepare for Upgrade section.
- On the Check if KB2952664 group’s Options tab, add a condition to check for the file version information. This will allow us to only apply the patch if the file isn’t current.
- Add the new install command line for the KB. Make sure to update the MSU filename to match what you download from the catalog.
wusa windows6.1-kb2952664-v24-x64_cd95eff6a0b4dc190709f9a0e7a00f782a74ee5c.msu /quiet /norestart
Side Note
I began seeing this issue on 5/18/2018 My Windows 7 Reference Image was captured on 5/18/2017, so when I was looking through install dates for updates, I completely missed that the KB was a year old. This led me down a rabbit hole trying to figure out how it was getting installed.
UPDATE #1 - 5/21/2018
I just found a possible alternative root cause and workaround. I’m going to test and update if needed. https://twitter.com/jarwidmark/status/998591545392685057 and http://blog.ctglobalservices.com/configuration-manager-sccm/mag/devicemap-and-device-inventory-failures-in-win7-to-win10-1709-in-place-upgrades/
TL;DR - When you attempt to upgrade Windows 7 to Windows 10 1709, the upgrade may hang at ‘Making sure you’re ready to install’, or if you are installing silently, SetupHost.exe will show 00 CPU usage after the first few minutes and setupact.log will not change in size and will be under 200KB. Uninstall KB2952664 and try the upgrade again.
Last week we were putting the final touches on our ConfigMgr Task Sequence which combines Bare Metal, Replace, In-Place Upgrade and Failed Image Recovery into one Task Sequence. We had fully tested our In-Place upgrade a month ago and everything was working fine. After testing some changes for the other scenarios, we began re-testing the In-Place Upgrade scenario. I built 4 VMWare VM’s and a Lenovo laptop to test with. I started the upgrades around 10 AM and left them running. I checked back on them around 1:45 PM and found that they were ALL still on the Upgrade Operating System step of the Task Sequence. I spent the next 2 days trying to find the root cause. Here’s what I found:
Symptoms
Note: For these tests, I used the Windows 10 1709 base media as well as offline serviced media with the latest updates applied. The results were the same.
When running from a ConfigMgr Task Sequence
- Task Sequence Progress UI will be stuck on the Upgrade Operating System Task Sequence step indefinitely
- The last step in smsts.log will show an entry with the Windows setup.exe command line but not show any progress after this entry
|
|
- The setupact.log under c:$WINDOWS.~BT\Sources\Panther will be ~200 KB (depends on the device) and won’t get updated after the first few mins.
- Task Manager will show setup.exe and SetupHost.exe in the task list, but CPU usage on both will show 00.
- Once you’ve determined that the installer is hung, you can kill the process by opening Task Manager and ending task on SetupHost.exe
When running from Windows Setup GUI
- The installation wizard will proceed as normal.
- The setupact.log under c:$WINDOWS.~BT\Sources\Panther will be ~200 KB (depends on the device) and won’t get updated after the first few mins.
- One of the last steps in setupact.log (you have to copy the file with admin rights to a different location before you can open it) will be
|
|
- You will the screen ‘Making sure you’re ready to install’.
- Task Manager will show setup.exe and SetupHost.exe in the task list, but CPU usage on both will be 0.
- Once you’ve determined that the installer is hung, you can kill the process by opening Task Manager and ending task on SetupHost.exe
Workarounds
As of May 21,2018, my Windows 7 devices have KB2952664 installed. The KB was last updated on April 8, 2018. Uninstalling this KB before running Windows Setup allows the upgrade process to proceed as expected.
ConfigMgr Task Sequence Steps
- In your Prepare for Upgrade group, create a new group called KB292446 Install check.
- On the Options tab of the KB292446 Install check group, add a new WMI Query condition
- WMI Namespace: root\cimv2
- Query:
Select * from win32_QuickFixEngineering Where HotfixID = 'KB2952664'
- Add Run Command Line Step called Uninstall KB292446
Command Line:wusa /uninstall /kb:2952664 /quiet /norestart
Be sure to include/norestart
. I tested with/forcerestart
and the Task Sequence will fail due to an unexpected reboot. I suspect you could create a Program to do this and it would allow the Task Sequence to manage the reboot. - Add Restart Computer Step
- Optional: Add new Run Command Line step called Uninstall of KB2952664 Failed - Exit TS. This step will cause the Task Sequence to fail if the KB is still detected after a reboot.
- On the Options tab add a new WMI Query condition
- WMI Namespace: root\cimv2
- Query:
Select * from win32_QuickFixEngineering Where HotfixID = 'KB2952664'
- Command Line:
cmd /c exit 1
Manual Removal Steps
Option 1
- From an elevated command prompt, run
wusa /uninstall /kb:2952664 /quiet /forcerestart
- After the reboot, log in and run Windows Setup
Option 2
- Open Programs and Features
- Click View Installed Updates
- Find the entry for KB2952664. I added the Update ID column to the view for easier sorting.
- Right click on the entry and click Uninstall
- Reboot
- Run Windows Setup
I plan to open a Premier Support case to report the issue and find out if this is a bug with KB. I will post an update if I get anywhere with that.