Network printer stops printing — 0x0000011b, 0x00000709, 0x0000007c
A group of print connection errors from the print security updates and from the spooler losing the connection to the server.
What you see
"Windows cannot connect to the printer" with one of these codes, most often after an update, and most often on shared printers hosted from a workstation or server.
What is actually wrong
0x0000011b is the RPC authentication change in the print security updates. 0x0000007c is a client and server disagreeing on the SMB dialect for the print share. 0x00000709 is a default printer setting that cannot be written. 0x00000bcb is a missing driver on the server.
Codes and articles
Fixes (3)
Patch both ends rather than turning the RPC protection off
0x0000011b. The registry workaround for this is everywhere online and it re-opens the vulnerability the update closed.
Check the update level of the print server and the client. A mismatch is the whole cause.
Get-HotFix | Sort-Object InstalledOn -Descending | Select-Object -First 8 HotFixID,Description,InstalledOnBring both fully up to date and restart. In the great majority of cases that is the entire fix — the incompatibility was resolved in later cumulative updates.
If a legacy device makes that impossible, understand what the workaround does before using it: RpcAuthnLevelPrivacyEnabled set to 0 reverts to unauthenticated RPC printing, which is the PrintNightmare attack path.
Get-ItemProperty 'HKLM:\System\CurrentControlSet\Control\Print' -Name RpcAuthnLevelPrivacyEnabled -ErrorAction SilentlyContinueThis is stated plainly because the value is usually pasted in from a forum without anyone saying what it costs. If it is used, it should be a scheduled, temporary measure on an isolated print network.
Prefer replacing the shared-queue model with direct IP printing or Universal Print, which sidesteps the whole class of fault.
Get-Printer | Format-Table Name,DriverName,PortName,PrinterStatusFix the driver the server is handing out
0x0000007c or 0x00000bcb — an architecture or dialect mismatch on the shared driver.
List what the server is offering.
Get-PrinterDriver | Format-Table Name,PrinterEnvironment,MajorVersionInstall a Type 4 (class) driver where the manufacturer offers one — these are handed to clients cleanly and do not require a matching architecture package.
Clear the client's cached copy of the old driver before retrying.
Stop-Service Spooler -ForceRemove-Item 'C:\Windows\System32\spool\PRINTERS\*' -Force -ErrorAction SilentlyContinueStart-Service Spooler
As a workaround that also removes the dependency, add the printer by IP with a local driver.
Add-PrinterPort -Name 'IP_10.0.0.50' -PrinterHostAddress '10.0.0.50'Add-Printer -Name 'Office Laser' -DriverName 'HP Universal Printing PCL 6' -PortName 'IP_10.0.0.50'
Direct IP printing takes the print server out of the path entirely. For a small site it is more reliable than a shared queue and immune to this entire family of errors.
Get-Printer 'Office Laser' | Format-List Name,PrinterStatus,PortName,DriverNameRebuild the client's print configuration
0x00000709, 0x00000040, or a spooler that crashes as soon as a queue is opened.
Stop the spooler and clear stuck jobs.
Stop-Service Spooler -ForceRemove-Item 'C:\Windows\System32\spool\PRINTERS\*' -Recurse -Force -ErrorAction SilentlyContinue
Remove the stale per-user connections that the default-printer error is really about.
Remove-Item 'HKCU:\Printers\Connections\*' -Recurse -Force -ErrorAction SilentlyContinueRemove-Item 'HKCU:\Software\Microsoft\Windows NT\CurrentVersion\Devices' -Force -ErrorAction SilentlyContinue
0x00000709 is the shell failing to write the default printer, and it is nearly always a connection entry pointing at a server that has been renamed or retired.
Start the spooler and re-add the printer.
Start-Service SpoolerAdd-Printer -ConnectionName '\\printserver\Office Laser'
If the spooler crashes on start, check for a third-party print monitor in the registry under Control\Print\Monitors and remove any belonging to software that has been uninstalled.
Get-CimInstance Win32_Printer | Where-Object Default -eq $true | Format-List Name,DefaultRelated faults
Where this stops. This write-up was written and checked by hand. It says what each step changes, how to confirm it worked and how to reverse it, and anything destructive is flagged before you reach it. If it does not match what your machine is doing, search the Support Centre for the exact code or message — and when something needs a person, get in touch.