Últimamente he estado trabajando con uno de nuestros chicos de almacenamiento en un proyecto que ha implicado un escrutinio de los archivos compartidos de gran tamaño que la compañía ha utilizado durante años. Con frecuencia, nos encontramos con directorios o archivos a los que no podemos acceder (con una cuenta de administrador de dominio) por uno o más de los siguientes motivos:
- ACL corruptas
- el acceso ha sido revocado o denegado para el grupo Administradores (o usuario del SISTEMA)
- nombre de archivo + ruta demasiado larga (más allá de MAX_PATH )
Hay un puñado de herramientas que pueden ayudar en estas situaciones, desde Microsoft (por ejemplo, TAKEOWN.EXE e ICALCS.EXE) o terceros (por ejemplo, SETACL.EXE ). A veces se necesitan otros trucos, como ejecutar uno de los comandos en la cuenta SYSTEM con PSEXEC.EXE . Incluso solo averiguar qué pasos hacer y en qué orden es un desafío ...
Por ejemplo, me gustaría poder solucionarlo con un flujo como este:
- ¿El camino es demasiado largo? Si es así, construya una ruta con el
\\?\
prefijo, luego pruebe nuevamente. - ¿Está dañado el ACL? Si es así, vuelva a ordenar los ACE correctamente y elimine cualquier incógnita, luego pruebe nuevamente.
- ¿Se ha denegado el acceso al grupo de administradores? Si es así, tome posesión, vuelva a agregar permisos para el grupo de Administradores y la cuenta SYSTEM, luego vuelva a probar.
- ¿Sigue fallando? Si es así, elimine todas las ACE y aplique solo permisos heredados, luego verifique nuevamente. (Este es un último recurso, ya que con frecuencia abre permisos que debían ser más restrictivos).
- ¿Es un directorio? Si es así, entonces el proceso debe continuar recursivamente para los archivos dentro ...
Hacer los pasos anteriores manualmente es un fastidio, y no es razonable cuando tenemos cientos de directorios para arreglar. He intentado escribir scripts para ayudar con estos, pero encuentro que es difícil hacer que el script sea "inteligente" acerca de las decisiones que toma, y por lo tanto, a menudo es más fácil hacer un método de reparación general, como restaurar solo los permisos heredados.
¿Alguien puede recomendar otro software y / o scripts que ayuden en este proceso? O bien, ¿cómo soluciona problemas de permisos como estos?
fuente
/force
opción realmente funciona, a diferencia de otras (como ejecutarse bajo la cuenta SYSTEM con psexec.exe u opciones similares de uso-backup-y / o-SYSTEM-permission). Tuve que escribir un script de PowerShell para excavar a través del sistema de archivos y arreglar todo, pero es increíble que la única herramienta externa que necesita es esta. Gracias por el consejo, @ syneticon-dj!