gruenesossemitspeck
Goto Top

Powershell - Papierformate eines Druckers auflisten

der Titel ist schon mein Problem - eine von mir supportete Software findet die Papierformate eines über eine Druckerumleitung in der RDP Sitzung sichtbaren Druckers nicht. Ist eine 32 Bit Software, c++ und c#

Um der Sache etwas auf den Grund zu gehen wollte ich ein Powershell Skript nutzen, um die Drucker-Papierformante aufzulisten, aber Google und Bing führen mich irgendwie in die Irre.

Es gibt zwar das hier:

Get-Printer | Get-PrintConfiguration | foreach-object { Write-Host $_.PrinterName: $_.PaperSize }

aber da kriege ich z.B. nur ein Papierformat aufgelistet, nämlich das, was irgendwo in Windows als Standard auftaucht.

PDF-XChange Standard : A4
HP Color laser jet via MS PS class printer driver : A4

Die Papiergrößen, die der Druckern beherrscht enthalten zwar A4, nur welche noch? Wie kriegt man das raus?

Get-Printerconfiguration wiederum kennt den Parameter Papersize nicht...

Setzen kann man das mit Set-PrinterConfiguration, aber in Windows 10 gibts so um die 50 Papierformatnamen und man kann auch welche hinzufügen.

Content-Key: 6908567957

Url: https://administrator.de/contentid/6908567957

Printed on: April 27, 2024 at 10:04 o'clock

Member: em-pie
em-pie Apr 25, 2023 at 10:58:21 (UTC)
Goto Top
Moin,

Die Papiergrößen, die der Druckern beherrscht enthalten zwar A4, nur welche noch? Wie kriegt man das raus?
Eigentlich kann Windows nur das ermitteln, was der Treiber dem Drucker entlocken konnte. Denn gerade bei MFPs hängt das ja von den zusätzliche Baugruppen/ Erweiterungen hab.
Ein Drucker X kann es ja mit noch 3 Weiteren Papierschächten geben...

Du kommst eigentlich nur per SNMP dran. ggf. kannst du des noch per WMI versuchen.
Spannend wird es aber hierbei:
... über eine Druckerumleitung in der RDP Sitzung sichtbaren Druckers ...
Mitglied: 6247018886
Solution 6247018886 Apr 25, 2023 updated at 11:27:04 (UTC)
Goto Top
PrintCapabilities are your best friends ...
$printerName = "HP Laserjet 1320"  
Add-Type -AssemblyName System.Printing
$server = new-object System.Printing.LocalPrintServer ([System.Printing.PrintSystemDesiredAccess]::EnumerateServer)
$server.GetPrintQueues() | ?{$_.Name -eq $printerName} | %{
    $objPrinter = [System.Printing.PrintQueue]::new($server,$_.Name,([System.Printing.PrintSystemDesiredAccess]::UsePrinter))
    $objPrinter.GetPrintCapabilities().PageMediaSizeCapability
}

 ...
               PageMediaSizeName            Width           Height
                -----------------            -----           ------
               NorthAmericaLetter              816             1056
                NorthAmericaLegal              816             1344
            NorthAmericaStatement              528              816
            NorthAmericaExecutive 695,811023622047             1008
                            ISOA4 793,700787401575 1122,51968503937
                            ISOA5 559,370078740158 793,700787401575
                            JISB5 687,874015748032 971,338582677165
                 OtherMetricFolio              816             1248
               NorthAmericaQuarto  812,59842519685 1039,37007874016
                 NorthAmericaNote              816             1056
      NorthAmericaNumber9Envelope 371,905511811024 851,905511811024
     NorthAmericaNumber10Envelope 395,716535433071              912
     NorthAmericaNumber11Envelope              432 995,905511811024
     NorthAmericaNumber12Envelope 455,811023622047             1056
     NorthAmericaNumber14Envelope              480             1104
                    ISODLEnvelope 415,748031496063 831,496062992126
                    ISOC5Envelope 612,283464566929 865,511811023622
                    ISOC6Envelope 430,866141732283 612,283464566929
                  ISOC6C5Envelope 430,866141732283 865,511811023622
                    ISOB5Envelope 665,196850393701  944,88188976378
       OtherMetricItalianEnvelope 415,748031496063 869,291338582677
      NorthAmericaMonarchEnvelope 371,905511811024              720
.....
...
..
Größenangaben sind 1/96 Zoll Umrechnung in mm => (Width / 96) * 25.4

Cheers briggs