Espacio para hablar de esas cosas absurdas que tanto me divierten.

martes, 30 de agosto de 2011

Cambiar nombre impresora conectada por terminal server windows 2003

A veces, he tenido la necesidad de asignar una impresora especifica a alguna tarea, generalmente a un impreso de access para que imprima directamente por ella, por ejemplo una impresora de tickets. Hacerlo en un ordenador local no tiene mayor problema, pero hacerlo a través de terminal server puede llegar a ser una pesadilla. Por ello, y buscando siempre en distintos foros y ayudas, he creado mi propio script que hace lo que necesito, cada vez que el cliente se conecta cambia el nombre que corresponda por el que yo le digo y así siempre es la misma impresora.

archivo 1 = borrarimpresoraanterior.vbs



strComputer = "."
Set objWMIService = GetObject("winmgmts:" & "{impersonationLevel=impersonate}!\\" & strComputer & "\root\cimv2")

Set colInstalledPrinters = objWMIService.ExecQuery _
("Select * from Win32_Printer Where name LIKE '%ETIQUETASBARCELONA%'")

For Each objPrinter in colInstalledPrinters
'Wscript.Echo "Name: " & objPrinter.Name
objPrinter.Delete_
Next

archivo 2 = cambiarnombreimpresora.vbs

strComputer = "."
Set objWMIService = GetObject("winmgmts:" & "{impersonationLevel=impersonate}!\\" & strComputer & "\root\cimv2")

Set colInstalledPrinters = objWMIService.ExecQuery _
("Select * from Win32_Printer Where name LIKE '%ZEBRA%BARCELONAALM%'") 'nombre de impresora y de máquina remota

For Each objPrinter in colInstalledPrinters
'Wscript.Echo "Name: " & objPrinter.Name
objPrinter.RenamePrinter "ETIQUETASBARCELONA" 'nuevo nombre de la impresora remota
Next

archivo 3 = compartirimpresora.vbs

strComputer = "."
Set objWMIService = GetObject("winmgmts:" & "{impersonationLevel=impersonate}!\\" & strComputer & "\root\cimv2")

Set colInstalledPrinters = objWMIService.ExecQuery _
("Select * from Win32_Printer Where name LIKE '%ETIQUETASINTERNET%'")

For Each objPrinter in colInstalledPrinters
'Wscript.Echo "Name: " & objPrinter.Name
objPrinter.Shared = True
objPrinter.ShareName = "etisinternet"
objPrinter.Put_
Next

archivo 4 = cambiarnombreimpresora.bat

@echo off
echo "CAMBIANDO NOMBRE IMPRESORA ETIQUETAS, por favor espere..."
ping -n 20 127.0.0.1

echo "ELIMINAR IMPRESORA ANTERIOR SI PROCEDE..."
wscript.exe c:\impresoraetiquetas\impresoraetiquetasbarcelona\borrarimpresoraanterior.vbs

echo "CAMBIAR NOMBRE IMPRESORA..."
wscript.exe c:\impresoraetiquetas\impresoraetiquetasbarcelona\cambiarnombreimpresora.vbs

etc...

2 comentarios:

Datos personales

Mi foto
Legendario jugador de Match Day 2.