How to conveniently mass-reassign file associations in Windows 10 (1803)?

Solution 1:

You could make a list of file extensions and corresponding applications which the extension will be run by, for example in Excel, export it to .csv file and use the PowerShell script from the below link: https://gallery.technet.microsoft.com/scriptcenter/How-to-associate-file-3898f323

You can try to edit this script that it would read the .csv file and do proper extension-application assignment.

You should be careful when dealing with .exe extension, as changing its behavior may result in general problems with Windows. Changing all the extensions in a for loop should take no more than few minutes.

EDIT: As per comment the link has died, so I am pasting below the script:

Function AssociateFileExtensions
{
    Param
    (
        [Parameter(Mandatory=$true)]
        [String[]] $FileExtensions,
        [Parameter(Mandatory=$true)]
        [String] $OpenAppPath
    ) 
    if (-not (Test-Path $OpenAppPath))
    {
       throw "$OpenAppPath does not exist."
    }   
    foreach ($extension in $FileExtensions)
    {
        $fileType = (cmd /c "assoc $extension")
        $fileType = $fileType.Split("=")[-1] 
        cmd /c "ftype $fileType=""$OpenAppPath"" ""%1"""
    }
}

Save it as AssociateFileExtensions.psm1.

I've taken that from: https://web.archive.org/web/20201112024219/https://gallery.technet.microsoft.com/scriptcenter/How-to-associate-file-3898f323

Solution 2:

Although at the beginning I was skeptical about the poster's problem, I am flabbergasted to find this monumental gaff by Microsoft.

All the cases I have examined where the problem didn't occur, were installed before Windows 10 version 1809. When I downloaded the 1809 versions of Windows 10 Enterprise (Business) and Windows 10 Pro (Consumer) and did a clean install in virtual machines, they had this ACL!

This ACL is a new addition and did not exist in prior versions. It is apparently only stored during a clean install, not during the upgrade to 1809 from a prior version. I don't know what brainstorm brought this on, but Microsoft apparently decided to force the use of its Photos app upon the world.

We developers have no other option but to adapt to this new situation. You would need to delete this new and blocking ACL.

If you are looking for a solution in the form of a .reg file that deletes the Set Value entry, I think you will need to delete the entire branch for .bmp and recreate it anew in order to get rid of it. Otherwise, changing permissions would require a script or an installation program.

Something like :

Windows Registry Editor Version 5.00

[-HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\FileExts\.bmp]

[HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\FileExts\.bmp]
...