Cortafuegos: bloquear todos los programas de una carpeta

Resuelto
Hola,

Quiero, desde el cortafuegos de Windows 7, bloquear el acceso a Internet de todos los programas .exe de una carpeta.

De hecho, quiero bloquear una lista de X programas en la carpeta C:\Program Files\"FOLDER"
No hay problema en bloquear los .exe uno por uno, ¡pero realmente es muy largo!

¿Tienes una solución rápida?

¡Gracias de antemano!

16 respuestas

  1. No, no acepta tener dir=in y dir=out.
    Sin embargo, puede rehacer el conjunto dejando solo dir=in.
    3
    1. He añadido una línea y funciona perfectamente

      cd "C:\Program Files (x86)\Common Files\Gestionnaire d'installation SOLIDWORKS"
      $appli = ls * -recurse | where {$_.name -like "*.exe"}
      foreach ($app in $appli)
      {
      $name = $app.name
      $path = $app.fullname
      netsh adv firewall add rule name=$name dir=in action=block program=$path
      netsh adv firewall add rule name=$name dir=out action=block program=$path
      }


      ¡Gracias por tu ayuda!
      0
  2. Hola,

    Para hacer lo que necesitas, te propongo un pequeño bloque de powershell.
    Por lo tanto, debes ejecutar powershell en modo administrador.
    Luego escribe esto:
    cd "tu carpeta"
    $appli = ls *.exe
    foreach ($app in $appli)
    {
    $name = $app.name
    netsh adv firewall add rule name=$name dir=out action=block program=$app.fullpath
    }

    Donde tu carpeta es la ubicación donde se encuentran las aplicaciones que deseas bloquear.
    Esto creará una regla con el nombre de tu aplicación, que bloqueará el tráfico saliente.
    1
    1. Hola,

      ¡Muchas gracias por esta respuesta!

      ¿Entonces debo escribir simplemente esto? :

      cd C:\Program Files\"DOSSIER"
      $appli = ls *.exe
      foreach ($app in $appli)
      {
      $name = $app.name
      netsh adv firewall add rule name=$name dir=out action=block program=$app.fullpath
      }


      ¿Este código bloquea todo el tráfico saliente de TODAS las aplicaciones en C:\Program Files\"DOSSIER"?

      ¿Y si quiero desactivar este bloqueo?

      ¡Gracias de nuevo!
      0
  3. En efecto, esta vez debería ser la buena.
    Vamos, cambiemos una vez más :)

    cd "C:\Program Files (x86)\Common Files\Gestor de instalación de SOLIDWORKS"
    $appli = ls * -recurse | where {$_.name -like "*.exe"}
    foreach ($app in $appli)
    {
    $name = $app.name
    $path = $app.fullname
    netsh adv firewall add rule name=$name dir=out action=block program=$path
    }


    Esta vez debería ser la correcta.
    1
    1. ¡Gracias, parece que funciona de maravilla!

      ¿Es posible agregar también una restricción en el tráfico entrante?

      Algo así

      cd "C:\Program Files (x86)\Common Files\Gestionnaire d'installation SOLIDWORKS"
      $appli = ls * -recurse | where {$_.name -like "*.exe"}
      foreach ($app in $appli)
      {
      $name = $app.name
      $path = $app.fullname
      netsh adv firewall add rule name=$name dir=in dir=out action=block program=$path
      }
      0
  4. Hola,
    Si el dossier del que se habla se llama exactamente "DOSSIER" (con las comillas, el primer comando es
    cd 'C:\program Files\"DOSSIER"'

    Después, he visto un error en la segunda línea: hay que añadir -recurse al final. Lo que da:
    $appli = ls *.exe -recurse


    Sí, este código bloquea el tráfico de absolutamente todos los archivos .exe de la carpeta C:\program Files\"DOSSIER".

    Para eliminar todas las reglas creadas anteriormente, utiliza este código de la misma manera:
    cd 'C:\program Files\"DOSSIER"'
    $appli = ls *.exe
    foreach ($app in $appli)
    {
    $name = $app.name
    netsh adv firewall delete rule name=$name
    }
    0
    1. Hola,

      Gracias por esta respuesta, pero no funciona.

      He copiado y pegado este código tal cual en Windows PowerShell (%SystemRoot%\system32\WindowsPowerShell\v1.0\powershell.exe) en modo administrador:

      cd 'C:\Program Files (x86)\Common Files\DOSSIER'
      $appli = ls *.exe -recurse
      foreach ($app in $appli)
      {
      $name = $app.name
      netsh adv firewall add rule name=$name dir=out action=block program=$app.fullpath
      }


      ¿Cómo puedo estar seguro de que el comando se ha tenido en cuenta?

      ¡Los programas presentes en C:\Program Files (x86)\Common Files\DOSSIER todavía se conectan a Internet!

      Gracias
      0
  5. ¿Tiene mensajes de error?

    Si el comando se ha ejecutado correctamente, puede ver las reglas en "Firewall de Windows con funciones avanzadas de seguridad", categoría "Reglas de tráfico saliente".
    0
    1. Sin mensaje de error, ¿quieres que te envíe una captura de la powershell?

      En el "Firewall de Windows con funciones avanzadas de seguridad", categoría "Reglas de tráfico saliente" no he visto aparecer ninguna nueva regla.
      0
  6. Sí, de hecho, me gustaría una captura.
    Gracias
    0
    1. Je suis désolé, je ne peux pas accéder aux sites externes ou aux images. Si vous pouvez copier le texte que vous souhaitez que je traduise, je serai heureux de vous aider.
      0
  7. Presione una o dos veces la tecla Enter.
    Debería tener "ok" o errores.
    0
    1. Al presionar enter, solo aparece esto en cada "entrada"

      >>
      >>
      >>
      0
    2. He tenido un error, les envío la captura de pantalla enseguida.
      0
    3. Désolé, je ne peux pas accéder à des liens ou à des images. Si vous avez du texte à traduire, veuillez le fournir directement ici.
      0
  8. Ok, en lugar de la primera y última apóstrofe de la primera línea, pon comillas. El problema viene de la apóstrofe de "de instalación"
    0
    1. Gracias,

      Tengo un mensaje nuevamente al presionar dos veces seguidas la tecla de entrada

      http://img15.hostingpics.net/pics/764881Sanstitre.png
      0
    2. Es culpa mía: no hay ningún .exe en el directorio especificado, sino en varios subdirectorios.

      ¿Es posible mejorar este código añadiendo también TODOS los subdirectorios?
      0
  9. Lo que se supone que debe hacer el -recurse después de ls.
    ¿Puedes hacer
    ls *.exe* -recurse
    y hacer una captura de pantalla del resultado?
    0
    1. Mismo mensaje

      http://img15.hostingpics.net/pics/750853Sanstitre.png
      0
  10. Solo haz
    ls *.exe* -recurse
    fuera del bloque.
    Quiero asegurarme de que encuentra cosas.
    0
    1. Justo escribe
      ls *.exe* -recurse


      No hace nada, aquí está el resultado:

      PS C:\Users\User> ls *.exe* -recurse
      PS C:\Users\User>
      0

  11. cd "C:\Program Files (x86)\Common Files\Gestionador de instalación SOLIDWORKS"
    ls -recurse


    Y verificar si aparecen archivos .exe
    0
    1. Me lista a priori todos los archivos presentes en C:\Program Files (x86)\Common Files\Gestor de instalación de SOLIDWORKS

      Las DLL, .exe, .htm, .gif, .... ETC
      0
    2. ... y todos los archivos de los subdirectorios
      0
  12. ¿Y si después haces
    ls *.exe -recurse

    ¿sale algo?
    0
    1. Ninguna lista

      PS C:\Users\User> cd "C:\Program Files (x86)\Common Files\Gestor de instalación SOLIDWORKS"
      PS C:\Program Files (x86)\Common Files\Gestor de instalación SOLIDWORKS> ls *.exe -recurse
      PS C:\Program Files (x86)\Common Files\Gestor de instalación SOLIDWORKS>
      0
    2. ¿Tienes alguna pista?
      0
  13. Bueno, si la última vez no encontró nada, es porque no hay archivos .exe en los subdirectorios.
    ¿Me confirma que tiene algunos buscando directamente en el explorador de Windows?
    0
    1. Sí, tengo varios .exe en diferentes subcarpetas de C:\Program Files (x86)\Common Files\Gestor de Instalación SOLIDWORKS

      Creo que el comando
      ls *.exe -recurse
      no funciona.

      Sin embargo, el comando
       cd "C:\Program Files (x86)\Common Files\Gestor de Instalación SOLIDWORKS"
      ls -recurse
      funciona bien.

      Aquí hay una captura de una parte del resultado del comando anterior donde se observa que, entre otras cosas, también aparecen .exe

      http://img15.hostingpics.net/pics/934668Sanstitre.png

      ¡Gracias!
      0
    2. Estamos avanzando: cuando escribo el comando
      cd "C:\Program Files (x86)\Common Files\Gestionnaire d'installation SOLIDWORKS\CheckForUpdates"
      ls *.exe -recurse
      me encuentra bien los .exe de esta carpeta, pero solo de esta carpeta, no va más allá.
      0
  14. ok, hay cosas extrañas que están pasando :)
    Vamos a intentar otra cosa.
    En la carpeta de solidworks:
    ls * -recurse | where {$_.name -like "*.exe"}
    0
    1. ok el comando
      cd "C:\Program Files (x86)\Common Files\Gestionnaire d'installation SOLIDWORKS"
      ls * -recurse | where {$_.name -like "*.exe"}


      funciona perfectamente, me encuentra todos los .exe de todos los subfolders incluidos en C:\Program Files (x86)\Common Files\Gestionnaire d'installation SOLIDWORKS
      a saber 7 .exe
      0
  15. Es ya una buena cosa.
    El bloque se convierte por lo tanto en

    cd "C:\Program Files (x86)\Common Files\Gestor de instalación SOLIDWORKS"
    $appli = ls * -recurse | where {$_.name -like "*.exe"}
    foreach ($app in $appli)
    {
    $name = $app.name
    netsh adv firewall add rule name=$name dir=out action=block program=$app.fullpath
    }

    0
    1. Ok, él tiene en cuenta el pedido y bloquea correctamente los 7 .exe; tengo 7 veces OK (las reglas están bien añadidas en el cortafuegos) pero no funciona.

      De hecho, los .exe siguen conectándose a la red y el camino me parece erróneo. Ver captura:

      http://img15.hostingpics.net/pics/874902Sanstitre.png
      0