Each of the PowerShell Active Directory module cmdlets, like Get-ADUser and Get-ADComputer, displays a default set of properties for all objects retrieved. You can specify other properties with the -Properties parameter, but the default set will always be included. There is another set of extended properties that can be specified. In addition, any Active Directory attribute appropriate to the class of objects can be included by specifying the LDAPDisplayName of the attribute in the -Properties parameter
You can find more details in technet : Active Directory: Get-ADUser Default and Extended Properties
If your question is how can I know all the attributs that a user (object from the user class) can have, I think that the Active-Directory Schema contains this information. To display all of the attributes that can be retreive on the object you can use :
get-aduser john.doe -Properties *