settingsLogin | Registersettings
Es tu primera visita? Te invitamos a visitar nuestra sección de preguntas frecuentes FAQ!
x
Show Menu

Reporte de permisos NTFS en Shares (Grupos y accesos en formato legible Ej. ReadWrite / List Folder Content)

+1 voto
Hola gente,

Tengo que realizar una auditoria de permisos en NTFS de un file server y luego exportarlo a excel,

He buscado incansablemente software en la red, y de lo mejorcito freeware esta el desarrollo de CjwDev que no tiene limitacion en cuanto a cantidad de informacion pero solo exporta a HTML y puede generar hasta un HTML unico de 4 GB, una locura. Este programa podria llegar a usarlo pero en modo grafico sin exportar nada y me sirve pero no es la idea.

El otro es el NETSec ERP 3.5 pero es pago. Lo bueno que tiene es que te permite hacer una comparacion de snapshots sobre que se modifico en cuanto a permisos se refiere. Pero el trial tiene la limitacion de 100 elementos. lastima

He probado DumpSec, Subinacl, ShareEnum, pero no es lo que necesito. Tambien intente un scrip por powershell pero tampoco es lo que necesito.

Tambien he probado el software de Vyapin. pero es pago

Si alguien conoce alguna utilidad freeware o shareware sin limitaciones, o algún poderoso script favor agradeceria una manito para resolver este trabajo.

Muchas Gracias de antemano.
preguntado por Gustavo.Rodrigo (4,555 puntos)   Mar 18, 2013
editado por Gustavo.Rodrigo Mar 18, 2013

2 Respuestas

+1 voto
 
Mejor respuesta

No estoy seguro si te sirva este script de powershell (recuerda cambiar la política de ejecución de powershell con el comando Set-ExecutionPolicy unrestricted):

$OutFile = "C:\temp\Permissions.csv"
$Header = "Folder Path,IdentityReference,AccessControlType,IsInherited," +
          "InheritanceFlags,PropagationFlags,FileSystemRights"
Add-Content -Value $Header -Path $OutFile

$RootPath = "C:\Users"

$Folders = dir $RootPath -recurse | where {$_.psiscontainer -eq $true}

foreach ($Folder in $Folders){
$ACLs = get-acl $Folder.fullname | ForEach-Object { $_.Access  }
Foreach ($ACL in $ACLs){
$OutInfo = $Folder.Fullname + "," + $ACL.IdentityReference  + "," +
           $ACL.AccessControlType + "," + $ACL.IsInherited + "," +
           $ACL.InheritanceFlags + "," + $ACL.PropagationFlags + "," +
           $ACL.FileSystemRights

Add-Content -Value $OutInfo -Path $OutFile
}}

Este es un ejemplo de los valores CSV que obtendrás al ejecutar el script, cargalos en Excell para ver si es lo que necesitas:

Folder Path,IdentityReference,AccessControlType,IsInherited,InheritanceFlags,PropagationFlags,FileSystemRights
C:\Users\Administrator,NT AUTHORITY\SYSTEM,Allow,False,ContainerInherit, ObjectInherit,None,FullControl
C:\Users\Administrator,BUILTIN\Administrators,Allow,False,ContainerInherit, ObjectInherit,None,FullControl
C:\Users\Administrator,AMAZONA-D7VQCIE\Administrator,Allow,False,ContainerInherit, ObjectInherit,None,FullControl
C:\Users\Public,CREATOR OWNER,Allow,False,ContainerInherit, ObjectInherit,InheritOnly,FullControl
C:\Users\Public,NT AUTHORITY\BATCH,Allow,False,None,None,CreateFiles, AppendData, ReadAndExecute, Synchronize
C:\Users\Public,NT AUTHORITY\BATCH,Allow,False,ContainerInherit, ObjectInherit,InheritOnly,DeleteSubdirectoriesAndFiles, Modify, Synchronize
C:\Users\Public,NT AUTHORITY\INTERACTIVE,Allow,False,ContainerInherit, ObjectInherit,InheritOnly,DeleteSubdirectoriesAndFiles, Modify, Synchronize
C:\Users\Public,NT AUTHORITY\INTERACTIVE,Allow,False,None,None,CreateFiles, AppendData, ReadAndExecute, Synchronize
C:\Users\Public,NT AUTHORITY\SERVICE,Allow,False,ContainerInherit, ObjectInherit,InheritOnly,DeleteSubdirectoriesAndFiles, Modify, Synchronize
C:\Users\Public,NT AUTHORITY\SERVICE,Allow,False,None,None,CreateFiles, AppendData, ReadAndExecute, Synchronize
C:\Users\Public,NT AUTHORITY\SYSTEM,Allow,False,ContainerInherit, ObjectInherit,None,FullControl
C:\Users\Public,BUILTIN\Administrators,Allow,False,ContainerInherit, ObjectInherit,None,FullControl
C:\Users\Administrator\Contacts,NT AUTHORITY\SYSTEM,Allow,True,ContainerInherit, ObjectInherit,None,FullControl
C:\Users\Administrator\Contacts,BUILTIN\Administrators,Allow,True,ContainerInherit, ObjectInherit,None,FullControl
C:\Users\Administrator\Contacts,AMAZONA-D7VQCIE\Administrator,Allow,True,ContainerInherit, ObjectInherit,None,FullControl
C:\Users\Administrator\Desktop,NT AUTHORITY\SYSTEM,Allow,True,ContainerInherit, ObjectInherit,None,FullControl
C:\Users\Administrator\Desktop,BUILTIN\Administrators,Allow,True,ContainerInherit, ObjectInherit,None,FullControl
C:\Users\Administrator\Desktop,AMAZONA-D7VQCIE\Administrator,Allow,True,ContainerInherit, ObjectInherit,None,FullControl
C:\Users\Administrator\Documents,NT AUTHORITY\SYSTEM,Allow,True,ContainerInherit, ObjectInherit,None,FullControl
C:\Users\Administrator\Documents,BUILTIN\Administrators,Allow,True,ContainerInherit, ObjectInherit,None,FullControl
C:\Users\Administrator\Documents,AMAZONA-D7VQCIE\Administrator,Allow,True,ContainerInherit, ObjectInherit,None,FullControl

Me cuentas si te sirve.

respondido por victorburgos (3,468 puntos)   Mar 19, 2013
seleccionada por Gustavo.Rodrigo Mar 20, 2013
Victor,

Realmente esto tiene el mismo formato que la exportacion del programa freeware de Cjwdev en HTML y luego convertido a CSV, se ve que la variable $ACL.FileSystemRights encierra dentro de sus resultados valores delimitados por comma y se complica parsearlos en una sola columna. Al final lo he dejado asi, la idea era armar una tabla dinámica con o los resultados, pero no me deja realizarlo porque no coinciden las columnas. Lo dejo así, no se justifica !!! si quieren un resultado mas profesional que paguen un software, jeje-
0 votos
Hola, probaste con la línea de comandos CACLS ó iCACLS?
respondido por daroldan (1,675 puntos)   Mar 19, 2013
Hola daroldan, si he probado pero no es lo que busco, necesito un script o free software. Gracias por tu tiempo !
...