VBS para conexión de impresoras con Vista
Hola Jorge,
He leído una de las respuestas que has dado para el montaje de impresoras de red a través de las directivas de grupo utilizando un script en VBS. Muy interesante, la verdad que aún lo tengo que perfeccionar un poco, pero va genial... Gracias!
Aquí viene el problema. Va genial, pero con windows vista no me funciona. Va perfecto con XP y no se si es que Vista utiliza otro lenguaje o otra versión de lenguaje. ¿De qué forma se podría solucionar este problema?
Código que utilizo para XP
'Declaracion de variables
Dim RegEntry, ComputerName, Usuario, Servidor, Red
On Error Resume Next
Servidor = "servidor.es"
Set Red = WScript.CreateObject("WScript.Network")
While Usuario = ""
Usuario = Red.UserName
Wend
Call QuitarImpresoras()
'Montaje de impresoras segun nombre
If InStr(1, UCase(Usuario), "pepe", vbTextCompare) > 0 Then Call SetPrinter(\\ruta\\imp1, True)
If InStr(1, UCase(Usuario), "pepe", vbTextCompare) > 0 Then Call SetPrinter(\\ruta\\imp2, False)
If InStr(1, UCase(Usuario), "pepe", vbTextCompare) > 0 Then Call SetPrinter(\\ruta\\imp3, False)
If InStr(1, UCase(Usuario), "uan", vbTextCompare) > 0 Then Call SetPrinter(\\ruta\\imp4, True)
If InStr(1, UCase(Usuario), "uan", vbTextCompare) > 0 Then Call SetPrinter(\\ruta\\imp5, False)
If InStr(1, UCase(Usuario), "uan", vbTextCompare) > 0 Then Call SetPrinter(\\ruta\\imp6, False)
'Esta subrutina instala la impresora por defecto
Sub SetPrinter(ByVal PrinterPath, default)
DIM WshNetwork
Set WshNetwork=CreateObject("WScript.Network")
WshNetwork.AddWindowsPrinterConnection(PrinterPath)
If default Then
WshNetwork.SetDefaultPrinter PrinterPath
End If
End Sub
Sub QuitarImpresoras()
DIM WshNetwork
set wshNetwork = CreateObject ("WScript.Network")
'deletes all network printers
Set clPrinters = WshNetwork.EnumPrinterConnections
On Error Resume Next
For i = 0 to clPrinters.Count - 1 Step 2
wshNetwork.RemovePrinterConnection clPrinters.Item(i+1), true
Next
On Error Goto 0
end sub
He leído una de las respuestas que has dado para el montaje de impresoras de red a través de las directivas de grupo utilizando un script en VBS. Muy interesante, la verdad que aún lo tengo que perfeccionar un poco, pero va genial... Gracias!
Aquí viene el problema. Va genial, pero con windows vista no me funciona. Va perfecto con XP y no se si es que Vista utiliza otro lenguaje o otra versión de lenguaje. ¿De qué forma se podría solucionar este problema?
Código que utilizo para XP
'Declaracion de variables
Dim RegEntry, ComputerName, Usuario, Servidor, Red
On Error Resume Next
Servidor = "servidor.es"
Set Red = WScript.CreateObject("WScript.Network")
While Usuario = ""
Usuario = Red.UserName
Wend
Call QuitarImpresoras()
'Montaje de impresoras segun nombre
If InStr(1, UCase(Usuario), "pepe", vbTextCompare) > 0 Then Call SetPrinter(\\ruta\\imp1, True)
If InStr(1, UCase(Usuario), "pepe", vbTextCompare) > 0 Then Call SetPrinter(\\ruta\\imp2, False)
If InStr(1, UCase(Usuario), "pepe", vbTextCompare) > 0 Then Call SetPrinter(\\ruta\\imp3, False)
If InStr(1, UCase(Usuario), "uan", vbTextCompare) > 0 Then Call SetPrinter(\\ruta\\imp4, True)
If InStr(1, UCase(Usuario), "uan", vbTextCompare) > 0 Then Call SetPrinter(\\ruta\\imp5, False)
If InStr(1, UCase(Usuario), "uan", vbTextCompare) > 0 Then Call SetPrinter(\\ruta\\imp6, False)
'Esta subrutina instala la impresora por defecto
Sub SetPrinter(ByVal PrinterPath, default)
DIM WshNetwork
Set WshNetwork=CreateObject("WScript.Network")
WshNetwork.AddWindowsPrinterConnection(PrinterPath)
If default Then
WshNetwork.SetDefaultPrinter PrinterPath
End If
End Sub
Sub QuitarImpresoras()
DIM WshNetwork
set wshNetwork = CreateObject ("WScript.Network")
'deletes all network printers
Set clPrinters = WshNetwork.EnumPrinterConnections
On Error Resume Next
For i = 0 to clPrinters.Count - 1 Step 2
wshNetwork.RemovePrinterConnection clPrinters.Item(i+1), true
Next
On Error Goto 0
end sub
{"Lat":41.4427263776721,"Lng":2.186279296875}
1 Respuesta
Respuesta de Zero Secure
1