Drucker verbinden!

  • Guten Tag zusammen,

    also ich habe bei euch schon ein weg gefunden Drucker vom Server aus zu verbinden. Funktioniert super.

    Code
    $obj = ObjCreate("WScript.Network")
    if @error Then MsgBox(0, "Obj", @error)
    
    
    $drucker = Inputbox("Druckerverbinden", "Welcher Drucker soll Verbunden werden???", "")
    
    
    $obj.AddWindowsPrinterConnection(@logonserver &"\"& $drucker)

    Das funktioniert gut, aber nur wenn man auch Admin an dem Rechner ist. Wenn ich jetzt einen Drucker aber als Admin verbinden möchte wie mach ich das?

    Problem ist das User die Druckertreiber nicht installieren dürfen die auf dem Server bereitgestellt sind. Ich ich würde gerne ein Script machen bei dem die User denn Drucker angeben und der Automatisch dabei die Treiber installiert und denn Drucker verbindet.

    Danke

  • Morgen, schau mal in der Hilfe nach

    [autoit]

    RunAs

    [/autoit]

    Gruß Marvin


    Hallo, ja habe ich anfangs auch gedacht, aber es funktioniert nicht er verbindet nicht.

    Code
    $filetorun= $obj.AddWindowsPrinterConnection(@logonserver &"\"& $drucker)
    RUNAS( $sUserName, "SID", $sPassword, 0, $filetorun)

    Hab ich dem script hinzugefügt, aber der drucker erscheint leider nicht in der Liste beim admin.

    Gruß Christof

  • Vllt funktioniert es, wenn du bei ObjCreate den Usernamen und das Passwort angibst.


    Jop denke ich auch Das Objekt besitzt keine Admin Rechte somit bringt es dir nicht viel nur den Befehl an sich mit den nötigen Rechten auszustatten :P

    Gruß

  • Hab's jetzt versucht wie in der Hilfe angegeben es mit username und passwort zu machen. irgendwie funktioniert es nicht.

    [autoit]


    ObjCreate("WScript.Network", "USERNAME", "PASSWORD")

    [/autoit][autoit][/autoit][autoit][/autoit]

    Ich bekomme nen 53 error, bisher konnte ich nicht finden was das bedeutet,

  • Naja ich denke es liegt daran dass du den "Servernamen" an dem sich angemeldet also in diesem Fall @ComputerName nicht in deinem Script hast aber kann mich auch Irren..

    EDIT //
    hab mir eben noch mal deinen Post angeschaut hast du unter "SID" auch den ComputerNamen eingetragen oder was stellt "sid" in diesem Fall dar?

    [autoit]


    $filetorun= $obj.AddWindowsPrinterConnection(@logonserver &"\"& $drucker)
    RUNAS( $sUserName, @ComputerName, $sPassword, 0, $filetorun)

    [/autoit]


    Gruß

  • Wo willst du denn das Nutzen? Wenn es in einer Domäne ist:

    Die normalen Benutzer an Windows XP oder Windows 7 Clients können normalerweise Druckertreiber installieren.
    Benutzer auf Servern oder Terminalserver: Halt einmal als Admin mit allen Druckern einmal verbinden - Auch wenn der Drucker wieder gelöscht wird behält Windows alle Treiber lokal.
    Alternative: Es gibt eine Gruppenrichtline ab 2008R2 / Windows 7: http://technet.microsoft.com/en-us/library/cc725938.aspx

    NACHTRAG: Im Schlimmsten Fall nutzt dir das verbinden als Admin nichts - denn dann hat der Admin den netzwerkdrucker und nicht du -> Netzwerkdrucker ist immer pro Benutzer.
    Von der "als Admin" Methode halte ich deshalb garnichts.

    BLinz(ler)

  • Hallo, schon richtig was du anmerkst. Bei uns sind die User einfache Benutzer, somit können die keine Druckertreiber lokal laden.

    Alle Drucker(Alle) als Admin zu verbinden ist nicht sinnvoll da es schon öfters dazu kam das die Leute immer wieder Probleme(Schutzverletzungen) hatten.

    Ich weiß das die die Netzwerkdruckerverbindung immer nur für denn Aktuellen Benutzer gilt, aber im Script soll der Drucker angegeben werden und im Admin Profil und im User Profil nacheinander verbunden werden.

    Ich muss dazu sagen das bei uns GPO's nicht übertragen werden können, keine Windowsserver.

    Die Gerätetreiber Installation möchte ich denn Nutzern auch nicht gestatten da die dann jeden Treiber installieren können.


    Nun evtl finde ich noch einen anderen Weg, oder einfach auch WinDom umsteigen :)

  • Naja ich denke es liegt daran dass du den "Servernamen" an dem sich angemeldet also in diesem Fall @ComputerName nicht in deinem Script hast aber kann mich auch Irren..

    EDIT //
    hab mir eben noch mal deinen Post angeschaut hast du unter "SID" auch den ComputerNamen eingetragen oder was stellt "sid" in diesem Fall dar?

    [autoit]


    $filetorun= $obj.AddWindowsPrinterConnection(@logonserver &"\"& $drucker)
    RUNAS( $sUserName, @ComputerName, $sPassword, 0, $filetorun)

    [/autoit]


    Gruß


    SID stellt in dem Moment die Domäne oder Computernamen dar, schon richtig :)