Druckerdaten im Netzwerk auslesen und speichern

  • Hallo,

    ich hab schon mal einige Zeit hier gesucht und nix gefunden was mich der Lösung der Problemstellung näher bringt

    Ich möchte die Daten aller Drucker im Netzwerk auslesen und für Abgleiche speichern.
    Also z.Bsp. Druckername IP Modell gedruckte Seiten etc...
    Ist dies mit AutoIt möglich und wenn ja, wie, oder gibt es eine möglichkeit auf die MIBS der Drucker zuzugreifen und hier auch wieder WENN ja, WIE. Ich habe mit MIBS keinerlei erfahrung, habe nur in Erfahrung bringen könne das es auf diese Weise wohl eine Möglichkeit wäre, eventuell..., vielleicht.

    Wäre für irgendeinen einfachen Lösungsansatz dankbar,
    mit besten Grüßen,
    HotRod todd

  • hmm...,ja als Ansatz, allerdings liest der ja nur die lokal installierten Drucker aus,ich habe mehr sowas wie nen Netzwerk Sniffer im Sinn der wirklich das Netzwerk durchschaut und mir dann die im NW befindlichen Drucker ausgibt, und da möchte ich dann noch mehr Infos zu jeden einzelnen Drucker rausziehen.

    Ich kenn mich mit den Netzwerkbefehlen in AuotIT bzw. allgemein nicht sooo toll aus, deshalb fehlt mir da auch nur die kleinste Idee.

    Aber danke für den Link, werd da auf jeden Fall mal ein bisschen was probieren.

    Nachtrag:

    Habe jetzt mal probiert über WMI und Win32_PRINTER das ganze zu bewerkstelligen und das wäre genau was ich bräuchte, allerdings zeigt er mir zum beispiel bei JobCountSinceLastReset immer 0 an und wenn ich`s da noch schaffen würde die korrekten Zahlen auszugeben, wär das genau was ich erreichen möchte.

    Nachtrag2:

    So weit bin ich jetzt, ist noch nicht das was ich will aber schon mal ein Anfang, nur sind wie schon gesagt die für mich wichtigen Einträge alle leer, über Hilfe wäre ich sehr erfreut.

    [autoit]


    $wbemFlagReturnImmediately = 0x10
    $wbemFlagForwardOnly = 0x20
    $colItems = ""
    $strComputer = "localhost"

    [/autoit][autoit][/autoit][autoit]

    $Output=""
    $Output = $Output & "Computer: " & $strComputer & @CRLF
    $Output = $Output & "==========================================" & @CRLF
    $objWMIService = ObjGet("winmgmts:\\" & $strComputer & "\root\CIMV2")
    $colItems = $objWMIService.ExecQuery("SELECT * FROM Win32_Printer", "WQL", _
    $wbemFlagReturnImmediately + $wbemFlagForwardOnly)

    [/autoit][autoit][/autoit][autoit][/autoit][autoit]

    For $objItem In $colItems
    $Output = $Output & "AveragePagesPerMinute: " & $objItem.AveragePagesPerMinute & @CRLF
    $Output = $Output & "CurrentLanguage: " & $objItem.CurrentLanguage & @CRLF
    $Output = $Output & "DefaultCopies: " & $objItem.DefaultCopies & @CRLF
    $Output = $Output & "DetectedErrorState: " & $objItem.DetectedErrorState & @CRLF
    $Output = $Output & "DeviceID: " & $objItem.DeviceID & @CRLF
    $Output = $Output & "DriverName: " & $objItem.DriverName & @CRLF
    $Output = $Output & "ErrorDescription: " & $objItem.ErrorDescription & @CRLF
    $strErrorInformation = $objItem.ErrorInformation(0)
    $Output = $Output & "ErrorInformation: " & $strErrorInformation & @CRLF
    $Output = $Output & "JobCountSinceLastReset: " & $objItem.JobCountSinceLastReset & @CRLF
    $Output = $Output & "KeepPrintedJobs: " & $objItem.KeepPrintedJobs & @CRLF
    $strLanguagesSupported = $objItem.LanguagesSupported(0)
    $Output = $Output & "LanguagesSupported: " & $strLanguagesSupported & @CRLF
    $Output = $Output & "LastErrorCode: " & $objItem.LastErrorCode & @CRLF
    $Output = $Output & "MaxCopies: " & $objItem.MaxCopies & @CRLF
    $Output = $Output & "MaxNumberUp: " & $objItem.MaxNumberUp & @CRLF
    $Output = $Output & "MaxSizeSupported: " & $objItem.MaxSizeSupported & @CRLF
    $strMimeTypesSupported = $objItem.MimeTypesSupported(0)
    $Output = $Output & "Name: " & $objItem.Name & @CRLF
    $Output = $Output & "Network: " & $objItem.Network & @CRLF
    $Output = $Output & "PrintProcessor: " & $objItem.PrintProcessor & @CRLF
    $Output = $Output & "ServerName: " & $objItem.ServerName & @CRLF
    if Msgbox(1,"WMI Output",$Output) = 2 then ExitLoop
    $Output=""
    Next

    [/autoit][autoit][/autoit][autoit][/autoit][autoit]

    Func WMIDateStringToDate($dtmDate)

    [/autoit][autoit][/autoit][autoit]

    Return (StringMid($dtmDate, 5, 2) & "/" & _
    StringMid($dtmDate, 7, 2) & "/" & StringLeft($dtmDate, 4) _
    & " " & StringMid($dtmDate, 9, 2) & ":" & StringMid($dtmDate, 11, 2) & ":" & StringMid($dtmDate,13, 2))
    EndFunc

    [/autoit]

    Ist eigentlich nix weiter als die Win32_Printer WMI, mit den Parametern die ich gerne ausgegeben hätte.

    Nachtrag 3:
    Bin jetzt auf Win32_PrintJob gestoßen, ob das was hilft?!

    3 Mal editiert, zuletzt von Hotrod_Todd (12. März 2009 um 16:04)