Status/Eigenschaften von Netzwerkdruckern abfragen

  • Hallo zusammen,

    gibt es bereits ein Script, mit dem man in einem Netzwerk den Status und die Eigenschaften diverser Netzwerkdrucker abfragen und anschließend in eine Exel-Tabelle speicher kann bzw. ist dies überhaupt realisierbar?

    LG FKFK

    • Offizieller Beitrag

    Versuch es mit WMI:

    Spoiler anzeigen
    [autoit]

    ; Generated by AutoIt Scriptomatic

    [/autoit] [autoit][/autoit] [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]

    If IsObj($colItems) then
    For $objItem In $colItems
    $Output = $Output & "Attributes: " & $objItem.Attributes & @CRLF
    $Output = $Output & "Availability: " & $objItem.Availability & @CRLF
    $strAvailableJobSheets = $objItem.AvailableJobSheets(0)
    $Output = $Output & "AvailableJobSheets: " & $strAvailableJobSheets & @CRLF
    $Output = $Output & "AveragePagesPerMinute: " & $objItem.AveragePagesPerMinute & @CRLF
    $strCapabilities = $objItem.Capabilities(0)
    $Output = $Output & "Capabilities: " & $strCapabilities & @CRLF
    $strCapabilityDescriptions = $objItem.CapabilityDescriptions(0)
    $Output = $Output & "CapabilityDescriptions: " & $strCapabilityDescriptions & @CRLF
    $Output = $Output & "Caption: " & $objItem.Caption & @CRLF
    $strCharSetsSupported = $objItem.CharSetsSupported(0)
    $Output = $Output & "CharSetsSupported: " & $strCharSetsSupported & @CRLF
    $Output = $Output & "Comment: " & $objItem.Comment & @CRLF
    $Output = $Output & "ConfigManagerErrorCode: " & $objItem.ConfigManagerErrorCode & @CRLF
    $Output = $Output & "ConfigManagerUserConfig: " & $objItem.ConfigManagerUserConfig & @CRLF
    $Output = $Output & "CreationClassName: " & $objItem.CreationClassName & @CRLF
    $strCurrentCapabilities = $objItem.CurrentCapabilities(0)
    $Output = $Output & "CurrentCapabilities: " & $strCurrentCapabilities & @CRLF
    $Output = $Output & "CurrentCharSet: " & $objItem.CurrentCharSet & @CRLF
    $Output = $Output & "CurrentLanguage: " & $objItem.CurrentLanguage & @CRLF
    $Output = $Output & "CurrentMimeType: " & $objItem.CurrentMimeType & @CRLF
    $Output = $Output & "CurrentNaturalLanguage: " & $objItem.CurrentNaturalLanguage & @CRLF
    $Output = $Output & "CurrentPaperType: " & $objItem.CurrentPaperType & @CRLF
    $Output = $Output & "Default: " & $objItem.Default & @CRLF
    $strDefaultCapabilities = $objItem.DefaultCapabilities(0)
    $Output = $Output & "DefaultCapabilities: " & $strDefaultCapabilities & @CRLF
    $Output = $Output & "DefaultCopies: " & $objItem.DefaultCopies & @CRLF
    $Output = $Output & "DefaultLanguage: " & $objItem.DefaultLanguage & @CRLF
    $Output = $Output & "DefaultMimeType: " & $objItem.DefaultMimeType & @CRLF
    $Output = $Output & "DefaultNumberUp: " & $objItem.DefaultNumberUp & @CRLF
    $Output = $Output & "DefaultPaperType: " & $objItem.DefaultPaperType & @CRLF
    $Output = $Output & "DefaultPriority: " & $objItem.DefaultPriority & @CRLF
    $Output = $Output & "Description: " & $objItem.Description & @CRLF
    $Output = $Output & "DetectedErrorState: " & $objItem.DetectedErrorState & @CRLF
    $Output = $Output & "DeviceID: " & $objItem.DeviceID & @CRLF
    $Output = $Output & "Direct: " & $objItem.Direct & @CRLF
    $Output = $Output & "DoCompleteFirst: " & $objItem.DoCompleteFirst & @CRLF
    $Output = $Output & "DriverName: " & $objItem.DriverName & @CRLF
    $Output = $Output & "EnableBIDI: " & $objItem.EnableBIDI & @CRLF
    $Output = $Output & "EnableDevQueryPrint: " & $objItem.EnableDevQueryPrint & @CRLF
    $Output = $Output & "ErrorCleared: " & $objItem.ErrorCleared & @CRLF
    $Output = $Output & "ErrorDescription: " & $objItem.ErrorDescription & @CRLF
    $strErrorInformation = $objItem.ErrorInformation(0)
    $Output = $Output & "ErrorInformation: " & $strErrorInformation & @CRLF
    $Output = $Output & "ExtendedDetectedErrorState: " & $objItem.ExtendedDetectedErrorState & @CRLF
    $Output = $Output & "ExtendedPrinterStatus: " & $objItem.ExtendedPrinterStatus & @CRLF
    $Output = $Output & "Hidden: " & $objItem.Hidden & @CRLF
    $Output = $Output & "HorizontalResolution: " & $objItem.HorizontalResolution & @CRLF
    $Output = $Output & "InstallDate: " & WMIDateStringToDate($objItem.InstallDate) & @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 & "Local: " & $objItem.Local & @CRLF
    $Output = $Output & "Location: " & $objItem.Location & @CRLF
    $Output = $Output & "MarkingTechnology: " & $objItem.MarkingTechnology & @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 & "MimeTypesSupported: " & $strMimeTypesSupported & @CRLF
    $Output = $Output & "Name: " & $objItem.Name & @CRLF
    $strNaturalLanguagesSupported = $objItem.NaturalLanguagesSupported(0)
    $Output = $Output & "NaturalLanguagesSupported: " & $strNaturalLanguagesSupported & @CRLF
    $Output = $Output & "Network: " & $objItem.Network & @CRLF
    $strPaperSizesSupported = $objItem.PaperSizesSupported(0)
    $Output = $Output & "PaperSizesSupported: " & $strPaperSizesSupported & @CRLF
    $strPaperTypesAvailable = $objItem.PaperTypesAvailable(0)
    $Output = $Output & "PaperTypesAvailable: " & $strPaperTypesAvailable & @CRLF
    $Output = $Output & "Parameters: " & $objItem.Parameters & @CRLF
    $Output = $Output & "PNPDeviceID: " & $objItem.PNPDeviceID & @CRLF
    $Output = $Output & "PortName: " & $objItem.PortName & @CRLF
    $strPowerManagementCapabilities = $objItem.PowerManagementCapabilities(0)
    $Output = $Output & "PowerManagementCapabilities: " & $strPowerManagementCapabilities & @CRLF
    $Output = $Output & "PowerManagementSupported: " & $objItem.PowerManagementSupported & @CRLF
    $strPrinterPaperNames = $objItem.PrinterPaperNames(0)
    $Output = $Output & "PrinterPaperNames: " & $strPrinterPaperNames & @CRLF
    $Output = $Output & "PrinterState: " & $objItem.PrinterState & @CRLF
    $Output = $Output & "PrinterStatus: " & $objItem.PrinterStatus & @CRLF
    $Output = $Output & "PrintJobDataType: " & $objItem.PrintJobDataType & @CRLF
    $Output = $Output & "PrintProcessor: " & $objItem.PrintProcessor & @CRLF
    $Output = $Output & "Priority: " & $objItem.Priority & @CRLF
    $Output = $Output & "Published: " & $objItem.Published & @CRLF
    $Output = $Output & "Queued: " & $objItem.Queued & @CRLF
    $Output = $Output & "RawOnly: " & $objItem.RawOnly & @CRLF
    $Output = $Output & "SeparatorFile: " & $objItem.SeparatorFile & @CRLF
    $Output = $Output & "ServerName: " & $objItem.ServerName & @CRLF
    $Output = $Output & "Shared: " & $objItem.Shared & @CRLF
    $Output = $Output & "ShareName: " & $objItem.ShareName & @CRLF
    $Output = $Output & "SpoolEnabled: " & $objItem.SpoolEnabled & @CRLF
    $Output = $Output & "StartTime: " & WMIDateStringToDate($objItem.StartTime) & @CRLF
    $Output = $Output & "Status: " & $objItem.Status & @CRLF
    $Output = $Output & "StatusInfo: " & $objItem.StatusInfo & @CRLF
    $Output = $Output & "SystemCreationClassName: " & $objItem.SystemCreationClassName & @CRLF
    $Output = $Output & "SystemName: " & $objItem.SystemName & @CRLF
    $Output = $Output & "TimeOfLastReset: " & WMIDateStringToDate($objItem.TimeOfLastReset) & @CRLF
    $Output = $Output & "UntilTime: " & WMIDateStringToDate($objItem.UntilTime) & @CRLF
    $Output = $Output & "VerticalResolution: " & $objItem.VerticalResolution & @CRLF
    $Output = $Output & "WorkOffline: " & $objItem.WorkOffline & @CRLF
    if Msgbox(1,"WMI Output",$Output) = 2 then ExitLoop
    $Output=""
    Next
    Else
    Msgbox(0,"WMI Output","No WMI Objects Found for class: " & "Win32_Printer" )
    Endif

    [/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]
  • OK, vielen Dank!
    Das Script muss ich mir dann erst mal durchschauen und mich mit der Materie außeinandersetzen. Mit Objekten zu arbeiten ist ja allgemein nicht ganz so einfach.
    Dann bin ich dem Ziel einen bedeutenden Schritt näher gekommen :)