Script para Conectar una Impresora Compartida en Una Sesion TS

Respondida Script para Conectar una Impresora Compartida en Una Sesion TS

  • sábado, 26 de mayo de 2012 23:33
     
      Tiene código

    Que tal Amigos, tengo un Script que mapea las impresoras compartidas de un Cliente a una sesion de TS 2008, el cual funciona muy bien si lo corro de forma manual, el caso es para automatizar lo he puesto fijo en las directivas de grupo local del TS/configuracion de Usuario/Configuracion Windows/Script (Inicio de Sesion), cuando inicio sesion la variable que me captura el nombre del equipo cliente se carga vacia y me da error, enviandome un mensaje que no encuentra el nombre del servidor (el de la PC), le he puesto una pausa para que no lo haga muy rapido pero me he dado cuenta que no se trata de eso, les copio el codigo que estoy usando:

    Option Explicit
    Dim objNetwork, strUNCPrinter, strComputer, objShell, strUNCPrinter2
    set objShell = CreateObject("Wscript.Shell") 
    'WScript.Sleep(10000)
    
    
    
    strComputer = objShell.ExpandEnvironmentStrings("%CLIENTNAME%") 
    WScript.Echo " strComputer  : " & strComputer
    strUNCPrinter = "\\" & strComputer & "\[FIN]EPSON TM-U950(SLIP)"
    strUNCPrinter2 = "\\" & strComputer & "\[FIN2]EPSON TM-U950 Receipt"
    
    WScript.Echo "strUNCPrinter : " & strUNCPrinter
    WScript.Echo "strUNCPrinter2 : " & strUNCPrinter2
    
    Set objNetwork = CreateObject("WScript.Network") 
    objNetwork.AddWindowsPrinterConnection strUNCPrinter
    objNetwork.AddWindowsPrinterConnection strUNCPrinter2
    WScript.Echo "Check the Printers folder for : " & strUNCPrinter
    WScript.Echo "Check the Printers folder for : " & strUNCPrinter2
    
    WScript.Quit

    La variable que carga vacia es strComputer, pero si corro el script dandole doble clic este si trabaja bien.

    Juan Carlos

    
    
    
    

    Juan Carlos García.

Todas las respuestas

  • lunes, 28 de mayo de 2012 12:21
     
     Respondida

    Hola Juan Carlos,

    Esta claro que la ejecución del script no carga el valor de la variable %clietname%. El código es totalmente válido.

    Ya que comentas que el script corre perfectamente si lo ejecutas tras el inicio de sesión, puedes probar a cargar el script desde la sección "Run after Logon", la ruta en GPO sería -> User Configuration/Administrative Templates/System/Logon/Run these programs at user logon

    Vincula la ruta del script a esta sección y prueba de iniciar sesión con un usuario a ver si funciona.

    Saludos

    Julio Rosua 


  • miércoles, 30 de mayo de 2012 10:11
    Moderador
     
      Tiene código

    Mira si esto te ayuda:

    How to get ClientName within logon script on Server 2008 R2 XenApp 6
    http://rcmtech.wordpress.com/2011/06/09/how-to-get-clientname-within-logon-script-on-server-2008-r2-xenapp-6/

    Eso sí, el escript tiene una cosa que depende del idioma. Si el servidor tiene como idioma Español, en lugar de Inlgés, debes sustituir esta línea:

    iStatePos = InStr(sOutput,”active”)

    Por esta otra:

    iStatePos = InStr(sOutput,”activo”)

    Aunque probablemente valga con poner esta otra para que así valga para Español e Inglés:

    iStatePos = InStr(sOutput,”activ”)


    Un saludo

    Fernando Reyes [MS MVP]
    MCSA 2000/2003
    MCSE 2000/2003
    MCITP EnterpriseAdministrator
    Web: http://freyes.svetlian.com
    Blog: http://urpiano.wordpress.com
    RSS: http://urpiano.wordpress.com/feed/
    freyes.champú@champú.mvps.org
    (Aclárate la cabeza si quieres escribirme)


  • jueves, 31 de mayo de 2012 22:48
     
     

    Estimado Julio,  Agradezco sobremanera tu respuesta e interes, me ha resultado tu consejo, la forma como lo indicas es como si funciona.

    Saludos.

    Juan Carlos Garcia.


    Juan Carlos García.