Powershell-使用多个值更新MMD字段 [英] Powershell - Update MMD Field with multi values

查看:52
本文介绍了Powershell-使用多个值更新MMD字段的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

大家好,

我在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屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆