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

 

 


Tema destacado: Tutorial básico de Quickjs


+  Foro de elhacker.net
|-+  Programación
| |-+  Scripting
| | |-+  Editar archivo de windows con VBS en W7
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: Editar archivo de windows con VBS en W7  (Leído 4,949 veces)
softer2

Desconectado Desconectado

Mensajes: 26


Ver Perfil
Editar archivo de windows con VBS en W7
« en: 16 Julio 2014, 04:50 am »

Buenas ando mirando codigos en VBS para editararchivos

En este caso especifico quisiera editar el archivo HOsts del windows

Código:
c:\windows\system32\drivers\etc\hosts


estuve leyendo y es con Set.FileSystemObject  ,

pero quisiera saber un codigo donde tenga el manifest , osea para que edite en Windows 7 alguna ayuda ?


En línea

Eleкtro
Ex-Staff
*
Desconectado Desconectado

Mensajes: 9.866



Ver Perfil
Re: Editar archivo de windows con VBS en W7
« Respuesta #1 en: 16 Julio 2014, 15:06 pm »

estuve leyendo y es con Set.FileSystemObject

FileSystemObject es un objeto:
http://msdn.microsoft.com/en-us/library/aa242706%28v=vs.60%29.aspx

El cual proporciona métodos para crear un archivo, escribir, etc... basicamente son métodos para llevar a cado tareas relacionadas con el FileSystem de Windows:
http://msdn.microsoft.com/en-us/library/6tkce7xa%28v=vs.84%29.aspx

Por lo tanto si, te sirve para la tarea, usando los métodos de escritura, ya que el archivo HOSTS no es más que un archivo de texto plano.

PD: Creo que deberías estudiar los conceptos básicos, la sintaxis del lenguaje, y demás, si realmente estás interesado en desarrollar códigos propios:
http://msdn.microsoft.com/en-us/library/0ad0dkea%28v=vs.84%29.aspx


quisiera saber un codigo donde tenga el manifest, osea para que edite en Windows 7 alguna ayuda ?

No he entendido tu pregunta, no debes interactuar con ningún ".manifest" para editar un archivo de texto.

Respecto a proporcionarte un código, la verdad es que no se si buscas un set completo de edición que te permita eliminar, modificar, y añadir entradas, o que es lo que buscas exactamente, así que te haré dos ejemplos básicos:

Código
  1. Sub AddEntry(ByVal Ip, Byval Alias)
  2.  
  3.    Const HostsFile  = "C:\Windows\System32\Drivers\etc\Hosts"
  4.    Set   objHosts   = CreateObject("Scripting.FileSystemObject"). _
  5.                       OpenTextFile(HostsFile, 8, True)
  6.  
  7.    objHosts.Writeline(vbNewLine & Ip & vbtab & Alias)
  8.    objHosts.Close
  9.  
  10. End Sub

Código
  1. Function GetAliases(ByVal Ip)
  2.  
  3.    Dim Aliases
  4.    Const HostsFile  = "C:\Windows\System32\Drivers\etc\Hosts"
  5.    Set   objHosts   = CreateObject("Scripting.FileSystemObject"). _
  6.                       OpenTextFile(HostsFile, 1)
  7.  
  8.    Do Until objHosts.AtEndOfStream
  9.  
  10.        HostEntry = Split(Replace(objHosts.Readline, vbTab, " "), " ")
  11.        HostIP    = Trim(HostEntry(0))
  12.        HostAlias = Trim(HostEntry(1))
  13.  
  14.        On Error Resume Next
  15.  
  16.        If HostIP = Ip Then
  17.            Aliases = Aliases & HostAlias & vbNewLine
  18.        End If
  19.  
  20.    Loop
  21.  
  22.    objHosts.Close
  23.  
  24.    GetAliases = Split(Aliases, vbNewLine)
  25.  
  26. End Function

Ejemplos de uso:
Código
  1. AddEntry("LOCALHOST", "www.test.com")
  2. MsgBox(GetAliases("LOCALHOST")(0))

Saludos.

EDITO: Una Helper Class gigantesca con todos los métodos que puedas llegar a necesitar:
www.codeproject.com/Articles/11354/VBScript-for-reading-and-writing-to-the-Windows-ho


« Última modificación: 16 Julio 2014, 15:08 pm por Eleкtro » En línea



softer2

Desconectado Desconectado

Mensajes: 26


Ver Perfil
Re: Editar archivo de windows con VBS en W7
« Respuesta #2 en: 16 Julio 2014, 19:50 pm »

Wauo muxas gracias por el codigo

NOse si me dejo explicar con eso del manifest , OSEA con archivos que estan en Windows se necesita elevar privilegios para poder modificar algun archivo ( en vb6 lo hacia con manifest)

y lo que si andaba queriendo exatamente era , que

1: Abrir el archivo hosts y borrar su contenido y poner mi contenido

o

2: Eliminar el archivo hosts y crear uno nuevo con el contenido especifico que quiera



EDITADO : osea a esto me refiero


Código:
Set objShell = CreateObject("Shell.Application")
    objShell.ShellExecute "wscript.exe", Chr(34) & WScript.ScriptFullName & Chr(34) & " RunAsAdministrator", "", "runas", 1



EL codigo ya esta en si .sube prvilegios , abre y añade 1 linea al archivo

Pero lo que quiero es borrar todo el contenido del archivo hosts y añadir recien mis lineas

espero se entienda
« Última modificación: 16 Julio 2014, 23:11 pm por softer2 » En línea

Eleкtro
Ex-Staff
*
Desconectado Desconectado

Mensajes: 9.866



Ver Perfil
Re: Editar archivo de windows con VBS en W7
« Respuesta #3 en: 17 Julio 2014, 16:24 pm »

lo que quiero es borrar todo el contenido del archivo hosts y añadir recien mis lineas

Cuando instancies el objeto, asigna el valor correcto para el parámetro IOmode (ForWriting).
http://msdn.microsoft.com/en-us/library/314cz14s%28v=vs.84%29.aspx

Ejemplo:
Código
  1. CreateObject("Scripting.FileSystemObject").OpenTextFile(HostsFile, 2, True)

Entonces, cuando uses el método Write/WriteLine, se reemplazará el contenido existente del archivo, y podrás seguír utilizando dicho método para continuar escribiendo, hasta que liberes el objeto con el método Close.

Ejemplo:
Código
  1. Const HostsFile  = "C:\Windows\System32\Drivers\etc\Hosts"
  2. Set objHosts     = CreateObject("Scripting.FileSystemObject"). _
  3.                   OpenTextFile(HostsFile, 2, True)
  4.  
  5. With objHosts
  6.  
  7.    .Writeline(vbNewLine)
  8.    .Writeline("127.0.0.1" & vbtab & "www.1.com")
  9.    .Writeline("127.0.0.2" & vbtab & "www.2.com")
  10.    .Writeline("127.0.0.3" & vbtab & "www.3.com")
  11.  
  12.    .Close
  13.  
  14. End With

Saludos.
« Última modificación: 17 Julio 2014, 16:28 pm por Eleкtro » En línea



softer2

Desconectado Desconectado

Mensajes: 26


Ver Perfil
Re: Editar archivo de windows con VBS en W7
« Respuesta #4 en: 17 Julio 2014, 16:58 pm »

Execelente era lo que buscaba

gracias por tu ayuda


Adjuntando el codigo de elevar privilegios en W7 al script queda muybien

si funciona en W7 y W8 el problema es el sigiente

que tambien en Windows XP , al ejecutar el script tbm pide ejecutar como administrador


QUuisiera saber como hacer para que primero el script decte el S.O

Si es XP ejecutar el scrip sin elevarle privilegios

y si es Wvista o W7 o W8 ejecutar el script donde le subo privilegios ..


espero su ayuda , recien ando aprendiendo esto del VBS
« Última modificación: 17 Julio 2014, 19:44 pm por softer2 » En línea

Eleкtro
Ex-Staff
*
Desconectado Desconectado

Mensajes: 9.866



Ver Perfil
Re: Editar archivo de windows con VBS en W7
« Respuesta #5 en: 17 Julio 2014, 21:01 pm »

espero su ayuda , recien ando aprendiendo esto del VBS

Puedes hacer una query a WMI para obtener la versión NT del Windows operativo actual.

San-Google está lleno de ejemplos como este, y como este otro:

Código
  1. Set dtmConvertedDate = CreateObject("WbemScripting.SWbemDateTime")
  2. strComputer = "."
  3. Set objWMIService = GetObject("winmgmts:{impersonationLevel=impersonate}!\\" & strComputer & "\root\cimv2")
  4. Set oss = objWMIService.ExecQuery ("Select * from Win32_OperatingSystem")
  5.  
  6. For Each os in oss
  7.    Wscript.Echo "Caption: " & os.Caption
  8.    Wscript.Echo "Version: " & os.Version
  9. Next

+ List of Microsoft Windows versions

Así pues, si la versión NT empieza por "5.1" o "5.2", será XP, si empieza por "6.1" será Win7, y si empieza por "6.2" o "6.3" será Windows 8/8.1.

+ VBScript Left Function
Código
  1. If Left(os.Version, 2) = "5.1" Then ...

PD: El nombre a mostrar del OS puede variar, pero la versión NT no, por eso te sugiero evitar parsear el Caption.

Saludos
 
« Última modificación: 17 Julio 2014, 21:04 pm por Eleкtro » En línea



softer2

Desconectado Desconectado

Mensajes: 26


Ver Perfil
Re: Editar archivo de windows con VBS en W7
« Respuesta #6 en: 17 Julio 2014, 21:23 pm »

Impresionante

MUxas gracias yo estaba buscando condicionales basado en la caption ya me estaba echando un mundo con if else if else por cada caption pero con la version ya seria mucho mas rapido y mucho mas seguro ya que cada pc tiene nombre distintos

gracias por la ayuda sos un capo
En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
editar archivo .bin
Ingeniería Inversa
albib 4 15,398 Último mensaje 21 Septiembre 2004, 18:26 pm
por albib
Editar archivo swf
Diseño Gráfico
‭lipman 3 21,769 Último mensaje 8 Mayo 2007, 04:19 am
por _loko_
[Pregunta] Editar Archivo .ICO con PS-cs3
Diseño Gráfico
ihton 2 4,839 Último mensaje 25 Agosto 2007, 18:36 pm
por ihton
editar archivo plano
Java
Ricardooo 3 4,214 Último mensaje 22 Julio 2010, 16:26 pm
por Debci
Editar versión de un archivo exe
Ingeniería Inversa
humaster 8 6,749 Último mensaje 30 Junio 2011, 00:15 am
por .:UND3R:.
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines