When This Error Hits
You're trying to open BitLocker, run a PowerShell script that uses certificates, or maybe just log into a VPN client. Then bam — you get 0X8009001E NTE_PROV_DLL_NOT_FOUND. I saw this last month on a Windows 11 machine that had just uninstalled some security software. The user couldn't even open the Credential Manager. Annoying, right?
What's Going On
Windows uses something called a cryptographic service provider (CSP) to handle encryption, signing, and certificates. Each CSP is a DLL file. When your system tries to call that DLL and it's not there — either because an app removal wiped it, or an update overwrote the registry entry — you get this error. The DLL still exists sometimes, but the registry path points to a file that got deleted or moved. It's a broken link, basically.
In most cases, the culprit is a third-party security suite that installed its own CSP. McAfee, Symantec, Kaspersky — I've seen all of them do it. When you uninstall the software, it leaves a registry key behind that Windows still tries to load. Boom, error.
The Fix: Step by Step
Step 1: Identify the Bad Provider
Open PowerShell as administrator. Run this command:
Get-ChildItem -Path HKLM:\SOFTWARE\Microsoft\Cryptography\Defaults\Provider -Recurse | ForEach-Object { $_.GetValueNames() | ForEach-Object { Write-Host ($_.GetValue($_)) } }
Look for any provider name that mentions a software you uninstalled. Common ones: "Symantec", "McAfee", "Kaspersky", "ESET". Write down the exact name.
Step 2: Check If the DLL Exists
Open Registry Editor. Navigate to:
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Cryptography\Defaults\Provider
Find the subkey with the bad provider. Look for a value called Image Path — it says where the DLL should be. Check if that file exists on your hard drive. If not, you found the problem.
Step 3: Remove or Fix the Registry Key
If the software is gone and you don't need its CSP, delete the entire subkey. Right-click the key, choose Delete. Back up the key first by exporting it — just in case.
If you still use the software (like an old VPN client), reinstall it to put the DLL back. Or copy the DLL from another working machine to the right folder, then fix the path in the registry.
Step 4: Re-register the Default Microsoft Providers
Sometimes the error is about a built-in Microsoft provider that got corrupted. Run these commands in an admin command prompt:
regsvr32 /s %windir%\system32\cryptdll.dll
regsvr32 /s %windir%\system32\rsaenh.dll
regsvr32 /s %windir%\system32\dssenh.dll
Restart the PC after.
Step 5: System File Checker
If steps 1-4 didn't work, run SFC and DISM. In an admin command prompt:
sfc /scannow
Then run:
DISM /Online /Cleanup-Image /RestoreHealth
If It Still Fails
Check the Windows Event Viewer under Applications and Services Logs > Microsoft > Windows > Crypto. There's usually a log entry with the exact DLL name that's missing. Search for that DLL online — it might be from a driver or a Windows update that didn't finish.
Also, try a system restore to a point before the error started. If that's not an option, you can do a repair install (in-place upgrade) of Windows. Keeps your files, fixes the OS.
Had a client where none of the above worked. Turned out their antivirus had blocked the DLL from loading. Disabled real-time protection, ran the app, then re-enabled it. Fixed.