1. ホーム
  2. powershell

[解決済み] PowerShellでSharePoint 2013の連絡先リストに項目を作成する方法は?

2022-02-19 20:45:37

質問内容

SharePoint 2013の連絡先リストに、powershellで連絡先リストの項目を作成しようとしています。項目を作成すること自体はそれほど難しくありません。

$spWeb = Get-SPWeb -Identity http://sharepoint
$spList = $spWeb.GetList("/Contacts/Lists/Test")

$spListItem = $spList.AddItem()
$spListItem["Title"] = "New Item"

$spListItem.Update()

しかし、通り、電話番号、位置などのプロパティを設定すると、気が狂いそうになります。ウェブサイトからリストに手動でコンタクトを作成し、PowerShellでその詳細を取得する場合($spList.GetItems())、これらのプロパティはすべてXmlというプロパティにまとめられます。 自分でxmlをビルドしてそこに入れればいいのは分かっているのですが、これだけでは正しい方法とは言えないようで...。

そこで質問なのですが、PowerShellでstreetやpositionなどのプロパティを持つcontact itemを正しく作成するにはどうしたらいいでしょうか?

更新しました。 xml自体にプロパティを設定しても、アイテムには何の影響もないようです。試してみました。

[XML]$a = $spListItem["Xml"];
$a.row.SetAttribute("ows_FirstName", "New Firstname")
$spListItem.Update()

しかし、この変更はウェブサイトにも、Xmlをもう一度見ても表示されません...。

どうすればいいですか?

よし、やっと自力で解決したぞ...。

$spListItem["Name"] = "Name"
$spListItem["FirstName"] = "FirstName"
$spListItem["FullName"] = "FullName"
$spListItem["Email"] = "Email"
$spListItem["Company"] = "Company"
$spListItem["JobTitle"] = "JobTitle"
$spListItem["WorkPhone"] = "WorkPhone"
$spListItem["HomePhone"] = "HomePhone"
$spListItem["CellPhone"] = "CellPhone"
$spListItem["WorkFax"] = "WorkFax"
$spListItem["WorkAddress"] = "WorkAddress"
$spListItem["WorkCity"] = "WorkCity"
$spListItem["WorkState"] = "WorkState"
$spListItem["WorkZip"] = "WorkZip"
$spListItem["WorkCountry"] = "WorkCountry"
$spListItem["WebPage"] = "http://WebPage.local"
$spListItem.Update()

本当に単純なことなのですが...。

また、C#でこの方法を行う方法を説明したMSDNの記事もあります。 https://msdn.microsoft.com/en-us/library/office/ff521580(v=office.14).aspx