Welcher (lokale) Drucker verwendet welchen Treiber (inkl. Version und SupportedPlatform)
Hallo Leute,
ich bin gerade dabei , für eine Server 2008 R2-Domänenumbegung ein Skript zum Löschen nicht mehr benötigter Druckertreiber (als Startup-Skript, clientseitig) zu entwerfen.
Nehmen wir nun an, ich möchte einen Treiber löschen, der bisher von einem verknüpften Drucker genutzt wurde (nun aber nicht mehr benötigt wird, z.B. weil ein neuer Treiber auf dem Druckserver bereitgestellt wird).
Dieser Treiber soll aber nur gelöscht werden, falls kein lokal installierter Drucker diesen Treiber noch benutzt.
Folglich muss erst festgestellt werden, welche Drucker welchen Treiber benutzen.
Ich kann nun zwar die Drucker und deren Treiber auflisten, allerdings fehlen dann die Infos zu
Version und SupportedPlatform (brauche ich aber, denn theoretisch kann auf einem System der 32- und 64-bit Treiber installiert sein):
Die Eigenschaft "Version" gibt die Versionsnummer des Betriebssystems an, für den dieser Treiber bestimmt ist.
Die Eigenschaft "SupportedPlatform" gibt die Betriebssysteme an, für die dieser Treiber bestimmt ist.
Beispiele: Windows NT x86 oder Windows IA64 oder Windows x64
Ebenso kann ich alle Treiber auflisten lassen, mit den Infos zu Version und SupportedPlatform, dann fehlen aber wieder die Infos, welche Drucker diese Treiber nutzen. Mir ist klar, dass ich in einem Startup-Skript nicht feststellen kann, welche verknüpften Drucker welchen Treiber benutzen, bei den lokalen Druckern ist dies jedoch möglich.
Wie kann ich nun also, zumindest für lokale Drucker, eine Liste erstellen die ungefähr so aussieht?:
Druckername;Treiber
HP Laserjet 4200;HP LaserJet 4200 PCL 5e,3,Windows NT x86
An OneNote 2010 senden;Send To Microsoft OneNote 2010 Driver,3,Windows NT x86
Danke für eure Hilfe!
ich bin gerade dabei , für eine Server 2008 R2-Domänenumbegung ein Skript zum Löschen nicht mehr benötigter Druckertreiber (als Startup-Skript, clientseitig) zu entwerfen.
Nehmen wir nun an, ich möchte einen Treiber löschen, der bisher von einem verknüpften Drucker genutzt wurde (nun aber nicht mehr benötigt wird, z.B. weil ein neuer Treiber auf dem Druckserver bereitgestellt wird).
Dieser Treiber soll aber nur gelöscht werden, falls kein lokal installierter Drucker diesen Treiber noch benutzt.
Folglich muss erst festgestellt werden, welche Drucker welchen Treiber benutzen.
Ich kann nun zwar die Drucker und deren Treiber auflisten, allerdings fehlen dann die Infos zu
Version und SupportedPlatform (brauche ich aber, denn theoretisch kann auf einem System der 32- und 64-bit Treiber installiert sein):
Die Eigenschaft "Version" gibt die Versionsnummer des Betriebssystems an, für den dieser Treiber bestimmt ist.
- 0 Win9x
- 1 Win351
- 2 NT40
- 3 Win2k
Die Eigenschaft "SupportedPlatform" gibt die Betriebssysteme an, für die dieser Treiber bestimmt ist.
Beispiele: Windows NT x86 oder Windows IA64 oder Windows x64
' List Printer Connections
strComputer = "."
Set objWMIService = GetObject("winmgmts:" _
& "{impersonationLevel=impersonate}!\\" & strComputer & "\root\cimv2")
Set colInstalledPrinters = objWMIService.ExecQuery _
("Select * from Win32_Printer")
For Each objPrinter in colInstalledPrinters
Wscript.Echo "Name: " & objPrinter.Name
Wscript.Echo "Treiber-Name: " & objPrinter.DriverName
Next
Ebenso kann ich alle Treiber auflisten lassen, mit den Infos zu Version und SupportedPlatform, dann fehlen aber wieder die Infos, welche Drucker diese Treiber nutzen. Mir ist klar, dass ich in einem Startup-Skript nicht feststellen kann, welche verknüpften Drucker welchen Treiber benutzen, bei den lokalen Druckern ist dies jedoch möglich.
' List Printer Drivers
strComputer = "."
Set objWMIService = GetObject("winmgmts:" _
& "{impersonationLevel=impersonate}!\\" & strComputer & "\root\cimv2")
Set colInstalledPrinters = objWMIService.ExecQuery _
("Select * from Win32_PrinterDriver")
For each objPrinterDriver in colInstalledPrinters
Wscript.Echo "Name: " & objPrinterDriver.Name
Wscript.Echo "Supported Platform: " & objPrinterDriver.SupportedPlatform
Wscript.Echo "Version: " & objPrinterDriver.Version
Next
Wie kann ich nun also, zumindest für lokale Drucker, eine Liste erstellen die ungefähr so aussieht?:
Druckername;Treiber
HP Laserjet 4200;HP LaserJet 4200 PCL 5e,3,Windows NT x86
An OneNote 2010 senden;Send To Microsoft OneNote 2010 Driver,3,Windows NT x86
Danke für eure Hilfe!
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 187404
Url: https://administrator.de/contentid/187404
Ausgedruckt am: 23.11.2024 um 02:11 Uhr
1 Kommentar