Search code examples
powershelldriverprinters

Enabling specific printer features using PowerShell command


I am seeking assistance regarding a PowerShell command to enable specific features under the "Advance" tab in printer properties. Specifically, I am interested in enabling the "Start printing after last page is spooled" and "Print spooled document first" options. The printer I am working with is named "TestPrinter."

If anyone has experience or knowledge in this area, I would greatly appreciate your guidance. Thank you in advance for any help you can provide.

Feature highlighted on this image for your reference

I'm unable to find codes to enable theses specific features.


Solution

  • This solution works based on the printer's initial starting configuration and those specific settings being set to match as your desired result. This uses Win32_Printer class to set the bool values accordingly.

    $printer = "TestPrinter";
    Get-WmiObject -Class Win32_Printer | Where-Object {$_.Name -eq $printer} | ForEach-Object {
        $_.DoCompleteFirst = $True
        $_.Direct = $False
        $_.Put() | Out-Null
        };
    

    It's worth noting that I cannot quite figure out how to toggle the specific option "Start printing immediately" though unless the initial starting configuration is set as "Print directly to the printer".

    So if your starting configuration is set as "Start printing after last page is spooled" then this is only a partial answer as it does not toggle it with that set initially.

    Notes

    1. A workaround of setting the print processor to a value winprint might help per those being its defaults but I couldn't safely test that in my environment.
    2. The SpoolEnabled is not changeable any longer if it's even applicable in that specific configuration.

    Supporting Resources