Set Printer Settings with Script

$PrinterName = "Your-Ricoh-Printer-Name"
Set-PrintConfiguration -PrinterName $PrinterName -Color $false -DuplexingMode "OneSided"

Scott’s Script for Indeed’s Printers

Didn’t work

<#
.SYNOPSIS
    Forces the default print configuration for all installed printers to Monochrome (B&W).
 
.DESCRIPTION
    Iterates every printer on the machine and sets its default PrintConfiguration
    Color property to $false using the built-in PrintManagement module.
    Skips virtual/software "printers" that don't have real color settings
    (PDF writers, XPS, Fax, OneNote, etc.) since setting color on those either
    fails or does nothing useful.
 
    NOTE: This sets the *default* the driver hands to applications. It is not an
    absolute hard block — an application (or user) that explicitly requests color
    in the print dialog can still override it, and this depends on the driver
    correctly honoring the DEVMODE color flag. In practice the vast majority of
    business printer drivers (HP, Brother, Kyocera, Xerox, Ricoh, Canon, etc.)
    respect this setting reliably.
 
.NOTES
    Run as SYSTEM / elevated (e.g. via NinjaOne script deployment) so it applies
    to machine-wide printer objects rather than just the interactively logged
    on user's mapped printers.
#>
 
[CmdletBinding()]
param(
    # Add any printer name patterns here you want to skip (wildcards allowed)
    [string[]]$ExcludePatterns = @(
        'Microsoft Print to PDF',
        'Microsoft XPS Document Writer',
        'Fax',
        'OneNote*',
        'Send To OneNote*',
        'Adobe PDF'
    )
)
 
$results = [System.Collections.Generic.List[pscustomobject]]::new()
 
# Make sure the PrintManagement module is available (built into Windows 10/11 & Server)
if (-not (Get-Module -ListAvailable -Name PrintManagement)) {
    Write-Error "PrintManagement module not found on this system. Aborting."
    exit 1
}
Import-Module PrintManagement -ErrorAction Stop
 
$printers = Get-Printer | Where-Object {
    $name = $_.Name
    -not ($ExcludePatterns | Where-Object { $name -like $_ })
}
 
if (-not $printers) {
    Write-Output "No eligible physical printers found."
    exit 0
}
 
foreach ($printer in $printers) {
    $entry = [pscustomobject]@{
        PrinterName = $printer.Name
        Status      = ''
        Detail      = ''
    }
 
    try {
        # Check current config first (some drivers don't expose Color at all)
        $config = Get-PrintConfiguration -PrinterName $printer.Name -ErrorAction Stop
 
        if ($null -eq $config.Color) {
            $entry.Status = 'Skipped'
            $entry.Detail = 'Driver does not expose a Color setting'
        }
        elseif ($config.Color -eq $false) {
            $entry.Status = 'AlreadyMono'
            $entry.Detail = 'Already set to monochrome'
        }
        else {
            Set-PrintConfiguration -PrinterName $printer.Name -Color $false -ErrorAction Stop
            $entry.Status = 'Updated'
            $entry.Detail = 'Set to monochrome'
        }
    }
    catch {
        $entry.Status = 'Failed'
        $entry.Detail = $_.Exception.Message
    }
 
    $results.Add($entry)
}
 
$results | Format-Table -AutoSize | Out-String | Write-Output
 
$failed = $results | Where-Object { $_.Status -eq 'Failed' }
if ($failed) {
    Write-Warning "$($failed.Count) printer(s) failed to update. See table above."
    exit 1
}
 
Write-Output "Done. $($results.Count) printer(s) evaluated."

Followup

Scott’s script hits every printer via Get-Printer/PrintManagement, which only touches locally-installed printer objects — if Indeed’s printers are shared/network queues that this machine doesn’t have locally installed (or if the driver reports Color as $null, hitting the Skipped branch), the script would run clean but silently do nothing. Worth re-running with the try/catch removed temporarily, or just checking Get-PrintConfiguration output per-printer first, to see whether it’s actually landing in Skipped vs Failed vs not finding the printers at all.

The one-liner version above sets DuplexingMode too, which Scott’s loop doesn’t touch — if the goal for Indeed is mono and duplex, that’s a second gap even if the color part gets sorted.