🚀 Executive Summary
TL;DR: Enterprise environments often struggle to deploy HEIC/HEVC codecs due to Microsoft Store restrictions on AppX/MSIX packages, hindering critical image viewing. This article provides scriptable solutions for sysadmins to bypass the Store, including direct AppX sideloading, automated deployment via Winget, and a last-resort manual DLL registration.
🎯 Key Takeaways
- Microsoft Store’s exclusive AppX/MSIX distribution for HEIC/HEVC codecs creates significant deployment challenges in enterprise and VDI environments due to policy restrictions and SYSTEM account limitations.
- The `Add-AppxProvisionedPackage` PowerShell cmdlet with the `-SkipLicense` flag enables offline sideloading of HEVC AppX packages, provisioning the codec for all user profiles on a machine.
- Winget offers a scalable, automated, and idempotent solution for deploying HEVC codecs by directly interacting with the Microsoft Store repository using the command `winget install -e –id 9N4WGH0Z6VHQ –source msstore –accept-package-agreements`.
Tired of the Microsoft Store blocking your HEIC/HEVC codec deployments? Here are three real-world, scriptable solutions for sysadmins to bypass the Store and get these critical image codecs working on every machine, from VDI images to developer workstations.
Deploying the HEIC Codec Without the Microsoft Store: A DevOps War Story
I remember the day clearly. It was a Tuesday, always a Tuesday. We were hours from a go-live for a new document processing workflow. Everything was green on the board. Then the ticket came in, priority: critical. “URGENT: Finance Cannot Open Invoices from CEO.” My first thought was a corrupted PDF, maybe a network share permissions issue. Easy stuff. I was wrong.
It turns out the CEO, fresh from a weekend trip, had snapped photos of receipts on his new iPhone and emailed them. They were all .HEIC files. Our finance team’s brand new, fully locked-down VDI instances? They saw them as nothing more than gibberish. My usual deployment tools—Intune, Ansible—all failed to install the codec because they kept trying to call the Microsoft Store, which was disabled by policy. We had a hundred-thousand-dollar project dead in the water because of a “free” photo codec. That’s when I learned that sometimes, the simplest problems require the most creative, “off-label” solutions.
So, What’s the Real Problem Here?
Why is this so difficult? It boils down to one thing: Microsoft decided to package these essential codecs (HEIC for images, HEVC for video) as AppX/MSIX applications distributed exclusively through the Microsoft Store. This is great for a home user on their laptop, but for us in the enterprise, it’s a nightmare.
System-level deployments, golden images (like my VDI-GOLD-IMG-23H2), and non-persistent environments don’t have a logged-in “user” with a Store account to perform the installation. Our standard deployment scripts, running as SYSTEM, can’t authenticate to the Store to pull the package down. We’re left with a modern codec held hostage by a consumer-facing delivery mechanism. But don’t worry, we can break it out of jail.
Solution 1: The Quick Fix (Direct AppX/MSIX Sideload)
This is my go-to for fixing a single machine or building it into a golden image manually. We’re essentially downloading the offline installer package and telling Windows to install it for every user who logs into the machine from now on.
- First, you need to grab the package. The easiest way is to use the online link generator for the Microsoft Store. Go to https://store.rg-adguard.net/.
- Paste in the URL for the “HEVC Video Extensions from Device Manufacturer”:
https://www.microsoft.com/en-us/p/hevc-video-extensions-from-device-manufacturer/9n4wgh0z6vhq - Download the correct
.appxor.msixbundlefile for your architecture (usually x64). You’ll get a file named something likeMicrosoft.HEVCVideoExtension_..._x64__8wekyb3d8bbwe.Appx. - Place that file somewhere accessible, like
C:\Temp. - Now, run the following PowerShell command as an Administrator:
Add-AppxProvisionedPackage -Online -PackagePath "C:\Temp\Microsoft.HEVCVideoExtension_2.0.61931.0_x64__8wekyb3d8bbwe.Appx" -SkipLicense
This command “provisions” the package on the machine. Any new user profile created will automatically have the HEIC/HEVC codec installed and ready to go. Existing users will get it on their next login.
Pro Tip: The
-SkipLicenseflag is crucial for automation. It prevents a prompt that would otherwise hang your script. This method works great, but you have to manually keep the AppX file updated if a new version comes out.
Solution 2: The Scalable & Repeatable Fix (Automate with Winget)
This is the proper, DevOps-friendly approach. The Windows Package Manager (Winget) is built for this kind of thing. It knows how to talk to the Store’s backend repositories without needing a GUI or a logged-in user in the traditional sense. This is perfect for Intune Proactive Remediations, Ansible playbooks, or SCCM application deployments.
The command is beautifully simple. To install for the entire machine, run this from an elevated command prompt or PowerShell:
winget install -e --id 9N4WGH0Z6VHQ --source msstore --accept-package-agreements
Let’s break that down:
| Argument | What it does |
install -e |
-e means “exact match” on the ID. |
--id 9N4WGH0Z6VHQ |
This is the unique product ID for the free HEVC extensions. |
--source msstore |
Tells Winget to look only in the Microsoft Store repository. |
--accept-package-agreements |
The magic flag for automation. No interactive prompts! |
This single line of code is now part of our standard workstation and server build process. It’s idempotent, easy to version control, and requires no manual file downloads.
Solution 3: The ‘If All Else Fails’ Nuclear Option
Okay, let’s say you’re in an environment so locked down that even Winget is blocked, and you can’t get an exception. I’ve been there. It’s frustrating. This last method is a complete hack, it’s unsupported, and it will probably break during a major Windows feature update. But, if it’s the only way to get the finance department working, sometimes you have to do what you have to do.
Serious Warning: You’re on your own here. This involves manually ripping files out of the MSIX package and registering them. This is a last resort, not a first choice. I’m describing the theory, not endorsing it for production on
prod-db-01.
The process generally looks like this:
- Download the
.msixbundlefile as described in Solution 1. - Rename the file extension to
.zipand extract its contents. - Inside, you’ll find another MSIX file for your architecture (e.g., x64). Rename that to
.zipand extract it too. - Now you’re in the belly of the beast. You’ll find the actual codec DLLs (like
heicdecoder.dll) in a subdirectory. - Copy these DLLs to a system folder, like
C:\Windows\System32. - Use the
regsvr32.execommand-line tool to manually register the DLLs with the operating system.
regsvr32 C:\Windows\System32\heicdecoder.dll
Again, this is messy. You’re manually managing files that a package manager should handle, and you lose all benefits of clean uninstalls or upgrades. But for that one fire-drill Tuesday, knowing this trick was the difference between a successful go-live and a very unpleasant meeting with the CFO.
Hopefully, one of these solutions saves you from your own “HEIC Tuesday.” Go with Winget if you can, fall back to the provisioned AppX if you must, and keep the nuclear option in your back pocket for emergencies.
🤖 Frequently Asked Questions
âť“ Why can’t I deploy HEIC/HEVC codecs in my enterprise environment using standard tools?
Microsoft packages HEIC/HEVC codecs as AppX/MSIX applications exclusively through the Microsoft Store. Enterprise deployment tools often run as SYSTEM, lack a logged-in user, or have Store access blocked by policy, preventing direct installation.
âť“ How do the different HEIC/HEVC codec deployment methods compare in terms of scalability and maintenance?
Direct AppX sideloading (Solution 1) is a quick fix for single machines or golden images but requires manual updates. Winget (Solution 2) is the recommended scalable, automated, and idempotent approach, handling updates and suitable for DevOps. The manual DLL registration (Solution 3) is a last-resort, unsupported hack that lacks clean uninstalls or upgrades.
âť“ What is a common implementation pitfall when using `Add-AppxProvisionedPackage` for HEIC/HEVC codecs?
A common pitfall is the interactive license prompt that can halt automation scripts. This is resolved by including the `-SkipLicense` flag in the PowerShell command, ensuring a non-interactive installation.
Leave a Reply