Get-SPAllFolderItems.ps1

Function Get-SPAllFolderItems{
        [CmdletBinding()]
        Param(
        
        [Parameter(Mandatory=$true,ValueFromPipeline,ParameterSetName='Folder')]
        [Microsoft.SharePoint.Client.Folder]$Folder,

        [Parameter(Mandatory=$true,ValueFromPipeline,ParameterSetName='List')]
        [Microsoft.SharePoint.Client.List]$List
        
    )

        #update Initialize to support arrays.
        #Initialize-SPOCSOMCollections -CSOMCollection @($list.RootFolder,$list.RootFolder.Folders,$List.RootFolder.Files)
        if($List){
            Initialize-SPOCSOMCollections -CSOMCollection $list.RootFolder
            $Folder = $list.RootFolder
        }
        Initialize-SPOCSOMCollections -CSOMCollection $Folder.Folders
        Initialize-SPOCSOMCollections -CSOMCollection $Folder.Files
        $items = $Folder.Files

        If($Folder.Folders.Count -gt 0){
            $Folder.Folders | ForEach-Object {
                $items += Get-SPAllFolderItems -Folder $_ 
            }
        }
        Return $items
}