Cómo exportar permisos NTFS de carpetas con PowerShell

miércoles, 5 de noviembre de 2014

En esta ocasión veremos el código necesario en PowerShell para exportar a un archivo CSV los permisos de una carpeta y todas sus subcarpetas, lo cual puede llegar a ser de utilidad para ustedes en cualquier momento.
Voy a exportar los permisos en una estructura que he creado en mi disco C:\ y es la siguiente: 
Ahora, abrimos una consola de PowerShell y escribimos lo siguiente:
Get-Childitem -path "C:\Folder" -recurse | Where-Object {$_.PSIsContainer} | Get-ACL| Select-Object Path -ExpandProperty Access | Export-CSV "C:\Folder\ntfs_permisos_folder.csv" -NoTypeInformation
Lo que aparece en negrilla debe reemplazarlo por sus propias rutas.

Lo anterior, generará un archivo csv llamado ntfs_permisos_folder.csv en la ruta C:\Folder, el archivo contiene los permisos de la carpeta Folder incluyendo las subcarpetas subfolder1 y subfolder2 mostradas en la primer imagen.

Espero esta información les sea de utilidad.

7 comentarios:

prubio dijo...

fantastico, me sirvio para una monitorización rápida.

Unknown dijo...
Este comentario ha sido eliminado por el autor.
Unknown dijo...

Hola este reporte te muestra los permisos ntfs de la carpeta raíz? O solo de sus subdirectorios? Saludos.

Miguel Pinilla dijo...

Hola amigo, En teoría el tema funciona pero para rutas no mayores a 248 caracteres, en mi caso este número lo supera en una gran cantidad de archivos. Es posible ampliar para que reciba ruta mas grandes?.... saludos

Get-Childitem : The specified path, file name, or both are too long. The fully qualified file name must be less than
260 characters, and the directory name must be less than 248 characters.
At line:1 char:1
+ Get-Childitem -path "F:\Share" -recurse | Where-Object {$_.PSIsContainer} | Get- ...
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ CategoryInfo : ReadError: (F:\Share\Contro...a\Mantenimiento:String) [Get-ChildItem], PathTooLongExcept
ion
+ FullyQualifiedErrorId : DirIOError,Microsoft.PowerShell.Commands.GetChildItemCommand

César Herrada dijo...

Hola Miguel, realmente no hay algo que puedas hacer para ampliar este límite, lo que sí puedes hacer, es por ejemplo crear una unidad mapeada que haga acortar lo más que se pueda la ruta. Por ejemplo: y:\ apuntando a F:\Share\Controladores\Mantenimiento\... Con lo cual podrás reducir en algo la ruta. Un saludo!

gonzalo aravena dijo...

Estimado otra opción es crear un link simbólico y ahí ejecutar el reporte.

Con el comando mklink.

Saludos !

Aitor Prados dijo...

Y para importarlos?

 

MVP Award

MVP Award
Microsoft Azure

Lo más visto

Certificaciones

Comunidad

Comunidad
Comunidad Técnica

Sobre mi

Mi foto
Microsoft Azure MVP MCT|MCSE|MCSA

Visitantes


flags.es