Public/Get-FileOwner.ps1

function Get-FileOwner {

    <#
    .Synopsis
    -Taylor Lee
    Modified 05172019
 
    .Description
    This function produces a CSV listing file owners within a given path
 
    .Parameter Path
    Path where files are to be Audited
 
    .Parameter Report
    Output path and filename for the report
 
    .Example
    Specify the parent folder from which all subfolders are queried and where the report should be saved.
 
    Get-FileOwner -Path c:\users -Report c:\FileOwners.csv
 
    .Link
    https://github.com/TheTaylorLee/AdminToolbox
    #>


    [CmdletBinding(SupportsShouldProcess)]

    PARAM (
        [Parameter(Mandatory = $true)]$Path,
        [Parameter(Mandatory = $true)]$Report
    )

    #Check For Admin Privleges
    Get-Elevation

    $LastWrite = @{
        Name       = 'Last Write Time'
        Expression = { $_.LastWriteTime.ToString('u') }
    }
    $Owner = @{
        Name       = 'File Owner'
        Expression = { (Get-Acl $_.FullName).Owner }
    }
    $HostName = @{
        Name       = 'Host Name'
        Expression = { $env:COMPUTERNAME }
    }


    Get-ChildItem -Recurse -Path $Path |
    Select-Object $HostName, $Owner, Name, Directory, $LastWrite, Length |
    Export-Csv -NoTypeInformation $Report

}