Can't get the latest Windows 10 Feature update? Need to find out what's blocking you? This module will help you find the block quickly!
Install module from gallery
Install-Module FU.WhyAmIBlocked -Scope CurrentUser
Import-Module FU.WhyAmIBlocked
Once module is installed run command to collect data from the local device..
Get-FUBlocks
Python is required to process the sdb compatibility database, but the module will still function partially without it.
If you want to use the module from the repo, you will need to build it first. It will be output to .\bin\release\FU.WhyAmIBlocked
.\Build.ps1 -ModulePath .\FU.WhyAmIBlocked
Import-Module ".\bin\release\FU.WhyAmIBlocked" -Force
If you need to customize paths, run this command. This creates a configfile in C:\FeatureUpdateBlocks\fuconfig.json
that you can edit as needed.
Initialize-FUModule
If you have .bin files collected in a folder already, you can process them. OutputPath must exist before running the command.
ConvertFrom-BinToXML -FileList @("c:\temp\myfile1.bin","c:\temp\myfile2.bin") -OutputPath "C:\temp\"
Exracts cab files with sdbs and/or Converts extracted sdb files to XML.
Export-FUXMLFromSDB -AlternateSourcePath "c:\temp"
Get-FUBlocksFromBin -FileList @("c:\temp\myfile1_humanreadable.xml","c:\temp\myfile2_humanreadable.bin")
$SdbAppGUIDs = @("{31f134a0-ce2c-4e97-b65d-746d6071bfba}")
Find-FUBlocksInSDB -BlockList $SdbAppGUIDs -Path "c:\temp\"
Requires .json
file from Find-FUBlocksInSDB
to be in the Path
location.
Export-FUBypassBlock -Path "c:\temp"
$env:USERPROFILE\.fucfgpath - Created when module is imported the first time.
C:\FeatureUpdateBlocks
C:\FeatureUpdateBlocks\AppraiserData
C:\FeatureUpdateBlocks\Bin
C:\FeatureUpdateBlocks\CABs
C:\FeatureUpdateBlocks\XML
C:\FeatureUpdateBlocks\Results.txt
All other files/folders are named based on their original folder structure and file names.
C:\FeatureUpdateBlocks\*_matches.json
C:\FeatureUpdateBlocks\*_matches.txt
C:\FeatureUpdateBlocks\*_BypassFUBlock.reg
C:\FeatureUpdateBlocks\*_BypassFUBlock.ps1
C:\FeatureUpdateBlocks\*_<ver>.XML
<SourceParentFolder1>_<SourceParentFolder2><ver>_<filename>
example:
AppCompatAppraiser_2379_Appraiser_AlternateData.cab