miércoles, 29 de enero de 2014

SOLUCIÓN: "Visualizador de fotos de Windows no puede abrir esta imagen porque no tiene permisos de accesos correctos para la ubicacion de este archivo"

Un poco largo el título, pero con lo que me costó solucionarlo quiero ser lo más específica posible. 

 Les cuento qué me pasó: Hace unos días terminé de usar mi notebook Dell y la apagué. Quedó con la imagen de WINDOWS ESTÁ APAGANDO EL SISTEMA o ago así. Pasó algo como media hora y como no terminaba, apagué manualmente manteniendo apretado el boton Power. Sé que eso no es muy bueno pero se había tildado. (Ésta el la 3° vez que me falla el sistema de la PC, pero siempre lo puse solucionar).
Al día siguiente enciendo la PC y todo parecía funcionar normalmente. Cuando termina de conectarse al Wifi de mi casa abro Mozilla Firefox, y la Google no funcionaba. Hice correr el antivirus pero me daba error. Ahí empecé a sospechar...
 Voy a la carpeta de imágenes, y todas las carpetas se veían normales. Entro a una carpeta cualquiera y las imágenes en miniatura también se veían normales. Cliqueo en una foto para verla y sucedió:

"Visualizador de fotos de Windows no puede abrir esta imagen porque no tiene permisos de accesos correctos para la ubicacion de este archivo"





Casi me muero! Probé con los archivos de música y lo mismo. Como iba a buscar una solución si no podía abrir ninguna página?!  CELULAR. Busqué, encontré y probé un montón de posibles soluciones pero nada servía.

Por ejemplo:

La forma mas rapida y efectiva es usar comandos. Para ello se dbe abrir siempre una consola de comandos en modo elevado (Inicio, Programas, Accesorios, boton derecho en Simbolo del Sistema y "Ejecutar como Administrador" -aunque lo seas-). En dicha consola tienes dos comandos el takeown y el icacls. El primero toma propiedad de un archivo, una carpeta, etc, etc (es dcir te da permisos para modificar los accesos) y el segundo crea o modifica las listas de acceso a ese archivo, carpeta, etc... Para ver la sintaxis de cada comando, ejecuta en la consola:
takeown /?
icacls /?

RIDÍCULO! Esos códigos nos abren información extensísima de para que se usan esos códigos y qué letras agregarle según el fin que necesitemos, pero si no somos reparadores de PC es imposible que resolvamos sólo con esa información.

Otra cosa que encontré fue meterse archivo por archivo en propiedades, permisos, blabla y modificar un montón de ítems... 
Para volverse loco, siguiendo todos los pasos tardé más de 5 minutos en reparar una foto y adivinen que? No funcionó.


LA SOLUCIÓN.
 
Por algún motivo que no sabemos, nuestra PC nos quitó todo permiso para usarla. Lo que tenemos que hacer es habilitar estos permisos.

1. Botón de inicio > Todos los programas  >  Accesorios.
2. Click DERECHO en Símbolo del sistema.
3. Ejecutar como administrador.


Se abre la pantalla negra con las letras blancas. Una vez ahí tipeamos o pegamos éste comando (si lo vamos a tipear prestar mucha atención a los signos y espacios): 

takeown /F "%SYSTEMDRIVE%\*" /R /D S

  Le damos ENTER y esperamos que termine el proceso, tarda un poco, se van abriendo líneas con las cosas que se van procesando y todas terminan el CORRECTO.
 Cuando termina de trabajar tipeamos o pegamos éste comando: 

  icacls "%SYSTEMDRIVE%\*" /grant Administradores:(D,WDAC) /T

 Le damos ENTER y cuando termine cerramos todo y reiniciamos la PC.


LISTO! FUNCIONA!





Ahora la explicación, por si queda alguna duda.



takeown /F "%SYSTEMDRIVE%\*" /R /D S

Takeown es para indicar el propietario.

 /F -> Indica el archivo/carpeta al que queremos cambiar el propietario (en este caso es %SYSTEMDRIVE%).
 

%SYSTEMDRIVE% -> Es la variable de entorno del disco duro principal desde donde se ejecuta windows, es decir: "C:\" (por defecto, lo más común).
 

* -> Con el símbolo asterisco, indicamos todos los archivos de esa carpeta (Archivos, no carpetas, pero combinado con /R es igual a: Todos los archivos de todas las carpetas del disco duro (en este caso)).
 

/R -> Realiza el cambio de propietario en los subdirectorios (En este caso sería en todo el disco duro).
 

/D S -> En algunas carpetas puede surgir una pregunta al intentar indicar el propietario donde dice que si quieres darle permisos, pues "/D S" lo único que hacen en este caso es contestar "Si" automaticamente a esa pregunta, para no tener que hacerlo manualmente.

icacls "%SYSTEMDRIVE%\*" /grant Administradores:(D,WDAC) /T

Icacls: es para indicar los permisos del propietario que pusimos en el primer comando (Takeown).

 %SYSTEMDRIVE% -> Como ya dijimos anteriormente, "C:\" (En este caso).
 

* -> (símbolo asterisco) Todos los archivos de esa carpeta (Archivos, no carpetas, pero combinado con /T es igual a: Todos los archivos de todas las carpetas del disco duro).
 

/grant -> Es la opción para indicar que se le quieren conceder permisos a un usuario. (Lo que quiero decir, es que en vez de /Grant se podria usar /Deny para denegar permisos por ejemplo.)
 

Administradores -> El grupo de usuarios (en este caso), (Administrador).
 

(D,WDAC) -> Los permisos a conceder. (en este caso "D" y "WDAC").

  /T -> Realiza el cambio de permisos en los subdirectorios (En este caso sería en todo el disco duro).


Espero que les sirva!