question

NeoInMS-0517 avatar image
0 Votes"
NeoInMS-0517 asked RitaHu-MSFT rolled back

Opgrade from 1803 to 20H2 via WSUS stop at 49% on laptops

Hi all
I have approved Feature update for 20H2 for one "ring" in WSUS. In this ring there is some laptops and som virtual machines (VM).
It succeed to upgrade Windows 10 from 1803 enterprise to 20H2 on the VM but stucks at 49% on my laptops.
I know there maybe some driver issues that prevent it from upgradeing, but how can I find which driver is causing the issue.
I can remember from 1709 to 1803 there were 2 feautures shiuld be approved for upgrade, but now I can see just one update in Wsus for upgrading.
Is my WSUS set up correctly?

windows-server-update-services
· 5
5 |1600 characters needed characters left characters exceeded

Up to 10 attachments (including images) can be used with a maximum of 3.0 MiB each and 30.0 MiB total.

How many clients stuck at 49%? When did this happen? Downloading updates or installing updates. In my opinion, we could try to upgrade clients to windows 10 20h2 by Windows 10 Update Assistant if there is only one clients failed to get feature updates from WSUS.

Thanks for your time.

0 Votes 0 ·

Hi RitaHu-MSFT
Thanks for reply.

I have 2 laptops in Ring 2 and the both have the same isse. Downloading goes fine, it stucks at 49% during installation.
I couldn't find any logs to help me with the issue.

I should test upgrading process first in Ring 0 then approve it for Ring 1, and Ring2.

0 Votes 0 ·

We could download SetupDiag tool to get the details about why a Windows 10 upgrade was unsuccessful.


0 Votes 0 ·
Show more comments

1 Answer

NeoInMS-0517 avatar image
0 Votes"
NeoInMS-0517 answered

By the way, I have tried updating drivers, deleting "SoftwareDistribution" and "catroot2" folders and .... no succes yet.
Here is my Poweshell code to delete these folders if you need


 #We check first that SoftwareDistribution_old is exist.
 #If yes we delete the old and cjhange the var $LoopCondition value to true
 #If not so it is already true and contiue to the loop
 #We set primary value for $LoopCondition to true
    
 $LoopCondition = "False"
    
 #check if old exist
    
 if(Test-Path "C:\Windows\SoftwareDistribution_old"){
        
     Remove-Item -Path "C:\Windows\SoftwareDistribution_old" -Force -Recurse
     $LoopCondition = "True"
    
 }
    
 while(!(Test-Path "C:\Windows\SoftwareDistribution_old")){
        
     #Write-Host("Its working")
     try{
        
              
             Stop-Service -Name wuauserv
             Stop-Service -Name CryptSvc
             Stop-Service -Name BITS
             Stop-Service -Name msiserver
    
             Rename-Item  "C:\Windows\SoftwareDistribution" -NewName SoftwareDistribution_old
                            
        
        
         }catch{
        
                 Write-Host("Error while renaming folder softwaredistribution")
                    
                 }
    
            
    
    
            
         if(Test-Path "C:\Windows\SoftwareDistribution_old"){
        
             $LoopCondition = "False"
             Write-Host "SoftwareDistribution renamed and WUauserv started"
             }
    
            
     }
    
    
    
    
 #Do the same for catroot2 under system32
    
 if(Test-Path "C:\Windows\System32\catroot2_old"){
 Remove-Item -Path "C:\Windows\System32\catroot2_old" -Force -Recurse
    
 #Rename-Item  "C:\Windows\System32\catroot2" -NewName catroot2_old
 #Write-Host $?
    
 }
    
 while((Test-Path "C:\Windows\System32\catroot2")){
        
     try{
        
                
                
             Stop-Service -Name wuauserv
             Stop-Service -Name CryptSvc
             Stop-Service -Name BITS
             Stop-Service -Name msiserver
    
             #Stop-Service -Name CryptSvc -Force -Confirm
             Rename-Item  "C:\Windows\System32\catroot2" -NewName catroot2_old
                            
        
        
         }catch{
        
                 Write-Host("Error while renaming folder catroot2")
                    
                 }
    
            
    
    
            
         if(Test-Path "C:\Windows\SoftwareDistribution_old"){
        
             $LoopCondition = "False"
             #Start-Service -Name CryptSvc
             Write-Host "Catroot2 renamed and CryptSvc started"
                         }
    
            
     }
    
    
             Start-Service -Name wuauserv
             Start-Service -Name CryptSvc
             Start-Service -Name BITS
             Start-Service -Name msiserver


5 |1600 characters needed characters left characters exceeded

Up to 10 attachments (including images) can be used with a maximum of 3.0 MiB each and 30.0 MiB total.