The Microsoft Print to PDF printer should be enabled by default on any Windows 11 PC. I don’t rely on this printer and don’t know many people who do, but it’s a nice bonus to have it available, and some users rely on it. If the print to PDF printer is not enabled, it’s usually simple to enable it from the Windows features:

You can also use PowerShell to install or check if the feature is installed. In the screenshot below, we can see that in this case, it’s disabled.
- To check if the feature is installed:
- Get-WindowsOptionalFeature -Online -FeatureName Printing-PrintToPDFServices-Features
- To enable the feature via PowerShell:
- Enable-WindowsOptionalFeature -Online -FeatureName Printing-PrintToPDFServices-Features -All

It’s pretty simple to add this feature for some one-off issues; when it gets added, the Print To PDF driver is installed on the system. This can be verified using the get-printdriver command:

Adding the print to PDF feature should install the driver automatically, but if there is an issue with the driver installation, you’ll probably see error code 0x800F0922. This error could mean many things, but in this case, the driver did not install on the system, which is the likely cause that the printer was never added.

So, we first need to install the Microsoft Print to PDF driver on our system. This driver is located in C:\Windows\System32\DriverStore\FileRepository in a directory starting with prnms009. In the example below, we don’t see that directory; it skips from 008 to 010. This is an indication that the driver is missing or couldn’t be installed on the target system:

On a machine where the PDF printer is functioning, locate the folder starting with prnms009 in c:\windows\system32\driverstore\filerepository and copy it to another location. If we open the prnms009.inf file, we can see the name of the driver is “Microsoft Print to PDF”


If we copy the directory containing the driver files to the affected workstation, we can install the driver with the command:
pnputil /add-driver "<location of folder>\prnms009.inf" /install
After installing the driver, we can try installing the Microsoft Print to PDF printer again. This time, it will work since the driver has been installed.

If that still fails for some reason, we can still manually install the printer from PowerShell by specifying the driver we just installed:
Add-Printer -Name "Microsoft Print to PDF" -DriverName "Microsoft Print To PDF" -PortName "PORTPROMPT:"
Deploying with Intune
I’ve never encountered this issue until recently, and I think it’s rare for it to be an issue on a fleet of PCs. However, there seemed to be a bad Windows 11 OEM image because, in my situation, the print-to-PDF printer was broken on a batch of new laptops. So, we needed a way to automatically fix this when the PCs were provisioned with autopilot before they were deployed to the users.
You can do this as a remediation or a Win32 app, but since I was dealing with Business Premium licensing, I used a Win32 app. All the files, including a packaged intunewin can be found on Github. First, we need our detection script, which will check if the Print to PDF Feature printer and Print to PDF driver both exist.
$driver = Get-PrinterDriver -name "Microsoft Print to PDF" -ErrorAction SilentlyContinue
$printer = Get-Printer -name "Microsoft Print to PDF" -ErrorAction SilentlyContinue
If ($driver -and $printer) {
Write-Output "Printer is detected"
Exit 0
}
else {
Write-Output "Printer or driver missing."
Exit 1
}
If the printer or driver is not detected, our “install” script will run to fix the print-to-PDF printer. The install script will first check to see if the Print to PDF driver is installed. If not, it will copy the driver folder (the one we copied from a working machine) to the c:\windows\system32\driverstore\filerepository directory and install the driver. Next, it will install or reinstall the windows feature for Print to PDF. Lastly, it will verify the printer exists after the feature installation. If the printer still doesn’t exist, it will manually install the printer.
$driver = Get-PrinterDriver -name "Microsoft Print to PDF" -ErrorAction SilentlyContinue
If (!$driver) {
Try {
move-item -path ".\prnms009.inf_amd64_3107874c7db0aa5a" -Destination "c:\windows\system32\driverstore\filerepository"
pnputil /add-driver "c:\windows\system32\driverstore\filerepository\.\prnms009.inf_amd64_3107874c7db0aa5a\prnms009.inf" /install
}
Catch {
Write-Host $_
}
}
Try {
# Reinstall or Install the Feature
Disable-WindowsOptionalFeature -Online -FeatureName Printing-PrintToPDFServices-Features -ErrorAction SilentlyContinue
Enable-WindowsOptionalFeature -Online -FeatureName Printing-PrintToPDFServices-Features -All -ErrorAction SilentlyContinue
$printer = Get-Printer -name "Microsoft Print to PDF" -ErrorAction Continue
If (!$printer) {
#manually connect printer if feature install failed
Add-Printer -Name "Microsoft Print to PDF" -DriverName "Microsoft Print To PDF" -PortName "PORTPROMPT:"
}
}
Catch {
Write-Host $_
}
We’re assuming you’re already familiar with packing and deploying a Win32 app. You can grab the .intunewin file directly on GitHub here. Otherwise, you can package this yourself. Make sure the install file is in the same directory as the folder containing your driver. The driver files are also available on GitHub if you don’t have a PC you can pull them from. Package these as an intunewin file:

Create a new Win32 app in Intune using the intunewin file you just created or downloaded. Use the below install command:
powershell.exe -executionpolicy bypass .\install.ps1

Select the custom detection script as the detection method:

Lastly, deploy to your devices and they’ll all have the Microsoft PDF Printer installed the next time they check in.