Automatische Druckerverteilung

  • Hallo zusammen,
    ich brauche mal wieder bissel Hilfe.
    Wir sind hier am Skript schreiben für unsere Druckerverteilung. Die soll über windows scripting host passieren und ich komm mit einer zeile nicht klar.
    da sagt er immer das er die zeile nicht findet obwohl ich eigentlich der meinung bin, das der Pfad stimmt.

    wer kann mir bissel auf die sprünge helfen.

    hier die zeilen worums geht.


    $printernewname="HPColorLaserJet 3600dn"
    $printserver="srvasvdifil002"
    ShellExecuteWait("c:\windows\system32\cscript.exe " & "prnmngr.vbs -ac -p \\" & $printserver &"\" & $printernewname )


    das kuriose ist, wenn ich den befehl manuell unter dos eingebe , klappt alles top. und zwar so:

    c:\windows\system32\cscript.exe c:\windows\system32\prnmngr.vbs -ac -p "\\srvasvdifil002\HPColorLaserJet 3600dn"


    danke im voraus
    bumblebee

    3 Mal editiert, zuletzt von bumblebee (30. Juli 2007 um 07:41)

    • Offizieller Beitrag

    prnmngr.vbs liegt im Skriptverzeichnis?
    Eine komplette Pfadangabe wäre sinnvoll, denke ich.
    Parameter werden in ShellExcute anders übergeben als in Run (extra Parameter), bitte Hilfe lesen!

    Ach, sind wir heute mal nicht so ;). So sollte es gehen:

    [autoit]

    ShellExecuteWait("c:\windows\system32\cscript.exe", '"c:\windows\system32\prnmngr.vbs" -ac -p "\\' & $printserver & '\' & $printernewname & '"')

    [/autoit]

    peethebee

  • geht leider auch nicht ;(
    ja, prnmngr.vbs liegt auch in c:\windows\system32.
    wie kann ich denn das kurz aufpoppende fenster anhalten, damit ich was erkennen kann ??

    kompllter Pfad ist oben im 1sten thread reineditiert.

    Einmal editiert, zuletzt von bumblebee (26. Juli 2007 um 16:38)

  • ..ich komme mit zwei Zeilen nicht klar:

    Code
    $printserver="srvasvdifil002"

    und

    Code
    ..\prnmngr.vbs -ac -p "\\srvasvdifil001\HPColorLaserJet 3600dn"

    Ob das allerdings schon die Lösung ist?
    Zum VBSkript kann ich nix sagen, da es nicht mitgepostet ist :(
    Gruß
    ytwinky

    (Ich) benutze stets die aktuelle (Beta) und SciTE..

    Einmal editiert, zuletzt von ytwinky (26. Juli 2007 um 17:05)

  • Hallo,

    Du könntest das ganze auch über eine Batch-Datei lösen. Dazu habe ich hier schon mal was gepostet: Link

    Vielleicht hilft Dir das ja weiter!

    Gruß

  • ytwinky

    sorry, das ist ein Tippfehler von mir. es muss natürlich "srvasvdifil002" heissen.habs editiert. Wir haben so viele Server hier. Ich werd noch ganz narrisch ;)

    das vb-skript "prnmngr.vbs" ist in jedem standard windows mitinstalliert und dient mit verschiedenen parametern zur druckereinrichtung/-verteilung.
    es liegt in windows\system32.

    leider bin ich keinen meter weitergekommen, da sich mir nicht erschliesst was hier:

    $printernewname="HPColorLaserJet 3600dn"
    $printserver="srvasvdifil002"
    ShellExecuteWait(@WindowsDir & "\system32\cscript.exe " & @WindowsDir & "\system32\prnmngr.vbs -ac -p \\" & $printserver &"\" & $printernewname )

    falsch sein soll.
    Die Pfade passen alle und wenn ich den skript befehl manuell eingebe (siehe 1st Thread) funktionierts bestens.

  • Mhh, ich würde sagen, es liegt an den Leerzeichen des Druckernamens. Probier mal folgendes:

    [autoit]

    $printernewname = "HPColorLaserJet 3600dn"
    $printserver = "srvasvdifil002"
    ShellExecuteWait(@WindowsDir & "\system32\cscript.exe " & @WindowsDir & '\system32\prnmngr.vbs -ac -p "\\' & $printserver & "\" & $printernewname & '"')

    [/autoit]

    EDIT: Klammer gefixed!

    2 Mal editiert, zuletzt von teh_hahn (30. Juli 2007 um 08:29)

  • Zitat

    Original von teh_hahn
    Mhh, ich würde sagen, es liegt an den Leerzeichen des Druckernamens. Probier mal folgendes:

    [autoit]

    $printernewname = "HPColorLaserJet 3600dn"
    $printserver = "srvasvdifil002"
    ShellExecuteWait(@WindowsDir & "\system32\cscript.exe " & @WindowsDir & '\system32\prnmngr.vbs -ac -p "\\' & $printserver & "\" & $printernewname ) & '"')

    [/autoit]

    sry, da sagt er "syntax error" aber trotzdem danke. ich fummel weiter rum........ ;)

    • Offizieller Beitrag

    Nimm für den inneren Aufruf einfache Anführungszeichen.

    [autoit]

    $printernewname = "HPColorLaserJet 3600dn"
    $printserver = "srvasvdifil002"
    $printscript= @WindowsDir & "\system32\prnmngr.vbs"
    ShellExecuteWait(@WindowsDir & "\system32\cscript.exe " & $printscript & " -ac -p '\\" & $printserver & "\" & $printernewname & " ' ")

    [/autoit]
  • Tach,
    ich misch mich auch mal ein :)

    du sagst unter DOS gehts, dann probiers doch mal mit dem hier:

    [autoit]

    RunWait(@ComSpec & ' /c ' & 'commandName')

    [/autoit]

    Das fürht die Geschichte ja dann auch unter Dos aus. Ach ja innerhalb der einfach Anführungszeichen kannst du auch wunderbar mit den doppelten Anführungszeichen arbeiten.
    Vielleicht hilfts ja.

    c ya
    Paddy

  • Zitat

    Original von PaddyM
    Tach,
    ich misch mich auch mal ein :)

    du sagst unter DOS gehts, dann probiers doch mal mit dem hier:

    [autoit]

    RunWait(@ComSpec & ' /c ' & 'commandName')

    [/autoit]

    Das fürht die Geschichte ja dann auch unter Dos aus. Ach ja innerhalb der einfach Anführungszeichen kannst du auch wunderbar mit den doppelten Anführungszeichen arbeiten.
    Vielleicht hilfts ja.

    c ya
    Paddy

    Hi Paddy,

    aaalso Deine Version funktioniert !! Schon mal super. Sieht dann so aus:

    RunWait(@ComSpec & ' /c ' & 'c:\windows\system32\cscript.exe c:\windows\system32\prnmngr.vbs -ac -p "\\srvasvdifil002\HPColorLaserJet 3600dn"')

    jetzt will ich aber noch mit variablen arbeiten. demnach sieht das bei mir dann so aus:

    RunWait(@ComSpec & ' /c ' & 'c:\windows\system32\cscript.exe c:\windows\system32\prnmngr.vbs -ac -p \" & $printserver &"\" & $printernewname "')

    welches wiederum nicht geht.

    warum funktioniert das mit den variablen nicht. das raff ich net.
    gruss

  • Hi,
    das freut mich :D
    probiers mal so:

    [autoit]

    RunWait(@ComSpec & ' /c ' & 'c:\windows\system32\cscript.exe c:\windows\system32\prnmngr.vbs -ac -p \ "' & $printserver & '\' & $printernewname & '"')

    [/autoit]

    Der Fehler lag in deinen Anführungszeichen. ich verwende ja die einfach --> ' und du hast die doppelten eingebaut --> "
    Wäre glaub ich nicht mal so schlimm aber due hast die Variablen damit als String markiert sag ich jetzt mal so salopp.
    Probier mal die Version von mir.

    c ya
    Paddy

  • @Paddy

    irgendwas macht er jetzt wieder nicht. das fenster geht zu schnell zu als das ich es sehen könnte. kann man das irgendwie offen halten ??

    • Offizieller Beitrag

    Hallo,

    die Backslash vor Printserver stehen an der falschen Stelle, ausserdem fehlt eins:

    [autoit]

    RunWait(@ComSpec & ' /c ' & 'c:\windows\system32\cscript.exe c:\windows\system32\prnmngr.vbs -ac -p "\\' & $printserver & '\' & $printernewname & '"')

    [/autoit]
  • Zitat

    Original von bernd670
    Hallo,

    die Backslash vor Printserver stehen an der falschen Stelle, ausserdem fehlt eins:

    [autoit]

    RunWait(@ComSpec & ' /c ' & 'c:\windows\system32\cscript.exe c:\windows\system32\prnmngr.vbs -ac -p "\\' & $printserver & '\' & $printernewname & '"')

    [/autoit]


    yahhhhhhhhhhhhhhhhhhhhh, jetzt klappts endlich wie`s sein soll !!!!!!!!!!
    ABER, ich muss noch vieeelllllllll lernen.
    Vielen dank an alle, die mir geholfen haben. Tolles Forum. :party4: :klatschen: :kette:


    gruss

  • Ja ja das kommt davon wenn man nicht genau ließt sondern nur überfliegt :rolleyes:

    Hätt ich eigentlich auch sehen müssen mit dem Backslash.

    Aber nun gut es läuft ja

    c ya
    Paddy