Powershell-使用多个值更新MMD字段 [英] Powershell - Update MMD Field with multi values
问题描述
大家好,
我在Pages Library中有一个MMD字段,该字段允许多个值.
I have an MMD Field in Pages Library, which allows multiple values.
我使用itemID尝试更新多个值.这些值来自.csv文件.
Using the itemID, I am trying to update multiple values. These values are coming from a .csv file.
例如CSV:
ID , Value
1212 , .Net;Java;C#;
1213 , .Net
1211 , Java
我尝试了以下代码
Add-PSSnapin Microsoft.SharePoint.PowerShell -ErrorAction静默继续
#Variables
$ WebURL =" http://mysharepointsite/zh-cn/"
$ ListName =" Pages"
$ FieldName ="MMD字段"
$ ItemID = 1585
#获取网络
$ Web = Get-SPWeb $ WebURL
#获取术语库,组和术语集
$ TaxonomySession = Get-SPTaxonomySession-站点$ web.Site
$ TermStore = $ TaxonomySession.TermStores [托管元数据服务"]
$ TermGroup = $ TermStore.Groups ["GrpName"]
$ TermSet = $ TermGroup.TermSets ["MMD字段"]
#获取列表,列表项和字段
$ List = $ Web.Lists [$ listName]
$ Item = $ List.GetItembyID($ ItemID)
$ MMSField =字段名称"
#Actual Term Values to update
$ TermValuesColl = @(.NET",.NET COMPONENTS")
#创建Term字段值集合
$ MMSValueCollection =新对象Microsoft.SharePoint.Taxonomy.TaxonomyFieldValueCollection($ MMSField)
#Form每个术语
foreach($ TermValuesColl中的$ TermValue)
{
$ Term = $ Termset.Terms [$ TermValue]
$ MMSFieldValue =新对象Microsoft.SharePoint.Taxonomy.TaxonomyFieldValue($ MMSField)
$ MMSFieldValue.TermGuid = $ Term.Id
$ MMSFieldValue.Label = $ Term.Name
$ MMSValueCollection.Add($ MMSFieldValue)
}
#使用powershell更新Sharepoint管理的元数据列:多值MMS列
$ MMSField.setFieldValue($ Item,$ MMSValueCollection)
$ Item.Update()
写主机托管元数据字段值已更新!"
该代码在以下行失败:
$ MMSValueCollection =新对象Microsoft.SharePoint.Taxonomy.TaxonomyFieldValueCollection($ MMSField)
关于如何实现此目标的任何建议?
Add-PSSnapin Microsoft.SharePoint.PowerShell -ErrorAction SilentlyContinue
#Variables
$WebURL="http://mysharepointsite/en-us/"
$ListName="Pages"
$FieldName="MMD Field"
$ItemID=1585
#Get the web
$Web = Get-SPWeb $WebURL
#Get the Term store, Group and Term Set
$TaxonomySession = Get-SPTaxonomySession -Site $web.Site
$TermStore = $TaxonomySession.TermStores["Managed Metadata Service"]
$TermGroup = $TermStore.Groups["GrpName"]
$TermSet = $TermGroup.TermSets["MMD Field"]
#Get the List, List Item and Field
$List= $Web.Lists[$listName]
$Item = $List.GetItembyID($ItemID)
$MMSField = "Field Name"
#Actual Term Values to update
$TermValuesColl = @(".NET",".NET COMPONENTS")
#Create a Term field value collection
$MMSValueCollection = new-object Microsoft.SharePoint.Taxonomy.TaxonomyFieldValueCollection($MMSField)
#Form each Term
foreach($TermValue in $TermValuesColl)
{
$Term = $Termset.Terms[$TermValue]
$MMSFieldValue = new-object Microsoft.SharePoint.Taxonomy.TaxonomyFieldValue($MMSField)
$MMSFieldValue.TermGuid = $Term.Id
$MMSFieldValue.Label = $Term.Name
$MMSValueCollection.Add($MMSFieldValue)
}
#updating sharepoint managed metadata columns with powershell: Multi-value MMS column
$MMSField.setFieldValue($Item,$MMSValueCollection)
$Item.Update()
Write-host "Managed Metadata Field value updated!"
This code fails at the line:
$MMSValueCollection = new-object Microsoft.SharePoint.Taxonomy.TaxonomyFieldValueCollection($MMSField)
Any suggestions on how to achieve this?
谢谢!
推荐答案
请在下面更改代码行
MMSField =字段名称"
MMSField = "Field Name"
到
MMSField = [Microsoft.SharePoint.Taxonomy.TaxonomyField]
MMSField = [Microsoft.SharePoint.Taxonomy.TaxonomyField]
这篇关于Powershell-使用多个值更新MMD字段的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!