pf4
Goto Top

Druckerpfad via vbscript auslesen

Hallo zusammen,

ich suche eige möglichkeit via vbscript den Druckerpfad im Netzwerk auszulesen \\server\druckersharename. Hab es schon mit WMI und mit WScript.Network Objekt probiert aber diese geben mit entweder nur den druckersharename(brauche es MIT dem Server) oder eben \\server\Druckername aus.
Kennt jemand eine möglichkeit dieses richtig auszulesen?

Kleines Beispiel:
Ich brauche:
\\server06\kyor54
Ich bekomme immer
\\server06\Kyocera 5400 an XYZ

beides der selbe Drucker aber eben kann ich mit dem 2 in meinem Script nichts anfangen

mfg
PF4

Content-Key: 35991

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

Ausgedruckt am: 28.03.2024 um 13:03 Uhr

Mitglied: AndreasHoster
AndreasHoster 24.07.2006 um 09:34:55 Uhr
Goto Top
On Error Resume Next
strComputer = "."
Set objWMIService = GetObject("winmgmts:\\" & strComputer & "\root\cimv2")
Set colItems = objWMIService.ExecQuery("Select * from Win32_Printer",,48)
For Each objItem in colItems
Wscript.Echo "Name: " & objItem.Name
Wscript.Echo "ServerName: " & objItem.ServerName
Wscript.Echo "Network: " & objItem.Network
Wscript.Echo "ShareName: " & objItem.ShareName
Next

Name gibt den kompletten Namen an \\server\druckersharename
ServerName den Namen des Servers, ShareName den Namen des Druckershares und Network ob es ein Netzdrucker ist.
Vom Client aus, hast Du keine Chance rauszubekommen, wie der Druckername auf dem Server ist, Du siehst nur den Sharenamen (aber wenn die unterschiedlich sind, läuft organisatorisch was falsch bei Euch).
Ich bekomme damit jedenfalls kein "Drucker an Server" sondern das normale \\server\drucker Ergebnis.
Mitglied: Biber
Biber 24.07.2006 um 10:50:22 Uhr
Goto Top
Moin PF4 und AndreasHoster,

das stimmt so nicht ganz IMHO.

Mit einer kleinen Änderung (Auswerten oPrinter.DriverName) geht es:
'snipp Quickprinterlist.vbs  
On Error Resume Next
strComputer = "."  
Set objWMIService = GetObject("winmgmts:\\" & strComputer & "\root\cimv2")  
Set colItems = objWMIService.ExecQuery("Select * from Win32_Printer",,48)  
For Each objItem in colItems
   Wscript.Echo vbCrLf & "Name: " & objItem.Name  
   Wscript.Echo "DriverName: " & objItem.Drivername  
   If objItem.Network = TRUE then
      Wscript.Echo "ServerName\Sharename: " & objItem.ServerName &"\" &objItem.ShareName   
   End if    
Next
'-------snapp Quickprinterlist.vbs  

Gruß
Biber
Mitglied: AndreasHoster
AndreasHoster 24.07.2006 um 11:52:32 Uhr
Goto Top
Sorry, aber DriverName gibt nicht den Namen des Druckers auf dem Server an, sondern den Namen des Treibers, der von diesem Drucker verwendet wird (In der graphischen Oberfläche: Eigenschaften des Druckers, Reiter Erweitert, Feld Treiber).
Mitglied: Biber
Biber 24.07.2006 um 12:00:20 Uhr
Goto Top
@AndreasHoster

...na, dann hab ich wohl was verkehrt gemacht...
Bei mir wird auf dem Bildschirm ausgegeben:

...
Name: PDF-ConverterPro
DriverName: PDF-ConverterPro

Name: \\SERVERXY00021\PRINTER000033
DriverName: HP LaserJet 5N
ServerName\Sharename: \\SERVERXY00021\PRINTER000033

Name: \\SERVERXY00023\PRINTER000036
DriverName: HP Color LaserJet 4550 PCL 6
ServerName\Sharename: \\SERVERXY00023\PRINTER000036
...

Und für mich klingt das schon wie der gesuchte "Kyocera 5400" an ...Lauchkartoffeln oder was immer.

War ja nur eine Idee. face-wink
Gruß
Biber
[Edit]
Stimmt, @AndreasHoster... den Namen des Druckers auf dem Server kann ich nicht bekommen...
... wie sollte das auch gehen?
Hab die Frage falsch verstanden... sorry, die sommerliche Wärme...
[/Edit]