Function Test-ValueFromPipelineByPropertyName { 
    [CmdletBinding()] 
    Param( 
        [Parameter(Mandatory=$true, 
            ValueFromPipelineByPropertyName=$true)] 
        [string] 
        $Name 
    ) 
 
    Begin { 
        Write-Verbose 'Début du traitement : Begin' 
    } 
 
    Process { 
            Write-Host 'Nom du fichier ou du dossier : ' 
            $Name 
    } 
 
    End { 
        Write-Verbose 'Fin du traitement : End' 
    } 
}

Test-ValueFromPipelineByPropertyName -Name (Get-Item C:\Windows ).Name
Get-ChildItem C:\ -Force | Test-ValueFromPipelineByPropertyName 

