Jump to content

dan0707

Members
  • Gesamte Inhalte

    3
  • Registriert seit

  • Letzter Besuch

Profile Fields

  • Member Title
    Newbie

Fortschritt von dan0707

Rookie

Rookie (2/14)

  • Erste Antwort
  • Erster eigener Beitrag
  • Eine Woche dabei
  • Einen Monat dabei
  • 1 Jahre dabei

Neueste Abzeichen

10

Reputation in der Community

  1. Danke für eure Tips. Mein genialer Mitarbeiter konnte mir weiterhelfen. Für diejenigen die es interessiert: strComputer = "." strStandort = "XXX" On Error Resume Next Const wbemFlagReturnImmediately = &h10 Const wbemFlagForwardOnly = &h20 Set objWMIService = GetObject("winmgmts:\\" & strComputer & "\root\CIMV2") Set objExcel = CreateObject("Excel.Application") Set objWorkbook = objExcel.Workbooks.Open ("C:\Printer.xls") intRow = 2 Set objNewPort = objWMIService.get _ ("Win32_TCPIPPrinterPort").SpawnInstance_ Set objPrinter = objWMIService.Get _ ("Win32_Printer").SpawnInstance_ Set colPrinter = objWMIService.ExecQuery("SELECT * FROM Win32_Printer", "WQL", wbemFlagReturnImmediately + wbemFlagForwardOnly) For Each objItem In colPrinter strExistPrinter = strExistPrinter & ";"& objItem.Name Next strExistPrinter = UCase(Trim(strExistPrinter)) Do Until objExcel.Cells(intRow, 1).Value = "" strPrinterName = objExcel.Cells(intRow, 1).Value strPrinterPort = objExcel.Cells(intRow, 2).Value strPrinterType = objExcel.Cells(intRow, 3).Value bolNewprinter = False Select Case strPrinterType Case "HP" strPrintDriver = "#NAME DES TREIBERS#" Case "Xerox" strPrintDriver = "#NAME DES TREIBERS#" End Select If InStr(1, strExistPrinter, UCase(Trim(strPrinterName ))) <= 1 Then On Error Goto 0 bolNewprinter = True objNewPort.HostAddress = strPrinterPort objNewPort.Name = "IP_" & strPrinterPort objNewPort.Protocol = 1 objNewPort.PortNumber = "9100" objNewPort.SNMPEnabled = False objNewPort.Put_ objPrinter.DriverName = strPrintDriver objPrinter.PortName = "IP_" & strPrinterPort objPrinter.Name = strPrinterName objPrinter.DeviceID = strPrinterName objPrinter.Location = strStandort objPrinter.Local = True objPrinter.Shared = True objPrinter.ShareName = strPrinterName objPrinter.Published = True objPrinter.Put_ On Error Resume Next Else If bolNewprinter = False Then fnChangePrinterSettings strPrinterName, strPrintDriver End If End If intRow = intRow + 1 Loop objWorkbook.Close objExcel.Quit Function fnChangePrinterSettings(strPrinterObjectName,strDriverName) Set colInstalledPrinters = objWMIService.ExecQuery ("Select * from Win32_Printer Where Name = '" & strPrinterObjectName & "'") For Each objInstPrinter In colInstalledPrinters objInstPrinter.DriverName = strDriverName objInstPrinter.Location = strStandort objInstPrinter.Local = True objInstPrinter.Shared = True objInstPrinter.ShareName = strPrinterObjectName objInstPrinter.Published = True objInstPrinter.Put_ Next End Function
  2. Ich möchte dies so steuern, dass falls ein Drucker aus der Excel-Tabelle bereits installiert ist, diesen mit gewissen Attributen erweitert wird und falls nicht, diesen neu installieren.
  3. 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
×
×
  • Neu erstellen...