5. Windows 8/8.1/10/Server 2012/2016 An die Drucker mit PowerShell
Die aktuellen Versionen der PowerShell bieten durch das Print-Management-Modul viele Möglichkeiten, direkt auf Drucker und deren Ressourcen zuzugreifen. Wir stellen einige Möglichkeiten beispielhaft vor.
Mussten Administratoren bei früheren Versionen der PowerShell auf WMI mittels Aufrufen wie Get-WMIObject -Class Win32_Printer auf die Drucker zugreifen, so steht ihnen seit Windows 8 das Modul Printmanagement zur Verfügung. Wer wissen will, welche Cmdlets er dabei nutzen kann, sollte zunächst einmal das folgende Kommando aufrufen: Get-Command -Modul PrintManagement Wenn Sie gerade auf einer Client-Workstation tätig sind, zeigt ihnen beispielsweise der Aufruf: Get-Printer | select printerstatus, name, computername alle auf diesem Rechner installierten Drucker an. Dabei werden sowohl „echte“als auch virtuelle Drucker, wie sie beispielsweise von OneNote oder einigen PDF-Programmen eingerichtet werden, auf dem Bildschirm angezeigt. Durch die Weiterleitung zum Select-Objekt werden die gewünschten Eigenschaften – in diesem Fall der Name des Druckers und der Name des Systems, falls der Zugriff beispielsweise über einen Print-Server erfolgt – direkt angezeigt. Auch die auf einem System installierten Druckertreiber können recht einfach abgefragt werden. Dazu kommt das folgende Cmdlet zum Einsatz: Get-Printdriver Bei dieser allgemeinen Art des Aufrufs werden alle auf dem System installierten Druckertreiber aufgelistet. Dabei zeigt das Cmdlet standardmäßig neben dem Printer-Environment (Beispiel: Windows x64) auch den Hersteller des Treibers an. Wer noch genaurere Informationen zu den installierten Druckertreibern benötigt, kann beispielsweise den folgenden Aufruf dazu einsetzen: Get-Printdriver -Name "Drucker_Name" | formatlist Mit dem Cmdlet Get-PrintProperty (das mit Administratorrechten aussgeführt werden muss) und einer ForEach-Schleife können Sie sich dann beispielsweise auch die Eigenschaften für alle installierten Drucker anzeigen lassen: $drucker =get-printer Foreach ($druck in $drucker) { get-printerproperty –printerName $druck.name } Dieser Aufruf bringt alle Drucker in die Variable $drucker, durchläuft in der Foreach- Schleife alle gefundenen Drucker und zeigt dann deren Eigenschaften auf dem Bildschirm an.