Function Test-Paging
{ 
    [CmdletBinding(SupportsPaging = $true)] 
    Param( 
        [System.Collections.ArrayList]$Object 
    ) 
  
    if ($PsCmdlet.PagingParameters.IncludeTotalCount)
    { 
        #Parametre Includetotalcount detecte 
        $Accuracy = 1.0 
        $PsCmdlet.PagingParameters.NewTotalCount($Object.count, 
            $Accuracy) 
    } 
  
    #Determine le premier objet a afficher 
    if ($PsCmdlet.PagingParameters.Skip -eq 0)
    { 
        $FirstObject = $PsCmdlet.PagingParameters.Skip 
    }
    else
    { 
        $FirstObject = $PsCmdlet.PagingParameters.Skip - 1 
    } 
  
    #Determine le dernier objet a afficher 
    $LastObject = $FirstObject + `
        [Math]::Min(
        $PsCmdlet.PagingParameters.First,
        $Object.Count - $FirstObject
    ) - 1
  
    #On retourne le Resultat 
    $Object[$FirstObject..$LastObject] 
}  
  
#Generation de nos objets 
[System.Collections.ArrayList]$Obj = @() 
For ($i = 1; $i -le 15000; $i++)
{ 
    $Obj += [PSCustomObject]@{ 
        Name = "Objet N°$i" 
        GUID = [GUID]::NewGuid() 
    } 
}

# Generation de nos objets 
[System.Collections.ArrayList]$Obj = @() 
For ($i = 1; $i -le 15000; $i++)
{ 
    $Obj += [PSCustomObject]@{ 
        Name = "Objet N°$i" 
        GUID = [GUID]::NewGuid() 
    } 
}


Test-Paging -Object $obj -skip 10 
Test-Paging -Object $obj -First 10 