Bloquerar acceso a Memorias USB
Publicado: 15 Abr 2010, 01:11
Pues bien, necesito bloquear el uso de memorias USB en aproximadamente 150 equipos, la manera que lo hago es modificando una entrada en el registro, todo funciona bien ecepto cuando los usuarios conectan una memoria "nueva", osea una memoria que jamas se ha insertado en el equipo y Windows automaticamente instala el controlador y restaura el valor en el registro, volviendo a habilitar el acceso a todas las memorias USB.
Lo que intento programar es una aplicacion que se ejecute en el equipo como servicio y este monitoreando esa entrada del registro y si esta cambia en automatico la regrese al valor que yo le tenga establecido.
Espero alguien me pueda apoyar en esto, ya que mis conociemientos en programacion son bastante "cortos".
El codigo de lo que ocupo es el siguiente:
Lo anterior habilita o deshabilita el acceso a las memorias USB basandose en el servicio "Controlador de dispositivo de almacenamiento USB" o USBSTORAGE que se modifica en el registro de windows.
Cabe señalar que el la opción de deshabilitar el acceso a dispositivos USB desde "Editor de directivas de windows" no es viable ya que los usuarios que accesan al equipo, por las caracteristicas de las aplicaciones que se manejan tienen privilegios de administrador, ademas que se planea habilitar o deshabilitar la funcion de bloqueo en equipos y momentos que los usuarios sean autorizados, la idea es hacerlo basandonos en una base de datos SQL donde se colocaran que usuarios tienen acceso a las memorias USB y que usuarios no.
Ejemplo:
Tenemos una tabla en SQL con las siguientes filas:
filas: usuario, bloqUSB
Si el usuario "alfredo.santana" que se encuentra en la base de datos tiene el valor "1" en la fila bloqUSB significa que puede tener acceso a las memorias USB
De lo contrario si el valor es 0, no podra tener acceso a estos dispositivos.
Esta parte en la que el programa lee el valor de las tablas segun el usuario lo tengo resuelto, lo que me falta es el tema que les planteo al principio de este post.
De antemano muchas gracias.
Lo que intento programar es una aplicacion que se ejecute en el equipo como servicio y este monitoreando esa entrada del registro y si esta cambia en automatico la regrese al valor que yo le tenga establecido.
Espero alguien me pueda apoyar en esto, ya que mis conociemientos en programacion son bastante "cortos".
El codigo de lo que ocupo es el siguiente:
Código: Seleccionar todo
; Inicio del script
$var = RegRead("HKLM\SYSTEM\CurrentControlSet\services\USBSTOR", "Start")
;~ MsgBox(4096, "Valor", $var)
if $var = "3" then RegWrite ("HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\services\USBSTOR", "Start", "REG_DWORD", "4")
if $var = "4" then RegWrite ("HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\services\USBSTOR", "Start", "REG_DWORD", "3")
Cabe señalar que el la opción de deshabilitar el acceso a dispositivos USB desde "Editor de directivas de windows" no es viable ya que los usuarios que accesan al equipo, por las caracteristicas de las aplicaciones que se manejan tienen privilegios de administrador, ademas que se planea habilitar o deshabilitar la funcion de bloqueo en equipos y momentos que los usuarios sean autorizados, la idea es hacerlo basandonos en una base de datos SQL donde se colocaran que usuarios tienen acceso a las memorias USB y que usuarios no.
Ejemplo:
Tenemos una tabla en SQL con las siguientes filas:
filas: usuario, bloqUSB
Si el usuario "alfredo.santana" que se encuentra en la base de datos tiene el valor "1" en la fila bloqUSB significa que puede tener acceso a las memorias USB
De lo contrario si el valor es 0, no podra tener acceso a estos dispositivos.
Esta parte en la que el programa lee el valor de las tablas segun el usuario lo tengo resuelto, lo que me falta es el tema que les planteo al principio de este post.
De antemano muchas gracias.