Top-Themen

AppleEntwicklungHardwareInternetLinuxMicrosoftMultimediaNetzwerkeOff TopicSicherheitSonstige SystemeVirtualisierungWeiterbildungZusammenarbeit

Aktuelle Themen

Administrator.de FeedbackApache ServerAppleAssemblerAudioAusbildungAuslandBackupBasicBatch & ShellBenchmarksBibliotheken & ToolkitsBlogsCloud-DiensteClusterCMSCPU, RAM, MainboardsCSSC und C++DatenbankenDatenschutzDebianDigitiales FernsehenDNSDrucker und ScannerDSL, VDSLE-BooksE-BusinessE-MailEntwicklungErkennung und -AbwehrExchange ServerFestplatten, SSD, RaidFirewallFlatratesGoogle AndroidGrafikGrafikkarten & MonitoreGroupwareHardwareHosting & HousingHTMLHumor (lol)Hyper-VIconsIDE & EditorenInformationsdiensteInstallationInstant MessagingInternetInternet DomäneniOSISDN & AnaloganschlüsseiTunesJavaJavaScriptKiXtartKVMLAN, WAN, WirelessLinuxLinux DesktopLinux NetzwerkLinux ToolsLinux UserverwaltungLizenzierungMac OS XMicrosoftMicrosoft OfficeMikroTik RouterOSMonitoringMultimediaMultimedia & ZubehörNetzwerkeNetzwerkgrundlagenNetzwerkmanagementNetzwerkprotokolleNotebook & ZubehörNovell NetwareOff TopicOpenOffice, LibreOfficeOutlook & MailPapierkorbPascal und DelphiPeripheriegerätePerlPHPPythonRechtliche FragenRedHat, CentOS, FedoraRouter & RoutingSambaSAN, NAS, DASSchriftartenSchulung & TrainingSEOServerServer-HardwareSicherheitSicherheits-ToolsSicherheitsgrundlagenSolarisSonstige SystemeSoziale NetzwerkeSpeicherkartenStudentenjobs & PraktikumSuche ProjektpartnerSuseSwitche und HubsTipps & TricksTK-Netze & GeräteUbuntuUMTS, EDGE & GPRSUtilitiesVB for ApplicationsVerschlüsselung & ZertifikateVideo & StreamingViren und TrojanerVirtualisierungVisual StudioVmwareVoice over IPWebbrowserWebentwicklungWeiterbildungWindows 7Windows 8Windows 10Windows InstallationWindows MobileWindows NetzwerkWindows ServerWindows SystemdateienWindows ToolsWindows UpdateWindows UserverwaltungWindows VistaWindows XPXenserverXMLZusammenarbeit

Netzwerkdrucker finden und feststellen ob sie angeschaltet sind

Frage Microsoft Windows Netzwerk

Mitglied: seaquest30

seaquest30 (Level 1) - Jetzt verbinden

13.05.2007, aktualisiert 21.05.2007, 6292 Aufrufe, 11 Kommentare

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
Mitglied: Dynadrate
13.05.2007 um 13:26 Uhr
Man könnte ein VB Programm schreiben, dass die Drucker anpingt.
Meine Erfahrung: Wenn die User allerdings nicht einmal nachschauen, ob der Drucker angeschaltet ist, werden Sie auch keine Ampel im Tray beachten und weiter anrufen ;)
Bitte warten ..
Mitglied: Ultraschnecke
13.05.2007 um 13:44 Uhr
Der Ping wird Dir nicht viel bringen, da der Ping nur den Rechner erreicht an dem die Drucker angeschlossen sind. Der Ping kann dir nur Aussage darüber geben, ob der Rechner erreichbar ist.

Kann man evtl. bestimmte Eigenschaften des Druckers abfragen? Wie z.B. Restpapiermenge oder Tonerstatus?

Gruß
Bitte warten ..
Mitglied: seaquest30
13.05.2007 um 13:57 Uhr
Das mit dem Ping ist wirklich nur für den Rechner. Deshalb schrieb ich das es keine echten Netzwerkdrucker sind die eine eigene IP besitzen. Wäre dem so wäre es einfach.
Und das mit dem angeschaltet. Die Drucker sind räumlich getrennt deshalb ist das mit demnachsehen nicht ganz einfach.


Mhh ob ich so was wie den Tonerstatus abfragen kann weiß ich nicht auswendig, aber ich denke lokal habe ich ja schon zugriff auf die Eigenschaften des jeweiligen Druckers nur wie bekomme ich das hin das das auch von einer entfernten Workstation aus funktioniert?


Danke schon mal für die Antworten

Seaquest30
Bitte warten ..
Mitglied: Dynadrate
13.05.2007 um 14:09 Uhr
-Sorry, habs überlesen-

Mit freundlichen Grüßen
Bitte warten ..
Mitglied: Ultraschnecke
13.05.2007 um 14:27 Uhr
Vielleicht gehts mit dem SNMP-Protokoll? Hab damit zwar noch nie gearbeitet, aber genau für sowas wurd das ja eingeführt...
Bitte warten ..
Mitglied: problemsolver
13.05.2007 um 17:03 Uhr
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...

01.
set strComputer="." 
02.
 
03.
Set objWMIService = GetObject("winmgmts:\\" & strComputer & "\root\CIMV2") 
04.
Set colInstalledPrinters = objWMIService.ExecQuery("Select * from Win32_Printer") 
05.
 
06.
For Each objPrinter in colInstalledPrinters 
07.
    WScript.Echo objPrinter.ServerName & ": " & objPrinter.WorkOffline 
08.
Next
Hoffe es funktioniert, da ichs nur fix eben "hingezaubert" hab

Gruß

Markus
Bitte warten ..
Mitglied: seaquest30
13.05.2007 um 23:10 Uhr
Hi schon mal vielen Dank für die Codezeilen

Lokal funktioniert das schon. Die Namen zu den Druckern werden zwar nicht angezeigt, aber das müßte mir folgendem code gehen.

01.
	Set colItems = objWMIService.ExecQuery("SELECT * FROM Win32_Printer") 
02.
 
03.
	For Each objItem In colItems 
04.
        wscript.echo Message & objItem.Caption & vbcrlf 
05.
    Next

(keine Ahnung ob das umständlich ist habe mir das aus einem anderem Script herausgelesen.)
Nun noch die beiden Schleifen zusammen bringen.


Leider bekomme ich noch keine Remotezugriff auf einen Netzwerkcomputer.
Muss ich da einen UNC Pfad angeben? (\\arbeitsgruppe\rechner?)
bzw einen Login mitschicken für einen dortigen Benutzer?

Vielleicht weis da jemand noch einen Tip.

Danke für eure mithilfe.
Das ist echt klasse


Bye
Seaquest30
Bitte warten ..
Mitglied: seaquest30
14.05.2007 um 14:18 Uhr
so nachdem ich die Namen nun mitangezeigt bekomme.

01.
 
02.
dim printer_name(20) 
03.
Set objNetwork = WScript.CreateObject("WScript.Network") 
04.
strComputer = objNetwork.ComputerName 
05.
 
06.
       wscript.echo strcomputer 
07.
 
08.
 
09.
 
10.
Set objWMIService = GetObject("winmgmts:\\" & strComputer & "\root\CIMV2") 
11.
Set colInstalledPrinters = objWMIService.ExecQuery("Select * from Win32_Printer") 
12.
 
13.
Set colItems = objWMIService.ExecQuery("SELECT * FROM Win32_Printer") 
14.
 
15.
	For Each objItem In colItems 
16.
	printer_name(i) = objitem.caption & vbcrlf 
17.
	i = i +1 
18.
    
19.
    Next 
20.
 
21.
       I=0 
22.
 
23.
For Each objPrinter in colInstalledPrinters 
24.
 
25.
       WScript.Echo objPrinter.ServerName & printer_name(i) &": " & objPrinter.WorkOffline 
26.
       i=i+1 
27.
Next 
28.
 
muss ich feststellen das die Anzeige nicht korrekt ist.
Ok ein Drucker wird im Zustand eingschaltet als "Falsch" gemeldet aber es ändert sich auf "Wahr" wenn man ihn ausschaltet. Damit kann ich was anfangen.

Aber bei einem Laserdrucker und einem Tintenstrahler wird das ein und ausschalten nicht bemerkt. Die Antwort ist immer "Falsch".
Das liegt wohl daran das diese Drucker obwohl sie ausgeschaltet sind als "Bereit" gemeldet sind.

Als so komme ich da wohl nicht an eine zuverlässige Aussage.
Schade.

Danke schon mal für die Tips.
Vielleicht hat ja jemand noch einen anderen Lösungsansatz.

Bye

Seaquest30
Bitte warten ..
Mitglied: seaquest30
18.05.2007 um 00:04 Uhr
mmhh
ich bin leider nicht mehr weitergekommen mit dem Problem. Sollte noch jemand eine Idee hat immer her damit. Ich werde sie gerne ausprobieren.
Danke schon mal


Seaquest 30
Bitte warten ..
Mitglied: problemsolver
18.05.2007 um 15:00 Uhr
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.

01.
Set objNetwork = WScript.CreateObject("WScript.Network") 
02.
strComputer = objNetwork.ComputerName 
03.
 
04.
       wscript.echo strcomputer 
05.
 
06.
Set objWMIService = GetObject("winmgmts:\\" & strComputer & "\root\CIMV2") 
07.
Set colInstalledPrinters = objWMIService.ExecQuery("SELECT * FROM Win32_PrintJob", "WQL", _ 
08.
                                          wbemFlagReturnImmediately + wbemFlagForwardOnly) 
09.
i=0 
10.
for each colItem in colInstalledPrinters 
11.
i=i+1 
12.
next 
13.
wscript.echo "Anzahl aller Printjobs auf dem Rechner " & strComputer & ": " & i
Bitte warten ..
Mitglied: seaquest30
21.05.2007 um 16:26 Uhr
Hi

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.

Genau, die Leute sollen sehen ob die Drucker an oder aus sind.


>Dementsprechend kannst du auch
herausfinden, ob evtl. Druckaufträge auf
dem Rechner vorhanden sind. Kommt der Sache
eigentlich recht nah

MMh also ich glaube das hilft mir nicht weiter. Denn wenn 0 Printjobs vorhanden sind werden auch 0 angezeigt, egal ob Drucker angeschaltet oder aus sind. Das würde mir nur helfen wenn ständig gedruckt wird. Was mir gerade bei ausprobieren kommt ist das mir ja auch Printjobs gemeldet werden obwohl der jeweilige Drucker gar nicht an ist. (Bis zur Fehlermeldung konnte nicht gedruckt werden).
Das ist auch kein Ansatz um dem Problem Herr zu werden. Oder habe ich da was falsch verstanden.

Also hier die Möglichkeit, um die
Anzahl aller Druckaufträge in der
Printqueue eines Rechners zu ermitteln.

danke für die Tips

Bye
Seaquest30
Bitte warten ..
Neuester Wissensbeitrag
Humor (lol)

Linkliste für Adventskalender

(3)

Information von nikoatit zum Thema Humor (lol) ...

Ähnliche Inhalte
Batch & Shell
gelöst Dateien zusammenführen inkl. finden von doppelten Einträgen (3)

Frage von miczar zum Thema Batch & Shell ...

Debian
Kann Linux nicht im bios finden! (3)

Frage von pixelBf zum Thema Debian ...

Netzwerke
gelöst Netzwerkdrucker stört NAS (10)

Frage von guschtl zum Thema Netzwerke ...

Heiß diskutierte Inhalte
Router & Routing
gelöst Ipv4 mieten (22)

Frage von homermg zum Thema Router & Routing ...

Windows Server
DHCP Server switchen (20)

Frage von M.Marz zum Thema Windows Server ...

Exchange Server
gelöst Exchange 2010 Berechtigungen wiederherstellen (20)

Frage von semperf1delis zum Thema Exchange Server ...

Hardware
gelöst Negative Erfahrungen LAN-Karten (19)

Frage von MegaGiga zum Thema Hardware ...