domingo, 30 de agosto de 2009

DirSize

Con Windows siempre hay una carpeta que ocupa demasiado y no sé donde está. Me pongo a buscarla y llegar a ella es tedioso: clicar en las propiedades de cada carpeta, comprobar el tamaño, y así sucesivamente...

Qué práctico sería ver directamente los tamaños de cada carpeta de la unidad C: (por ejemplo), y más práctico todavía sería ver esos tamaños ordenados para saber primero cual es la carpeta con más tamaño. Así puedo entrar en ella y repetir la operación hasta dar finalmente con la carpeta con más tamaño.

Para ello he implementado una utilidad llamada dirsize que funciona en línea de comandos y que directamente, allá donde se ejecute, te muestra los tamaños de las carpetas.

Por ejemplo, este es un pantallazo de los resultados de ejecutar dirsize en la unidad C:

Con estos resultados, ya sé que la carpeta Windows es la de mayor tamaño en la unidad C: con unos 4,7 Gb.

Ahora sólo me quedaría entrar en la carpeta Windows y volver a ejecutar dirsize para que me diga cual es la carpeta con más tamaño del "lugar".

Y así sucesivamente.

En este caso concreto, os sorprendería saber cual es la más gorda del "lugar", pues Windows oculta el tamaño real de algunas de sus carpetas (si se realiza la consulta mediante las propiedades de la carpeta en cuestión). Con dirsize esta información queda al descubierto y permite saber exactamente el tamaño de cada carpeta y poder tomar medidas si es necesario.

Por último, es recomendable ubicar a dirsize en una carpeta con path (por ejemplo: c:\windows\ o c:\windows\system32\) para que funcione en cualquier sitio.

Buena cacería de carpetas de gran tamaño.



martes, 25 de agosto de 2009

Directorio Activo, Usuarios, Permisos y Carpetas compartidas

En un Directorio Activo, es fácil saber qué usuario/grupo tiene acceso a un recurso como una carpeta compartida (sólo tienes que mirar las propiedades de la carpeta compartida en cuestión), pero las propiedades de un usuario/grupo no te dicen a qué carpetas compartidas tiene acceso en un momento dado.

Una debilidad muy común es el acceso del grupo Todos, y es imprescindible saber en qué carpetas compartidas tiene el permiso Control Total. Igualmente, saber puntualmente quién tiene acceso a qué, y qué tipo de permiso tiene, ayuda de una forma extraordinaria a mantener segura la política de seguridad de un Directorio Activo.

Como no encontré una herramienta que automatice esto, hice en Perl la herramienta de línea de comandos userperm-net, que hace lo siguiente:
  1. Pide al usuario el nombre de un usuario o un grupo
  2. Mediante net view genera un archivo de texto con la lista de los hosts en red
  3. Toma la lista generada y realiza lo siguiente en cada host:
  4. Intenta una conexión WMI para extraer la lista de carpetas compartidas
  5. De cada carpeta compartida, extrae la lista de usuarios/grupos con sus permisos NTFS
  6. Compara cada nombre de usuario/grupo del paso anterior con el introducido en el paso 1
  7. En caso de coincidencia, muestra el nombre del usuario/grupo, el permiso, el host y la ruta completa de la carpeta en cuestión
  8. Por último, si el usuario quiere, muestra una lista con los hosts donde no ha podido conectar con WMI
Consideraciones para utilizar userperm-net:
  • Es mejor ejecutarlo con permisos de administrador de dominio, así llegará al máximo de hosts del Directorio Activo
  • Hay que ser muy cuidadoso introduciendo el nombre de usuario/grupo porque tiene en cuenta mayúsculas/minúsculas, espacios, etc.
  • Como trabaja a nivel de permisos NTFS de carpetas compartidas y no a nivel de permisos de carpetas compartidas en sí, es posible que algunos resultados sólo tengan sentido para accesos locales y no desde otro host
Pantallazo:

martes, 11 de agosto de 2009

Cloud-Computing

La nueva plataforma web aplicada a negocios parece inexorable. Microsoft con Azure, Google con App Engine y otros del mismo calibre están apostando por el Cloud-Computing, que entre otras tiene las siguientes novedades y ventajas:
  • Reducción de costes: normalmente no se pagan licencias, sólo se paga cuota en base al número de usuarios o de uso de la infraestructura. Mantenimiento in-situ prácticamente nulo (sólo necesitas conexión a Internet).

  • Servicios de todo tipo centralizados y escalables: mensajería, blogging, video, intranet, colaboración, aplicaciones a medida, bases de datos, etc., que pueden crecer sin límite aparente y sin problemas.

  • Facilidad de desarrollo: sólo hay que ver este tutorial que traduje sobre Google Apps.

Ahora, ¿cuales son las dudas que invaden a los responsables de las empresas?:
  • Seguridad: las comunicaciones web por Internet no son seguras, ni lo han sido ni lo van a ser.

  • Disponibilidad de los datos: ¿qué ocurre cuando no hay conexión a Internet?

  • Privacidad de los datos: los datos físicamente no los tengo yo, están repartidos dinámicamente por servidores en todo el mundo ¿quien me garantiza su privacidad?

  • Migración: será fiel la migración si migro todo mi sistema al Cloud-Computing, ¿podré después migrar después a otro proveedor de Cloud-Computing?