Bat pata instalar impresora de red

Hoy requiero de su acostumbrada colaboración con este bat.

Lo que requiero es que mediante un bat que ejecute en el computador de un usuario este capture la VLAN y de acuerdo a esta ingrese al servidor que contiene a esa VLAN busque la Impresora con nombre XXXXXXX, la instale y la deje predeterminada, y envié una página de prueba.

Espero haberme explicado bien, de lo contrario estaré atento para responder a cualquier inquietud, o me puedes escribir al correo [email protected].

1 respuesta

Respuesta
2

No entiendo muy bien a que te refieres con VLAN. Normalmente VLAN hace referencia a una red de área local (LAN) virtual pero si una máquina está en una VLAN virtual no tiene que detectarla porque es la red a la que está conectada (o eso creo, que no soy muy experto en entornos virtuales). Si lo que quieres decir es WLAN (red local wifi) tal vez el problema que planteas sea determinar a cuál de las varias redes wifi configuradas en la máquina se ha conectado. Si fuera este el caso dímelo porque aunque tampoco tengo mucha experiencia en esto a raíz de otra pregunta en esta página (ver Configurar red wifi por archivo.bat ) investigué un poco y creo que podría intentar ayudarte. Pero en todo caso tendrías que explicarme con un ejemplo a que te refieres con "ingresar al servidor que contiene a esa VLAN" porque una LAN, sea wifi (WLAN) o sea virtual (VLAN) no está contenida en un servidor. A lo sumo puede haber un servidor de impresión conectado a esa LAN pero habría que saber cómo se identifica ese servidor entre todas las máquinas conectadas a la LAN. Si hay una forma de identificarlo el paso siguiente supongo que sería asignarse la impresora de nombre XXXXXX (aunque hablas de instalarla, lo que obligaría a buscar los drivers, supongo que lo quieres es asignarla con algún nombre). Asignarla desde un BAT me parece factible, pero no tengo muy claro como se lanzaría la página de prueba. Habría que investigarlo.

Bueno, cuéntame por dónde debemos ir y veremos si consigo echarte una mano.

Hola experto, gracias por su respuesta

Cuando hablo de una VLAN, me refiero a los tres primeros segmentos de una IP, por ejemplo, mi servidor principal tiene la IP 10.0.184.5, el cual tiene la VLAN 10.0.184, pero como en mi empresa hay 4 servidores con diferentes VLAN o segmentos por ejemplo:

10.0.184.5 corresponde al servidor de Bogotá

10.0.50.9 corresponde al servidor de Barranquilla

10.0.40.9 corresponde al servidor de Medellín

10.0.70.1 corresponde al servidor de Cali

Lo que tiene que hacer el .bat es cuando lo ejecute en el computador de un usuario este capture la IP del computador y saque la VLAN por ejemplo el computador del usuario está en una oficina en Bogotá el cual tiene como IP 10.0.184.10, la VLAN seria 10.0.184 el cual haciendo un recorrido por los 4 servidores esta VLAN corresponde al servidor de Bogotá con ip 10.0.184.5, entre a este el cual ya tiene todas las colas de impresión compartidas busque la cola de impresión xxxxxx y la jale, en el momento de mapear esta cola el extrae los drivers del servidor y los instala en el pc, luego de instalada la deje predeterminada y envié una página de prueba a esta cola, pero si el computador del usuario está en Medellín, el captura la ip 10.0.40.72, y saca la VLAN 10.0.40 el cual hace el recorrido por los 4 servidores y esta corresponde al servidor de Medellín, entre a este y haga el mismo procedimiento.

Espero haberme explicado bien, al igual estaré muy atento a resolver las dudas que te surjan.

Te agradezco su colaboración y preocupación.

Cordial saludo.

Creo que tienes razón y que el concepto de VLAN es el que indicas y no el que decía yo de LAN virtual. Esto te puede dar una idea de que no soy muy experto en esto. De modo que seguro que hay gente por ahí que pueda ayudarte de forma más rápida y eficaz. Pero si te gusta esta especie de "descubrimiento compartido" podemos seguir adelante.

Voy a plantear en primer lugar una especie de "ejercicio preparatorio". Sería el siguiente y debe servir para identificar correctamente la IP de los equipos y la VLAN a la que pertenecen:

@echo off
for /f "tokens=1,2 delims=:" %%a in ('ipconfig ^| findstr "Direc"') DO (set IPPC=%%b)
for /f "tokens=1,2,3* delims=." %%l in ('echo %IPPC%') DO (set vlan=%%l.%%m.%%n)
Echo La IP es: %IPPC%
Echo la vlan es: %vlan%
if %vlan%==10.0.184 echo vlan de Bogotá&goto :fin
if %vlan%==10.0.50 echo vlan de Barranquilla&goto :fin
if %vlan%==10.0.40 echo vlan de Medellín&goto :fin
if %vlan%==10.0.70 echo vlan de Cali&goto :fin
echo vlan desconocida
:Fin

Las letras acentuadas de Bogotá y Medellín pueden salir un poco alteradas pero no importa mucho.

A partir de aquí vienen algunas preguntas:

  1. La carpeta de los drivers de impresora, ¿es la misma independientemente de la VLAN?
  2. El programa de instalación de la impresora, ¿es el mismo (digamos setup_printer.exe) en todos los casos?
  3. ¿Se puede hacer "net use" sobre los distintos servidores para asignarse la carpeta de los drivers y la impresora? Si esto no estuviera claro puedo intentar aclararlo.
  4. La página de prueba que quieres que se imprima, ¿tiene qué ser la de Windows o puede ser una cualquiera? Lo digo porque de momento no he conseguido localizar dónde se aloja/esconde la página de prueba de Windows

Nada más de momento. Si quieres empezamos ya más en serio.

Hola experto

veo que ya la cogiste y vas por muy buen camino a pesar de que no conoces muy bien del tema, pero me parece genial lo del "Descubrimiento Compartido", bueno contesto a tus preguntas:

1. La carpeta de los drivers de impresora, ¿es la misma independientemente de la VLAN?

No; lo que se hace es conectarse al servidor que y ahí se aloja la coja de impresión la cual con solo darle doble clic se instala en el equipo del usuario y automáticamente instala los drivers, se conoce como impresora de red. 

2. El programa de instalación de la impresora, ¿es el mismo (digamos setup_printer.exe) en todos los casos?

No; cada servidor tiene le nombre de la cola distinta, digamos en el servidor de Bogotá la cola se llama Printerbog, en el servidor de Medellín la cola se llama Printermed y sucesivamente con los de mas servidores.

3. ¿Se puede hacer "net use" sobre los distintos servidores para asignarse la carpeta de los drivers y la impresora? Si esto no estuviera claro puedo intentar aclararlo.

Veo que esto no es necesario, ya que con solo abrir el servidor desde el equipo del usuario e instalar la cola seleccionada, automáticamente instala todo incluido los drivers, esto lo explicare mas detalladamente mas abajo.

4. La página de prueba que quieres que se imprima, ¿tiene que ser la de Windows o puede ser una cualquiera? Lo digo porque de momento no he conseguido localizar dónde se aloja/esconde la página de prueba de Windows

Normalmente se imprime desde el drivers, hay esta la opción de pagina de prueba, pero si se facilita mas imprimir una cualquiera también se puede ya que esta la podemos personalizar y dejarla aloja en cada servidor.

Explico mas detalladamente el procedimiento de instalación.

normalmente lo que se hace es entrar al servidor por medio de la opción EJECUTAR hay escribimos \\10.0.184.5 donde nos abre un explorador con los nombres de las impresoras que tenemos compartidas en dicho servidor, ubicamos el nombre de la impresora que en este caso seria printerbog (ya que estamos entrando al servidor de Bogotá) y le damos doble clic, esta empieza a instalare en el equipo donde estemos realizando esta labor, luego de instalada nos dirigimos a la opción dispositivos e impresoras (este en windows 7) y buscamos la cola instalada, ingresamos a las propiedades y desde hay esta la opción de imprimir pagina de prueba, "este es el procedimiento manual que hacemos", pero la idea es que por medio del bat lo haga.

el código que me envías esta perfecto pero faltaría en cada If colocar que haga el proceso mencionado.

espero haberme explicado mejor y puedas comprender lo que se requiere.

cordial saludo  ggg y mil gracias por tu colaboración.

sigo atento a tus inquietudes para sacar esto adelante con su apreciada ayuda. 

Bien. Perfecto que te guste lo del "descubrimiento compartido".

Entiendo el procedimiento basado en ventanas para instalar la impresora y lanzar la página de pruebas desde el icono de la impresora correspondiente.

Pero desde MSDOS, una vez identificada la IP del servidor que controla la impresora solo podemos navegar por la estructura de directorios y tenemos que conocerla previamente.

¿Qué ocurre si abres una ventana CMD y escribes NET USE K: \\10.0.184.5? Eso debería asignarte como unidad K: el directorio raíz del servidor de Bogotá. A partir de ahí puedes ir navegando en modo MSDOS (que es lo que te va a dar la pista para hacer las cosas desde un BAT.

Por ejemplo si en esa ventana CMD, tras el NET USE de antes escribes K: y das intro te presentará el "prompt" K:> y podrás escribir DIR para ver la estructura de directorios del servidor. En mi idea habría que averiguar de qué manera se arranca la instalación de los drivers de la impresora porque no acabo de ver que solo escribiendo la IP en una ventana de "Ejecutar" ocurra eso.

No sé si en la ocasión anterior llegamos a usar el Teamviewer pero intuyo que va a ser necesario.

Hola experto, mira este articulo a ver si nos ayuda a aclarar un poco lo del mapeo de colas por medio de linea de comandos.

Mapeo de Impresoras de Red por línea de comandos (PrintUI.dll)

esplat

22 Jan 2009 11:44 AM

  • 3

L a tarea de mapear una impresora mediante el interface gráfico es algo que cualquier usuario puede realizar con facilidad, el problema se presenta eres el administrador de la plataforma, son las 8 de la tarde y mañana las 8 todos los usuarios deben tener mapeadas esa impresoras tan chulas que han crecido por los pasillos.

Para agilizar esta tarea podemos crear scripts y utilizar una librería que aunque lleva bastante tiempo entre nosotros tal vez no es lo suficientemente conocida, para los que la conozcáis se llama PrintUI.dll.

A lo largo de estas líneas intentaré mostrar las funciones más comunes.

1.- Añadir una impresora nueva

El objetivo es instalar una impresora de red en un equipo cliente. La impresora ser visible solo para el usuario que ejecuta el comando.

rundll32 printui.dll,PrintUIEntry /in /n\\servidorimpresion\nombre_impresora

Para que la impresora esté disponible para todos los usuarios del equipo, un administrador local de la misma deberá ejecutar lo siguiente:

rundll32 printui.dll PrintUIEntry /ga /n\\ servidorimpression\nombre_impresora

 

2.- Eliminar una impresora existente

Como en el caso anterior esto solo afecta a la impresora del usuario que ejecuta el comando

rundll32 printui.dll,PrintUIEntry /dn /n\\ servidorimpresion\nombre_impresora

Para eliminar la impresora para todos los usuarios del equipo la sintaxis es la siguiente.

rundll32 printui.dll PrintUIEntry /gd /n\\ servidorimpresion\nombre_impresora

3.- Establecer una impresora por defecto

rundll32 printui.dll,PrintUIEntry /y /n\\ servidorimpresion\nombre_impresora

Aquí os he mostrado las funciones más comunes pero si consultáis la ayuda encontraréis el resto de opciones disponibles ya que seguro os serán también de utilidad.

rundll32 printui.dll PrintUIEntry /?

Fuente: http://blogs.technet.com/b/plataformas/archive/2009/01/22/mapeo-de-impresoras-de-red-por-l-nea-de-comandos-printui-dll.aspx 

Espero esto nos ayude, y si no te propongo otra.

Efectivamente lo que se dice en ese artículo es muy interesante y prometedor. He hecho pruebas en mi casa, que tengo un ordenador que hace de servidor y otro que accede a él por wifi y parece que el comando

rundll32 printui PrinUIEntry /in /n\\10.0.184.5\printerbog

Debería instalar/asignar la impresora del servidor de Bogotá para todos los usuarios del equipo en el que se ejecute (exige permisos de administrador, al parecer). Habría que comprobar si basta para que quede operativa (imprimiendo algo desde alguna aplicación) porque me da la impresión de que no instala los drivers.

Para imprimir la página de prueba podría ser:

rundll32 printui PrintUIEntry /k /n\\10.0.184.5\printerbog

Para asignarla como predeterminada parece que sería algo como:

rundll32 printui PrintUIEntry /y /n\\10.0.184.5\printerbog

El bat podría ser algo así:

@echo off
for /f "tokens=1,2 delims=:" %%a in ('ipconfig ^| findstr "Direc"') DO (set IPPC=%%b)
for /f "tokens=1,2,3* delims=." %%l in ('echo %IPPC%') DO (set vlan=%%l.%%m.%%n)
echo La IP es: %IPPC%
echo la vlan es: %vlan%
if %vlan%==10.0.184 (set equipo=10.0.184.5& set impresora=printerbog)
if %vlan%==10.0.50  (set equipo=10.0.50.9& set impresora=printerbar)
if %vlan%==10.0.40  (set equipo=10.0.40.9& set impresora=printermed)
if %vlan%==10.0.70  (set equipo=10.0.70.1& set impresora=printercal)
rundll32 printui PrintUIEntry /in /n \\%equipo%\%impresora%
rundll32 printui PrintUIEntry /k /n  \\%equipo%\%impresora%
rundll32 printui PrintUIEntry /y /n  \\%equipo%\%impresora%

Pruébalo y dime si funciona.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas