Fisy_x3 Geschrieben 10. Oktober 2014 Geschrieben 10. Oktober 2014 Hallo Zusammen, ich bin gerade auf der Suche nach einer Lösung zu folgendem Thema. Es geht darum Netzwerkdrucker die über einen Printserver freigegeben werden, automatisiert zu inventarisieren. Eine Plattform für die Inventarisierung besteht bereits ich suche jetzt nur nach einer Lösung wie ich beispielsweise über ein VBScript an alle Druckerdaten komme. Gibt es eine Möglichkeit via VBScript die Druckerdaten beispielsweise aus einem Printserver auszulesen und in eine CSV schreiben zu lassen? Ich brauche folgende Daten: - Hostname - IP - MAC - Seriennummer - Modellbezeichnung Falls da jemand eine Idee hat, wäre Super. Vielen Dank vorab
User-Root Geschrieben 27. Oktober 2014 Geschrieben 27. Oktober 2014 Teste folgenden Quellcode: # Create new Excel workbook $Excel = new-Object -comobject Excel.Application $Excel.visible = $True $Excel = $Excel.Workbooks.Add() $Sheet = $Excel.Worksheets.Item(1) $Sheet.Cells.Item(1,1) = "Printserver Name" $Sheet.Cells.Item(1,2) = "Printer Name" $Sheet.Cells.Item(1,3) = "Location" $Sheet.Cells.Item(1,4) = "Comment" $Sheet.Cells.Item(1,5) = "IP Address" $Sheet.Cells.Item(1,6) = "Driver Name" $Sheet.Cells.Item(1,7) = "Shared" $Sheet.Cells.Item(1,8) = "Share Name" $intRow = 2 $WorkBook = $Sheet.UsedRange $WorkBook.Font.Bold = $True # Set print server name $inifile = get-content <Pfad>server.ini foreach ($line in $inifile) { # Get printer information $Printers = Get-WMIObject Win32_Printer -computername $line foreach ($Printer in $Printers) { $Sheet.Cells.Item($intRow, 1) = $line $Sheet.Cells.Item($intRow, 2) = $Printer.Name $Sheet.Cells.Item($intRow, 3) = $Printer.Location $Sheet.Cells.Item($intRow, 4) = $Printer.Comment $Ports = Get-WmiObject Win32_TcpIpPrinterPort -computername $line foreach ($Port in $Ports) { if ($Port.Name -eq $Printer.PortName) { $Sheet.Cells.Item($intRow, 5) = $Port.HostAddress } } $Sheet.Cells.Item($intRow, 6) = $Printer.DriverName $Sheet.Cells.Item($intRow, 7) = $Printer.Shared $Sheet.Cells.Item($intRow, 8) = $Printer.ShareName $intRow = $intRow + 1 } } $WorkBook.EntireColumn.AutoFit() Die Server.ini enthält einfach alle Hostnames der Printserver. Ein name pro Zeile.
Empfohlene Beiträge
Erstelle ein Benutzerkonto oder melde Dich an, um zu kommentieren
Du musst ein Benutzerkonto haben, um einen Kommentar verfassen zu können
Benutzerkonto erstellen
Neues Benutzerkonto für unsere Community erstellen. Es ist einfach!
Neues Benutzerkonto erstellenAnmelden
Du hast bereits ein Benutzerkonto? Melde Dich hier an.
Jetzt anmelden