共用PCのプリンター設定を一括変更するときは、「全ユーザー向けのグローバル既定値」と「各ユーザーが保存した印刷設定」を分けて考えます。管理者がプリンタープロパティの「詳細設定」タブにある「標準の設定」または「Printing Defaults」を変更すると、そのキューのグローバル既定値を更新できます。ただし、既にユーザー別の印刷設定やアプリ固有の設定が保存されていれば、そちらが優先される場合があります。したがって、一括変更は全プロファイルの値を強制上書きする操作ではなく、安全な共通ベースラインの変更です。
「標準の設定」と「基本設定」の違い
Windowsの印刷スプーラーには、管理者が設定するグローバルなプリンター既定値と、ユーザーごとの既定値があります。Microsoftの印刷APIでは、前者をPRINTER_INFO_8、後者をPRINTER_INFO_9として区別しています。日本語UIではドライバーにより「標準の設定」「印刷の既定値」、英語では「Printing Defaults」と表示されます。一方、通常の「印刷設定」「基本設定」「Printing preferences」は現在のユーザー用です。
- 標準の設定:管理者がそのプリンターキューの基準値を設定する。新しいユーザーやユーザー独自値がない項目の土台になる
- 基本設定・印刷設定:サインイン中のユーザーが自分用に保存する。グローバル値より優先されることがある
- アプリ内の印刷ダイアログ:その文書またはそのアプリだけの指定になり、Windows側の既定を一時的に上書きすることがある
- 既定のプリンター:どのキューを最初に選ぶかというユーザー別設定で、両面やカラーの既定値とは別の概念
この区別をせず、全ユーザーのレジストリハイブを読み込んで直接書き換える方法は採りません。サインインしていないユーザーのプロファイルを壊す、プロファイルコンテナーと競合する、ドライバー更新後に値が無効になるといった危険があるためです。
対象キューと現在値を記録する
まず共用PCへ管理者でサインインし、対象がローカルTCP/IPキューなのか、プリントサーバーの共有キューなのかを確認します。共有キューの基準値を組織全体へ配るなら、クライアントPCではなくプリントサーバー側のキューが管理対象です。クライアントで同名のローカルキューを変更しても、別ユーザーが接続する共有キューには反映されません。
Get-Printer | Select-Object Name, Type, DriverName, PortName, Shared, ShareName
Get-PrintConfiguration -PrinterName '対象キュー名' | Format-List *
これは読み取り専用の確認です。出力には用紙、カラー、両面、N-up、PrintTicket XMLなどが含まれます。変更前の結果を承認済みの管理記録へ保存し、ドライバー独自画面にしか出ない給紙トレイ、ステープル、認証コードなどは画面値も記録します。PrintTicketには環境固有情報が含まれる場合があるため、公開場所へ貼り付けません。
画面から全ユーザー向け既定値を変更する
Windows 11では「設定」→「Bluetoothとデバイス」→「プリンターとスキャナー」から対象プリンターを選び、「プリンターのプロパティ」を開きます。導線が見つからない場合は、WindowsキーとRキーで「ファイル名を指定して実行」を開き、control printers を実行すると従来の「デバイスとプリンター」へ移動できます。対象キューを右クリックし、「プリンターのプロパティ」を選びます。「プロパティ」ではなく、ユーザー用の「印刷設定」を選ばないことが重要です。
- 「詳細設定」タブを開き、「標準の設定」または「印刷の既定値」を選びます。
- 用紙サイズ、両面、カラー、給紙トレイなど、組織で統一する項目だけを変更します。部門ごとに異なる認証コードや個人情報を共通値へ入れません。
- 「適用」を選び、一度ダイアログを閉じてから再度開き、値が保持されたことを確認します。
- 管理者用とは別の一般ユーザーでサインインし、新規文書の印刷ダイアログとテスト印刷を確認します。
- 既存ユーザーの値が変わらない場合は、そのユーザーの「印刷設定」に明示的な上書きがあるか確認します。
「標準の設定」ボタンがない場合は、管理権限不足、ドライバーの種類、Print Support Appによる管理、共有キュー側でのみ変更可能といった理由が考えられます。ボタンを出すためにセキュリティ記述子やレジストリを直接変更せず、プリントサーバー管理者とドライバーの公式管理方法を確認します。
PowerShellで変更できる範囲
同じ設定を多数の管理対象PCへ配る場合、PrintManagementモジュールのSet-PrintConfigurationを使えます。Microsoftの現行仕様では管理者資格情報が必要で、主に用紙、カラー、両面、部単位、N-up、PrintTicket XMLを扱います。ドライバー固有の全項目を必ず操作できるわけではありません。最初にWhatIfで対象名と変更内容を確認し、検証端末の1キューへ限定します。
Get-PrintConfiguration -PrinterName 'Shared-PC-Printer'
Set-PrintConfiguration -PrinterName 'Shared-PC-Printer' -PaperSize A4 -DuplexingMode TwoSidedLongEdge -WhatIf
Set-PrintConfiguration -PrinterName 'Shared-PC-Printer' -PaperSize A4 -DuplexingMode TwoSidedLongEdge
Get-PrintConfiguration -PrinterName 'Shared-PC-Printer'
WhatIfの確認後にだけ実変更を行います。プリンター名へワイルドカードは使えません。全プリンターをループして一律変更する例は、ラベルプリンターや領収書プリンターまでA4・両面にする危険があるため既定手順にしません。対象リストを資産台帳と照合し、機種別に設定可能値を確認してから段階配布します。
反映されないときに見る場所
- 特定ユーザーだけ違う:そのユーザーの「印刷設定」に保存されたPRINTER_INFO_9相当の値、またはアプリの文書設定を確認する
- 全ユーザーで変わらない:変更したキュー名、共有元、ドライバー名が実際の印刷先と一致するか確認する
- 設定項目が消える:ドライバー更新、汎用ドライバーへの切り替え、Print Support Appの未導入を確認する
- 再接続で元へ戻る:プリントサーバー側の既定値、キュー再展開のポリシー、端末管理ツールの構成を確認する
- アプリだけ違う:テンプレート、文書に保存された用紙設定、アプリが最後に使った値を確認する
- 設定変更が拒否される:Manage Printers権限を持つ承認済み管理者で行い、権限緩和で回避しない
検証とロールバック
新規ユーザー、既存ユーザー、代表的な業務アプリの3条件で、印刷前プレビューと少量のテスト印刷を確認します。用紙切れを避けるため、給紙トレイと用紙種類も実機側の設定と一致させます。問題が出たら、変更前に記録した値を「標準の設定」へ戻すか、保存したPrintTicketを承認済み手順で復元します。既存ユーザーの個別設定を削除して初期化する方法は、本人の作業環境を失わせるため一括では実施しません。
なお「全ユーザーが使う既定のプリンターそのもの」を変える要件は別です。MicrosoftのSetDefaultPrinter APIも現在のユーザーを対象にするため、端末のグローバル印刷既定値とは同じ扱いにできません。組織のプリンター配布ポリシーやIntune、グループポリシーのユーザー割り当てとして設計し、ドライバー設定の変更と混在させないでください。

コメント