$root = "c:\\files" $report = ".\report.csv" $AllFiles = @() foreach ($file in get-childitem $root -recurse| Select-Object FullName, Root, Directory, Parent, Name, Extension, PSIsContainer, IsReadOnly, Length, CreationTime, LastAccessTime, LastWriteTime, Attributes) { $acl = get-acl $file.fullname | select-object path,owner,accesstostring,group $obj = new-object psObject #$obj | Add-Member -membertype noteproperty -name FilePathandName -Value $file.FullName $obj | Add-Member -membertype noteproperty -name Root -Value $file.Root $obj | Add-Member -membertype noteproperty -name Ditrectory -Value $file.Directory $obj | Add-Member -membertype noteproperty -name Parent -Value $file.Parent $obj | Add-Member -membertype noteproperty -name Name -Value $file.Name $obj | Add-Member -membertype noteproperty -name Extension -Value $file.Extension $obj | Add-Member -membertype noteproperty -name IsDIR -Value $file.PSIsContainer $obj | Add-Member -membertype noteproperty -name IsReadOnly -Value $file.IsReadOnly $obj | Add-Member -membertype noteproperty -name Size -Value $file.Length $obj | Add-Member -membertype noteproperty -name CreationTime -Value $file.CreationTime $obj | Add-Member -MemberType noteproperty -Name LastAccessTime -Value $file.LastAccessTime $obj | Add-Member -MemberType noteproperty -Name LastWriteTime -Value $file.LastWriteTime $obj | Add-Member -MemberType noteproperty -Name Attributes -Value $file.Attributes #$obj | Add-Member -MemberType noteproperty -Name Path -Value $acl.path $obj | Add-Member -MemberType noteproperty -Name Owner -Value $acl.owner $obj | Add-Member -MemberType noteproperty -Name AccessToString -Value $acl.accesstostring $obj | Add-Member -MemberType noteproperty -Name Group -Value $acl.group $AllFiles += $obj } $AllFiles |Export-Csv $report -NoTypeInformation