Netzwerkdrucker finden und feststellen ob sie angeschaltet sind
Hallo
mein Titel ist vielleicht nicht so aussagekräftig, aber mir ist nichts besseres eingefallen.
Ich habe im Netzwerk (Windows XP Rechner) mehrere Drucker die an einem PC angeschlossen sind und dort per Drucker Freigabe im Netz zu erreichen sind.
(die Drucker sind keine eigenständigen Netzwerkdrucker).
Nun passiert es das jemand einen Drucker ausschaltet und dann beschweren sich die Leute das sie nicht drucken können.
Meine ist nun ob man per script, wmi oder batch feststellen kann ob die entfernten Drucker noch laufen? Dann könnte man ein kleines Symbol im Systemtray einblenden lassen wie eine Ampel grün Drucker laufen, gelb, Rechner läuft aber Drucker sind aus, Rot Rechner selbst ist nicht erreichbar.
Ich denke die Drucker von der entfernung einzuschalten wird bei den wenigsten Druckern funktionieren, aber dann wäre schon mal eine Info da.
Gib es für sowas einen Ansatzpunkt?
Leider kenne ich mich mit WMI oder solchen Sachen gar nicht aus.
Es wäre super wenn mir da jemand helfen könnte.
Vielen Dank schon mal im voraus
Seaquest30
mein Titel ist vielleicht nicht so aussagekräftig, aber mir ist nichts besseres eingefallen.
Ich habe im Netzwerk (Windows XP Rechner) mehrere Drucker die an einem PC angeschlossen sind und dort per Drucker Freigabe im Netz zu erreichen sind.
(die Drucker sind keine eigenständigen Netzwerkdrucker).
Nun passiert es das jemand einen Drucker ausschaltet und dann beschweren sich die Leute das sie nicht drucken können.
Meine ist nun ob man per script, wmi oder batch feststellen kann ob die entfernten Drucker noch laufen? Dann könnte man ein kleines Symbol im Systemtray einblenden lassen wie eine Ampel grün Drucker laufen, gelb, Rechner läuft aber Drucker sind aus, Rot Rechner selbst ist nicht erreichbar.
Ich denke die Drucker von der entfernung einzuschalten wird bei den wenigsten Druckern funktionieren, aber dann wäre schon mal eine Info da.
Gib es für sowas einen Ansatzpunkt?
Leider kenne ich mich mit WMI oder solchen Sachen gar nicht aus.
Es wäre super wenn mir da jemand helfen könnte.
Vielen Dank schon mal im voraus
Seaquest30
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 58894
Url: https://administrator.de/contentid/58894
Ausgedruckt am: 22.11.2024 um 06:11 Uhr
11 Kommentare
Neuester Kommentar
Hi!
folgender Code funktioniert nur bei XP-Rechnern. (wg. WorkOffline)
Wenn jemand eine andere Idee hat, nur raus damit. (z.B. Anzahl der Druckaufträge im Spooler >0 dann ist der Drucker offline?!?)
Anstatt dem "." müsste man nur noch den Rechnernamen einsetzen, da ansonsten nur der lokale Rechner abgefragt wird...
Hoffe es funktioniert, da ichs nur fix eben "hingezaubert" hab
Gruß
Markus
folgender Code funktioniert nur bei XP-Rechnern. (wg. WorkOffline)
Wenn jemand eine andere Idee hat, nur raus damit. (z.B. Anzahl der Druckaufträge im Spooler >0 dann ist der Drucker offline?!?)
Anstatt dem "." müsste man nur noch den Rechnernamen einsetzen, da ansonsten nur der lokale Rechner abgefragt wird...
set strComputer="."
Set objWMIService = GetObject("winmgmts:\\" & strComputer & "\root\CIMV2")
Set colInstalledPrinters = objWMIService.ExecQuery("Select * from Win32_Printer")
For Each objPrinter in colInstalledPrinters
WScript.Echo objPrinter.ServerName & ": " & objPrinter.WorkOffline
Next
Hoffe es funktioniert, da ichs nur fix eben "hingezaubert" hab
Gruß
Markus
Hi nochmal,
also ich denke, dass dein eigentliches Ziel an der ganzen Sache ist, dass Du siehst, ob ein Drucker auf einem Rechner online ist oder nicht. Dementsprechend kannst du auch herausfinden, ob evtl. Druckaufträge auf dem Rechner vorhanden sind. Kommt der Sache eigentlich recht nah
Also hier die Möglichkeit, um die Anzahl aller Druckaufträge in der Printqueue eines Rechners zu ermitteln.
also ich denke, dass dein eigentliches Ziel an der ganzen Sache ist, dass Du siehst, ob ein Drucker auf einem Rechner online ist oder nicht. Dementsprechend kannst du auch herausfinden, ob evtl. Druckaufträge auf dem Rechner vorhanden sind. Kommt der Sache eigentlich recht nah
Also hier die Möglichkeit, um die Anzahl aller Druckaufträge in der Printqueue eines Rechners zu ermitteln.
Set objNetwork = WScript.CreateObject("WScript.Network")
strComputer = objNetwork.ComputerName
wscript.echo strcomputer
Set objWMIService = GetObject("winmgmts:\\" & strComputer & "\root\CIMV2")
Set colInstalledPrinters = objWMIService.ExecQuery("SELECT * FROM Win32_PrintJob", "WQL", _
wbemFlagReturnImmediately + wbemFlagForwardOnly)
i=0
for each colItem in colInstalledPrinters
i=i+1
next
wscript.echo "Anzahl aller Printjobs auf dem Rechner " & strComputer & ": " & i