Hallo zusammen
Ich dachte mir, wenn man nicht weiter kommt, sollte man Leute fragen, die Ahnung haben. Deshalb bin ich in diesem Forum gelandet.
Ich ackere mich seit Tagen durch dieses Scrip doch leider will es nicht wie ich.
Eigentlich sollte es aus einer Excel-Datei (aus der ersten Spalte) die Druckernamen auslesen und diese mit den bereits installierten Druckern vergleichen.
Bis jetzt soll das Script mir nur den Namen ausgeben falls er installiert ist oder nicht. Danach werde ich das Script noch etwas erweitern.
Leider reagiert er kein bischen auf meinen if-Vergleich und gibt somit immer aus, dass es ein neuer Drucker ist, obwohl die Drucker installiert sind (Teilweise 1-3) :confused:
Vieleicht kann mir ja von euch jemand weiterhelfen.
Danke schon mal.
Hier mein script:
strComputer = "."
Const wbemFlagReturnImmediately = &h10
Const wbemFlagForwardOnly = &h20
Set objExcel = CreateObject("Excel.Application")
Set objWorkbook = objExcel.Workbooks.Open ("c:\Printer.xls")
intRow = 2
Set objWMIService = GetObject("winmgmts:\\" & strComputer & "\root\CIMV2")
Set colPrinter = objWMIService.ExecQuery("SELECT * FROM Win32_Printer", "WQL", _
wbemFlagReturnImmediately + wbemFlagForwardOnly)
Dim strPrinterName, strPrinterType
Do Until objExcel.Cells(intRow, 1).Value = ""
For Each objItem In colPrinter
If Len(objExcel.Cells(intRow, 1)) >= 6 Then
WScript.Echo "-----------------------------------"
strPrinterName = objExcel.Cells(intRow, 1).Value
strPrinterPort = objExcel.Cells(intRow, 2).Value
strPrinterType = objExcel.Cells(intRow, 3).Value
Select Case strPrinterType
Case "HP"
strPrintDriver = "HP Universal Printing PCL 5 (v5.1)"
Case "Xerox"
strPrintDriver = "Xerox Global Print Driver PS"
End Select
WScript.Echo strPrintDriver
If LCase(objItem.Name) = LCase(Trim(strPrinterName)) Then
WScript.Echo "Drucker installiert: " & strPrinterName
intRow = intRow + 1
Else
WScript.Echo "Neuer Drucker: " & strPrinterName
intRow = intRow + 1
End If
End If
Next
Loop
objWorkbook.Close
objExcel.Quit
Printer.zip