Netzwerkdrucker per Script installieren


Forum: Hardware und Treiber (Windows 7)

Alles zum Thema PC-Hardware und Peripherie unter Windows 7, Treiberprobleme, Treibersuche

  1. Shay

    Shay Neuling

    Hallo =)

    Ich habe bereits für Windows XP erfolgreich ein Script erstellt, das mir automatisch einen Port anlegt und danach den Drucker mit ausgewähltem Treiber installiert.

    Code:
    cscript %Windir%\system32\prnport.vbs -a -r IP_192.168.X.X -h 192.168.X.X -o raw -n 9100
    
    rundll32 printui.dll,PrintUIEntry /if /b "Lexmark E120" /f 
    "[I]Pfadangabe[/I]\LMABB2DA.inf" 
    /r "IP_192.168.X.X" /m "Lexmark E120"
    
    Nun möchte ich das gleiche für Windows 7 machen.
    Erstes Problem war dabei, dass es die prnport.vbs unter Windows 7 nicht mehr gibt.
    Also kann man wie unter XP keine Druckerports mehr anlegen.
    Das habe ich jetz so gelöst, das ich aus der Registry wo der Drucker bereits installiert ist, den Port exportiert habe.

    Nun habe ich jedoch immernoch das Problem mit den Treibern. Für diesen einen Drucker (Lexmark E120) finde ich keinen passenden Windows 7 Treiber.

    Gibt es für das Script eine Möglichkeit, den Druckertreiber automatisch aus Windows suchen und installieren zu lassen ? Oder weiß jemand wo ich genau die Druckertreiber finde die in Windows 7 hinterlegt sind? Das man vll wenn sie unter windows/system32/driver liegen einfach nur den Pfad angibt und er selbst sucht was er braucht ggf diese Updatefunktion benutzt?

    Momentan sieht mein Script so aus:

    Code:
    #Portanlegen durch Registryimport
    regedit /s "C:\Users\Username\Desktop\125.reg"
    
    #Druckerinstallieren
    rundll32 printui.dll,PrintUIEntry /if /b "Lexmark E120" /f 
    "C:\Windows\System32\drivers" /r "IP_192.168.X.X" /m "Lexmark E120"
    
    Funktioniert aber nicht, das er immer sagt Argumente ungültig =(

    Hat jemand noch tipps ^^?

    Grüße

    Shay
     
  2. Werbung
  3. thl1966

    thl1966 Aktives Mitglied

    AW: Netzwerkdrucker per Script installieren

    Kann es sein, dass bestimmte Parameter bei Windows 7 nicht mehr vorhanden sind?
    Von der Syntax her, würde ich sagen, dass da kein Fehler ist.
    Evtl. hinter printui.dll, ein Leerzeichen einfügen.
     
  4. Shay

    Shay Neuling

    AW: Netzwerkdrucker per Script installieren

    Hallo und erstmal Danke für die Antwort =)

    Also das Leerzeichen ist es nicht.
    Wenn ich einen Direkten Treiber angebe, auch wenns der falsche ist, bringt er den Fehler das der Treiber falsch wäre oder einen 0x00000002 Error.

    Demnach bräuchte ich nur eine korekte Lösung für "guck in deinen Eigenen Treibern nach"

    Jemand ne Idee?
     
  5. Shay

    Shay Neuling

    AW: Netzwerkdrucker per Script installieren

    So nochmal Hallo =)

    Ich habe es nun gelöst bekommen, stehe aber wieder vor neuen problemen ^^'

    Hier erstmal die Lösung:

    Drucker installieren
    Code:
    cscript C:\Windows\System32\Printing_Admin_Scripts\de-DE\prnport.vbs -a -r "IP_192.168.X.X" -h "192.168.X.X" -o raw -n 9100"
    
    
    rundll32 printui.dll,PrintUIEntry /if /f "C:\Users\XXX\Desktop\Lexmark_E120_Win_7\LMABBM40.inf" /r "IP_192.168.X.X" /b "Lexmark E120" /m "Lexmark E120 V"
    
    
    Drucker deinstallieren über IP:

    Code:
    Set WshShell = CreateObject("Wscript.Shell")
    Set WshNetwork = CreateObject("WScript.Network")
    Set objPrinters = WshNetwork.EnumPrinterConnections
    For i = 0 to objPrinters.Count - 1 Step 2
       WScript.Echo "Port: " & objPrinters.Item(i) & " | Name: " & objPrinters.Item(i+1)
    Next
    
    Und

    Code:
    Set WshShell = CreateObject("Wscript.Shell")
    Set WshNetwork = CreateObject("WScript.Network")
    Set objPrinters = WshNetwork.EnumPrinterConnections
    If WScript.Arguments.Count = 0 Then
        WScript.Echo "Usage: delete_printers_array.vbs "&Chr(34)&"Portname1"&Chr(34)&" "&Chr(34)&"Portname2"&Chr(34)&" ..."
    Else
        Dim first
        first = WScript.Arguments(0)
        Select Case first
            Case "help" WScript.Echo "Usage: delete_printers_array.vbs "&Chr(34)&"Portname1"&Chr(34)&" "&Chr(34)&"Portname2"&Chr(34)&" ..."
            Case "/?" WScript.Echo "Usage: delete_printers_array.vbs "&Chr(34)&"Portname1"&Chr(34)&" "&Chr(34)&"Portname2"&Chr(34)&" ..."
            Case "-?" WScript.Echo "Usage: delete_printers_array.vbs "&Chr(34)&"Portname1"&Chr(34)&" "&Chr(34)&"Portname2"&Chr(34)&" ..."
            Case "?" WScript.Echo "Usage: delete_printers_array.vbs "&Chr(34)&"Portname1"&Chr(34)&" "&Chr(34)&"Portname2"&Chr(34)&" ..."
            Case Else 
        End Select
    End If
    For i = 0 to objPrinters.Count - 1 Step 2
        If Left(objPrinters.Item(i+1),2) <> "\\" Then
            For Each item In WScript.Arguments
                If Len(item) >= 2 Then
                    If InStr(objPrinters.Item(i), item) > 0 Then
                        WshShell.Run "cmd /c rundll32 printui.dll,PrintUIEntry /dl /n " & Chr(34) & objPrinters.Item(i+1) & Chr(34)
                    End If
                End If
            Next
        End If
    Next
    
    Und

    Nun möchte ich jedoch quasi alles zusammenwürfeln und eine Abfrage erstellen,
    - Wenn Drucker XYZ vorhanden dann diesen löschen
    - Nach dem XYZ gelöscht wurde Drucker ABC installieren

    Und als zweite Variante
    - Wenn Drucker XYZ vorhanden, dann überspring alles und beende das Script
    - Wenn Drucker XYZ nicht vorhanden dann installieren

    Da ich nicht so der Script-Profi bin hoffe ich das mir diesesmal jemand helfen kann =)

    Shay


    p.s. Dieses Druckerlöschscript hab ich von hier: http://hannes-schurig.de/25/11/2010/drucker-anhand-der-ip-loschen-mit-vbs-script/#comment-8250
     
  • Werbung
  • Die Seite wird geladen...
    Hier genannte Produkt- und Firmennamen sowie deren Logos koennen eingetragene Warenzeichen der jeweiligen Unternehmen sein.