Functions/function-Get-DBBackupObject.ps1

function Get-DBBackupObject
{
  <#
  .SYNOPSIS
    Given a folder, scans for all SQL Server backup files (bak, trn, etc) and returns an object giving abridged details of each backup
  .DESCRIPTION
   A wrapper function around RESTORE FILELISTONLY and RESTORE HEADERONLY to pull back information contained with SQL Server backup files.
 
  .EXAMPLE
    Get-DBBackupObject -InputPath '\\SomeServer\SomeFolder\AnotherFolder'
  .PARAMETER InputPasth
    Path to backup files
 
  #>

  [CmdletBinding()]
  param
  (
    [Parameter(Mandatory=$True,
    ValueFromPipeline=$True,
    ValueFromPipelineByPropertyName=$True)]
    [String]$InputPath,
  
    [Parameter(Mandatory=$True,
    ValueFromPipeline=$True,
    ValueFromPipelineByPropertyName=$True)]
    [Alias('SQLServer')]
    [Microsoft.SqlServer.Management.Smo.SqlSmoObject]$ServerInstance
  )
    Write-Verbose "Get-DBBackupObjects - Entering"

    $objbackups = @()

    Write-Verbose "Get-DBBackupObjects - Getting files"
    foreach ($file in (Get-ChildItem $InputPath\* -include *.bak, *.trn)) {
        Write-Verbose "Get-DBBackupObjects - Checking file $file"
            $objbackups += Restore-SQLBackupHeader -BackupFile $file -ServerInstance $ServerInstance

    }
    Write-Verbose "Get-DBBackupObjects - Leaving function"
    return $objbackups
}