Overview of Windows Server 2022 Print Services

A Windows Server print server centralizes printer management, driver distribution, and print queue administration for an organization. Instead of installing printer drivers on every individual workstation, you deploy them once on the server and Windows automatically distributes them to clients when they connect. Windows Server 2022 includes the Print and Document Services role, which provides the Print Management console, internet printing via IPP, and Group Policy-based printer deployment.

Print servers are particularly valuable in environments with many shared printers and users on multiple computers. They reduce the time administrators spend on driver troubleshooting, enable centralized print auditing, and allow branch office printing configurations that reduce WAN traffic. This article covers the full setup and management of a Windows Server 2022 print server.

Installing the Print Server Role

Install the Print and Document Services role using PowerShell:

Install-WindowsFeature Print-Server -IncludeManagementTools

This installs the Print Server role service and the Print Management console (printmanagement.msc). To also enable Internet Printing (IPP over HTTP/HTTPS), add the Internet Printing role service:

Install-WindowsFeature Print-Internet -IncludeManagementTools

To verify the installation:

Get-WindowsFeature Print-Server, Print-Internet | Select Name, InstallState

After installation, open Print Management from Server Manager or run printmanagement.msc. You will see your server listed under Print Servers, with nodes for Drivers, Forms, Ports, and Printers.

Adding Printer Ports

Before adding a printer, you must define the port that the server will use to communicate with the printer. Most network printers use a Standard TCP/IP Port. To add a TCP/IP port using PowerShell:

Add-PrinterPort -Name "IP_192.168.1.100" -PrinterHostAddress "192.168.1.100"

For printers that require a specific TCP port (default is 9100 for most laser printers), specify it:

Add-PrinterPort -Name "IP_192.168.1.100_9100" -PrinterHostAddress "192.168.1.100" -PortNumber 9100

To list all currently configured printer ports:

Get-PrinterPort

In Print Management GUI, right-click Ports under your server and select Add Port. Choose Standard TCP/IP Port and follow the wizard, entering the printer’s IP address. The wizard will auto-detect the printer model and select appropriate settings. If the printer is not detected, choose Generic Network Card as the device type and set the protocol to RAW on port 9100.

Installing Printer Drivers

Printer drivers must be installed on the server before adding printers. Windows Server 2022 includes a collection of in-box drivers from the Windows Update Printer Driver Catalog. For modern PostScript or PCL printers, the Microsoft Universal Print Driver is often sufficient. For vendor-specific features (duplexing, stapling, booklet), install the manufacturer’s PCL or PS driver.

To add a driver using PowerShell (the driver package must be pre-staged or already in the driver store):

Add-PrinterDriver -Name "HP Universal Printing PCL 6"

To install a driver from an INF file downloaded from the manufacturer:

# Stage the driver into the driver store first
pnputil /add-driver "C:DriversHPhpcu255u.inf" /install

# Then add it to the print server
Add-PrinterDriver -Name "HP Universal Printing PCL 6" -InfPath "C:DriversHPhpcu255u.inf"

To list all installed printer drivers:

Get-PrinterDriver | Select Name, PrinterEnvironment, DriverVersion

For 32-bit client support (rare but still encountered), install the additional driver architecture. In Print Management, right-click the driver and select Manage Sharing, then add x86 drivers.

Adding and Sharing Printers

With a port and driver installed, add the printer:

Add-Printer -Name "Finance-HP-LaserJet" -DriverName "HP Universal Printing PCL 6" -PortName "IP_192.168.1.100" -Shared $true -ShareName "FinancePrinter" -Location "Building A - 2nd Floor" -Comment "HP LaserJet M507 - Color"

The -Shared $true parameter immediately shares the printer. The ShareName is what clients use to connect (\PrintServerFinancePrinter). Location and Comment fields appear in Active Directory when the printer is published, helping users find printers by location.

To publish the printer to Active Directory (allows users to search for it by location or capability in AD):

Set-Printer -Name "Finance-HP-LaserJet" -Published $true

Verify the printer and its sharing status:

Get-Printer -Name "Finance-HP-LaserJet" | Select Name, ShareName, Shared, Published, PortName, DriverName

In Print Management, right-click the printer and select Properties to access the Sharing and Security tabs. On the Security tab, configure who can print, who can manage documents, and who can manage the printer. By default, Everyone can print; restrict this to specific security groups as needed:

# Remove Everyone and add Finance group
$printer = "Finance-HP-LaserJet"
$sd = Get-Printer $printer | Get-PrinterPermission
# Use printmanagement.msc for granular ACL editing, or use Print-Security module

Deploying Printers via Group Policy

Manually connecting users to printers is tedious. Group Policy’s Push Printer Connections feature deploys printers automatically to computers or users based on OU membership or security group filtering.

In Group Policy Management, create a new GPO or edit an existing one. Navigate to:

Computer Configuration > Policies > Windows Settings > Deployed Printers
-or-
User Configuration > Policies > Windows Settings > Deployed Printers

Right-click Deployed Printers and select Deploy Printer. Browse to the print server using the UNC path (\PrintServerShareName) or browse Active Directory for published printers. Computer-scoped deployment installs the printer for all users on those computers. User-scoped deployment follows the user across any computer they log into.

The Print Management console also provides a “Deploy with Group Policy” option. Right-click any shared printer in Print Management, select “Deploy with Group Policy,” and a wizard guides you through selecting or creating a GPO. This is often easier because it automatically constructs the correct UNC path and validates the printer share.

After linking the GPO, force a Group Policy refresh and printer deployment on a test machine:

Invoke-GPUpdate -Computer "WORKSTATION01" -Force -RandomDelayInMinutes 0

Check that the printer was deployed:

Get-Printer -ComputerName WORKSTATION01 | Select Name, Type

Branch Office Direct Printing

In branch office scenarios, having all print jobs routed through a head-office print server wastes WAN bandwidth — a 20MB print job travels twice over the WAN (once from the client to the server, and again from the server to the branch printer). Windows Server 2022 supports Branch Office Direct Printing, which lets clients in a branch send print jobs directly to the local printer while still using the head-office server for driver delivery and queue management.

Enable branch office direct printing per printer:

Set-Printer -Name "BranchOffice-Printer" -BranchOfficeOffloadEnabled $true

With this enabled, the Windows print spooler on the client computer renders the job locally and sends it directly to the printer’s IP address, bypassing the print server for the data transfer. The server still logs the job and manages the queue metadata.

Internet Printing Protocol (IPP)

With the Internet Printing role installed, clients can connect to printers using HTTP/HTTPS. This is useful for allowing printing from outside the corporate network or for non-Windows clients. The IPP URL format is:

http://printserver.yourdomain.com/printers/FinancePrinter/.printer

Clients navigate to http://printserver.yourdomain.com/printers in a web browser to see the list of available printers and install them. To access printer administration via the web interface, IIS must be running and the Internet Printing role must be configured. Secure IPP connections (IPPS) require an SSL certificate on the IIS site. Configure HTTPS binding for the IPP site in IIS Manager, using a certificate from your internal PKI or a public CA.

Managing Print Queues and Auditing

To list all current print jobs in a queue:

Get-PrintJob -PrinterName "Finance-HP-LaserJet"

To remove a stuck job:

Remove-PrintJob -PrinterName "Finance-HP-LaserJet" -ID 5

If the spooler is completely stuck, restart it:

Restart-Service Spooler

To enable print auditing, configure the Security event log to record print events. Enable “Audit Object Access” in the local or domain security policy, then set auditing on the printer itself. In printmanagement.msc, open printer Properties > Security > Advanced > Auditing tab. Add Everyone or specific groups and enable Success auditing for Print. Print audit events appear in the Security event log as Event ID 307 (a document was printed) with details including the username, document name, printer name, and number of pages. This is valuable for chargeback reporting or investigating printer misuse.