I have seen in many post and questions on how to add value of a perticular SPField type to a list. Most of them are quite straight forward but there are still some SPField Types which require a different approach.

I have put down mostly all the Field type avilable Out Of Box to a SharePoint list and writting a PowerShell to add a item. 

Fields which require some attention are : Person or Group , Hyperlink or Picture, Managed Matadata etc

Note : I have not added 'External Data' field in the script.

Overview :

The Metadata structure I have used for reference 


Some inside of Script :



#Person or Group 
$newitem["User"] = $web.EnsureUser("{User Name}") 
#Lookup - (1,"1") - First input is the index of the item and Second input is the value at that index.   
$newitem["Lookup"] = new-object Microsoft.SharePoint.SPFieldLookupValue(1,"1"); 
#Managed Metadata 
$taxonomySession = Get-SPTaxonomySession -Site $web.Site