I'm trying to create contact list items in a SharePoint 2013 contact list with powershell. Creating items itself is not that hard:
$spWeb = Get-SPWeb -Identity http://sharepoint
$spList = $spWeb.GetList("/Contacts/Lists/Test")
$spListItem = $spList.AddItem()
$spListItem["Title"] = "New Item"
$spListItem.Update()
But setting the properties like street, telephone number, position, etc. drives me crazy. When creating a contact manually in the list via the Website and getting the details of it with PowerShell ($spList.GetItems()), all those properties are put together in a property called Xml. I know I can build the xml on my own and put it in there, but this just seems not to be the right way...
So my question is: How to create a contact item with properties like street, position, etc. correctly with PowerShell?
Update: It looks like setting properties in the xml itself does not have any impact on the item. I tried:
[XML]$a = $spListItem["Xml"];
$a.row.SetAttribute("ows_FirstName", "New Firstname")
$spListItem.Update()
But this change does not appear on the Website nor when looking at the Xml again...
Ok, finally figured it out on my own...
It is really as simple as that...
There is also as MSDN article describing how to do it in C# at https://msdn.microsoft.com/en-us/library/office/ff521580(v=office.14).aspx