Ich habe Probleme beim Auflisten aller Drucker auf einem Computer mit Powershell.
Wir haben ein Batch-Skript, das Drucker pro Computer mithilfe von PrintUI hinzufügt / entfernt / auflistet.
Ich kann PrintUI verwenden, um die Drucker aufzulisten.
rundll32 printui.dll,PrintUIEntry /ge /c"%UNC-NAME%"
Dadurch werden nur die Drucker pro Computer aufgelistet, während ...
Get-WMIObject -Class Win32_Printer -ComputerName $ComputerName
listet alle Drucker in WMI auf.
Im obigen Beispiel habe ich ein System mit 3 Druckern, wenn ein Benutzer angemeldet ist. WMI siehe 2 davon, PrintUI siehe 1.
Ich bin verblüfft, wie ich sie ALLE auflisten kann! Damit kann ich sowohl "pro Computer" als auch "lokale" Drucker per Skript überwachen / hinzufügen / entfernen
powershell
printing
wmi
Schlauge
quelle
quelle
rundll32 printui.dll,PrintUIEntry /ga /c\\PCName /n\\PrintSpooler\P23S
wird der Netzwerkdrucker für alle Benutzer verfügbar, die sich anmelden zu PCNAMEAntworten:
Get-Shared-Drucker
Holen Sie sich keine freigegebenen Drucker
Holen Sie sich zugeordnete Drucker
Holen Sie sich alle Drucker
quelle
Aus irgendeinem seltsamen Grund können diese Befehle keine Drucker sehen, die in einem Benutzerkontext zugeordnet sind. Wie in einer anderen Frage zu finden ist, durchsucht der folgende Code die Registrierung nach allen Benutzerkonten und allen Listendruckern für alle Benutzer.
Listen Sie alle Drucker für alle Benutzer auf.
HINWEIS : Benötigt WinRM
quelle