elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Curso de javascript por TickTack


  Mostrar Mensajes
Páginas: 1 2 [3]
21  Programación / Scripting / Re: Mapeo de impresoras en red por usuarioa en: 25 Abril 2011, 16:01 pm
Hola,

probe el script que me comento  0,0 y me sale este error ??

Microsoft (R) Windows Script Host versión 5.8
Copyright (C) Microsoft Corporation 1996-2006. Reservados todos los derechos.

\\192.168.2.140\netlogon\prueba.vbs(20, 47) Error de compilación de Microsoft VBScript: Error de sintaxis


***** script completed - exit code: 1 *****

Linea en el que sale error .

20                msgbox "Deleting:" & vbcrlf &
 
22  Programación / Scripting / Re: Mapeo de impresoras en red por usuarioa en: 25 Abril 2011, 15:56 pm
Hola,

Gracias 0,0 por responder a mi preguntael script esta bien.

Que cambios se tendria que hacer ??


Saludos
23  Programación / Scripting / Re: Mapeo de impresoras en red por usuarioa en: 25 Abril 2011, 15:43 pm
Hola Novlucker,

probe el script y no me agrega ninguna impresora.

si suena bien esto de cambiar el nombre del servidor pero hay que tener en cuenta si el equipo es nuevo como saber que impresoras le corresponde ???.

saludos
24  Programación / Scripting / Re: Mapeo de impresoras en red por usuarioa en: 25 Abril 2011, 14:23 pm
Hola,

te comento prueba1 prueba2 y prueba3 son grupos que eh creado en mi Active directory para realizar pruebas.

la estructura seria asi :

Prueba1(OU)            Prueba2(OU)             Prueba3 (OU)
\\server\impresora  \\server\impresora     \\server\impresora

lo que quiero es que cuando inicie la sesion el usuario valide al grupo que pertenece y asi pueda asignar la impresora.

otra opcion seria que verifique que impresoras tiene el usuario y solo cambie la ruta del servidor a donde imprimira.

son opciones no se cual me recomiendas.

sobre los tutoriales estan muy bien, si lo pudieras terminar y poner algunos ejemplos para poder practicar seria genial.

Saludos
25  Programación / Scripting / Re: Mapeo de impresoras en red por usuarioa en: 25 Abril 2011, 13:41 pm
Hola,

Gracias por la pronta respuesta, si el script es muy extenso. si hay alguna manera de acortarlo seria bueno.

esta es la estructura del CSV
Prueba1                                 Prueba2                      Prueba3
\\server1\123456                 \\server1\123456              \\server1\12345678
\\server1\12345678      

estoy probando en maquinas virtuales para luego pasarlo a lo real.
claro si se puede hacer mas simple y me puedes indicar como hacerlo te lo agradecere.

otra consulta, aparte de los tutoriales que publicaste y muchos ejemplos en el foro, conoceras algun buen libro el cual pueda leer para poder practicar, Si esta en castellano seria mejor.

Saludos

26  Programación / Scripting / Re: Mapeo de impresoras en red por usuarioa en: 25 Abril 2011, 13:12 pm
Hola,

la respuesta esta muy bien, pero disculpar mi ignorancia eh estado probando introducir el codigo con la ruta del archivo y no me puedo aclarar, no se si me puedes orientar si lo que reemplazo esta correcto, me estoy iniciando en este campo y aun no lo tengo muy claro, ya descarge los manuales que me indicaste y estan muy bien.

se que hay veces estos temas cansan cuando las personas son novatas y en verdad debe ser algo facil.

si los cambios que realizo son solo en estas lineas o afectaran a las demas ?

saludos


Código
  1. Function texto
  2.  
  3.  
  4. ArrayCols = Array ("A", "B", "C", "D", "E", "F", "G", "H", "I", "J", "K", "L", "M", "N", "O","P","Q", "R", "S", "T", "U","V","W","X","Y","Z")
  5.                         'Define la tabla con letras, para hacer búsquedas secuenciales en el excel.
  6.  Dim libro
  7.  Dim Intfil,Intcol
  8.  Dim archivotexto
  9.  
  10. Set objfso = createobject("scripting.filesystemobject")
  11. Set archivotexto = objfso.opentextfile("C:\impresoras1.txt",1) 'abrimos el archivo
  12. msgbox archivotexto.readline 'leemos una linea, la primera
  13. archivotexto.skipline 'saltamos una linea
  14. msgbox archivotexto.readline 'leemos una linea, la tercera
  15. archivotexto.close 'cerramos el archivo
  16.  
  17.  'RutaExcel = "C:\impresoras1.xls"
  18. ' Set libro = Wscript.CreateObject("Excel.Application")
  19.  Call libro.Workbooks.Open(archivotexto,0)
  20.  
  21.   libro.Sheets(1).Activate
  22.        Intcol = 0                                 'esto es un hack, para no declarar más veces la variable
  23. do
  24.                IntFil = 1
  25.                if Getgroup (Username,libro.Range(ArrayCols(Intcol) & Intfil).Text) = True then 'Comprueba si el usuario pertenece al grupo 'Recorre las columnas y luego las filas, comparando si es distinto de espacio en blanco, en caso negativo, si la fi
  26. Do while libro.Range(ArrayCols(Intcol) & Intfil+1).Text <>  ""
  27.                               wscript.echo "Instalando la impresora : " & libro.Range(ArrayCols(Intcol) & Intfil+1).Text & " espere... "
  28.                               Objnet.AddWindowsPrinterConnection libro.Range(ArrayCols(Intcol) & Intfil+1).Text  'instala impresora
  29.                               IntFil = IntFil + 1
  30. Loop
  31.                        intfil = 1 'Para volver a la primera fila otra vez y comparar
  32. end if
  33.                Intcol = Intcol + 1
  34. loop while  libro.Range(ArrayCols(Intcol) & Intfil).Text <> ""
  35.        libro.Quit 'IMPORTANTÍSIMOOOOOOOOO. es como los accesos via ADOdb. Se ha de cerrar conexion sino queda zombi
  36. end function
27  Programación / Scripting / Mapeo de impresoras en red por usuarioa en: 24 Abril 2011, 17:00 pm
Un saludo para todos,

espero que alguien me pueda ayudar soy nuevo en el mundo de script y me gustaria aprender.

bueno mi pregunta es la siguiente. Tengo un servidor de impresoras con mas de 100  impresoras y lo migre a otro servidor, ahora necesito que los usuario se les mapee las impresoras al nuevo servidor, revisando encontre este script que lee desde un excel y mapea las impresoras, mi problema es como puedo cambiar la instruccion del excel para que me lea de una archivo CSV o TXT, adjunto el script para que alguien me pueda ayudar

si se puede reducir el codigo seria excelente.


Saludo

Código
  1. #############################################333
  2. Dim ObjNet,ObjGroup                                  
  3. Dim ComputerName,UserNamedim,CompType                
  4.  
  5. '###Fin declaración variables#####################################################################
  6.  
  7. '###creación objetos    
  8.  
  9. Set OBJnet = CreateObject("WScript.Network")           'crea el objeto net
  10.  
  11. '###fin creación objetos###########################################################################
  12.  
  13.  
  14. '####inicialización  variables#####################################################################
  15.  
  16.   ComputerName = ObjNet.ComputerName             'no necesita explicación...
  17.   UserName = ObjNet.username                     'coje el nombre
  18.  
  19.  
  20. '### fin de inicialización variables ##################################################################
  21.  
  22. '### MAIN ############################################################################################
  23.  
  24. if not existe then 'Comprueba que existe el fichero c:\temp\existe.txt. si no existe, es la primera vez que se ha entrado
  25.    WScript.Echo "User Name:        " & UserName
  26.    WScript.Echo "computername:     " & ComputerName
  27.    wscript.echo "tipo de máquina : " & tipoMaquina(ComputerName)'Por el tipo de letra del nombre, determina tipo de máquina.
  28.  
  29.     RemoveAllPrinters 'LAS BORRA TODAS BIEN BORRADAS.
  30.     wscript.echo excel
  31.    createafile 'crea el archivo para no ejecutar más el script.
  32. end if
  33.  
  34. '###END MAIN ############################################################################################
  35.  
  36.  
  37. '###FUNCIONES y RUTINAS ##############################################################################################
  38.  
  39. Function TipoMaquina(strcomputername)
  40. on error resume next
  41. CompType = ucase(mid(StrComputerName,6,1))                'determina que tipo de maquina es por la letra del nombre                                                                     'Desktop(D),Laptop(L) o server(0)
  42.         select case CompType
  43. case "D" TipoMaquina = "desktop"
  44. case "N" TipoMaquina = "Laptop"
  45. case "0" TipoMaquina= "servidor"
  46. case else TipoMaquina = "error"
  47.        end select
  48.  
  49. End Function
  50.  
  51.  
  52.  
  53. sub MapDrive(strDrive,strShare)                           'intenta mapear la unidad vía funcion y devuelve error false o true
  54. on error resume next                              ' si no se pone, para en el error y no comprueba el condicinoal del Err
  55. ObjNet.MapNetworkDrive strDrive,strShare
  56.        If Err  Then
  57. ObjNet.RemoveNetworkDrive strDrive
  58.               ObjNet.MapNetworkDrive strDrive,strShare
  59.        End If
  60. End sub
  61.  
  62.  
  63.  
  64. function  Getgroup(user,group) 'devuelve true or false dpendiendo si es del grupo o no. No hay otra manera de hacerlo
  65. Dim DomainName
  66. DomainName = "WinNT://MIDOMINIO/" 'cambiar al dominio propio.
  67.  
  68.          on error resume next
  69.  
  70.          Set ObjGroup = GetObject(DomainName &group)
  71.           if err then
  72.           wscript.echo "No existe el grupo : "&group
  73.           GetGroup = False
  74.           else
  75.               If ObjGroup.IsMember(DomainName&user) = true Then
  76.         wscript.Echo "si, pertenece al grupo "&group
  77.                     Getgroup = True
  78.               Else
  79.                 wscript.Echo "No pertenece al grupo "&group
  80.                 Getgroup = False
  81.                 End If
  82.                 end if
  83. end function
  84.  
  85. Function Excel
  86.  
  87. ArrayCols = Array ("A", "B", "C", "D", "E", "F", "G", "H", "I", "J", "K", "L", "M", "N", "O","P","Q", "R", "S", "T", "U","V","W","X","Y","Z")
  88.                         'Define la tabla con letras, para hacer búsquedas secuenciales en el excel.
  89.  Dim libro
  90.  dim Intfil,Intcol
  91.  dim RutaExcel
  92.  RutaExcel = "\\RUTA_AL_EXCEL"
  93.  set libro = Wscript.CreateObject("Excel.Application")
  94.  call libro.Workbooks.Open(RutaExcel,0)
  95.  
  96.   libro.Sheets(1).Activate
  97.        Intcol = 0                                 'esto es un hack, para no declarar más veces la variable
  98. do
  99.                IntFil = 1
  100.                if Getgroup (Username,libro.Range(ArrayCols(Intcol) & Intfil).Text) = True then 'Comprueba si el usuario pertenece al grupo 'Recorre las columnas y luego las filas, comparando si es distinto de espacio en blanco, en caso negativo, si la fi
  101. Do while libro.Range(ArrayCols(Intcol) & Intfil+1).Text <>  ""
  102.                               wscript.echo "Instalando la impresora : " & libro.Range(ArrayCols(Intcol) & Intfil+1).Text & " espere... "
  103.                               Objnet.AddWindowsPrinterConnection libro.Range(ArrayCols(Intcol) & Intfil+1).Text  'instala impresora
  104.                               IntFil = IntFil + 1
  105. Loop
  106.                        intfil = 1 'Para volver a la primera fila otra vez y comparar
  107. end if
  108.                Intcol = Intcol + 1
  109. loop while  libro.Range(ArrayCols(Intcol) & Intfil).Text <> ""
  110.        libro.Quit 'IMPORTANTÍSIMOOOOOOOOO. es como los accesos via ADOdb. Se ha de cerrar conexion sino queda zombi
  111. end function
  112.  
  113. Function RemoveAllPrinters
  114. On Error Resume Next
  115. set objNetwork = CreateObject("wscript.network")
  116. Set objPrinters = objNetwork.EnumPrinterConnections
  117. For i = 0 to objPrinters.Count - 1 Step 2
  118.    PrinterPath = objPrinters.Item(i+1)
  119.    wscript.echo  "eliminando impresora : " & printerpath & " Espere..."
  120.    objNetwork.RemovePrinterConnection PrinterPath, true, true
  121. Next
  122.  
  123. end function
  124.  
  125. Function existe
  126. Dim Exist
  127.   Set Exist = CreateObject("Scripting.FileSystemObject")
  128.   If (Exist.FileExists("c:\temp\existe.txt")) Then
  129.    existe = True
  130.   Else
  131.     existe = False
  132.   End If
  133.  
  134. End Function
  135.  
  136.  
  137. Sub CreateAfile
  138.   Dim fso, MyFile
  139.   Set fso = CreateObject("Scripting.FileSystemObject")
  140.   Set MyFile = fso.CreateTextFile("c:\temp\existe.txt", True)
  141.   MyFile.Close
  142. End Sub
Páginas: 1 2 [3]
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines