Zum Inhalt springen

Empfohlene Beiträge

Geschrieben

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 :)

  • 2 Wochen später...
Geschrieben

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.

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 erstellen

Anmelden

Du hast bereits ein Benutzerkonto? Melde Dich hier an.

Jetzt anmelden

Fachinformatiker.de, 2024 by SE Internet Services

fidelogo_small.png

Schicke uns eine Nachricht!

Fachinformatiker.de ist die größte IT-Community
rund um Ausbildung, Job, Weiterbildung für IT-Fachkräfte.

Fachinformatiker.de App

Download on the App Store
Get it on Google Play

Kontakt

Hier werben?
Oder sende eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×
×
  • Neu erstellen...