使用PnP更新SharePoint列表项遇字段问题求助
一、解决Get-PnPListItem返回字段不全的问题
Get-PnPListItem默认仅返回Id、Title、GUID这类核心字段,若要获取全部字段或指定字段,需添加-Fields参数:
- 获取所有字段:
Get-PnPListItem -List $listTitle -ID $id -Fields "*" - 获取指定字段:
Get-PnPListItem -List $listTitle -ID $id -Fields "FieldName","OtherFieldName"
二、解决Set-PnPListItem提示列不存在的问题
报错的核心原因是你使用了字段显示名称,而非SharePoint后台识别的字段内部名称。显示名称可能包含空格、特殊字符,但内部名称是标准化的唯一标识。
获取字段内部名称
通过Get-PnPField命令可查看字段的内部名称:
Get-PnPField -List $listTitle | Select-Object Title, InternalName
该命令会输出字段的显示名称(Title)和对应的内部名称(InternalName)。
三、正确的列表项更新语法
确认字段内部名称后,使用以下命令更新列表项内容:
# 替换为实际的内部名称和值 Set-PnPListItem -List $listTitle -Identity $id -Values @{"InternalFieldName" = $value}
若需同时更新多个字段:
Set-PnPListItem -List $listTitle -Identity $id -Values @{ "InternalField1" = "Value1" "InternalField2" = "Value2" }
补充说明
Set-PnPField确实仅用于修改字段的元数据(如显示名称、字段类型、必填规则等),不负责更新列表项的内容,你的这一理解是正确的。
内容的提问来源于stack exchange,提问作者n8.
相关产品推荐
相关产品推荐

