【问题标题】:Cannot access property of type Microsoft.SharePoint.Client.ContentType无法访问 Microsoft.SharePoint.Client.ContentType 类型的属性
【发布时间】:2021-09-19 21:01:25
【问题描述】:

作为 SharePoint Online 和所有重要技术的新手,我需要一些帮助才能使用 SP PowerShell 配置我的 SPO 网站。

在这里,我想获得一个项目列表,存储在我的文档库中,这样我就可以观察它们的内容类型。在这里,我使用的是 PnP 模块。

以下代码有效,并显示了我的所有项目以及一些数据。

>     Connect-PnPOnline -Interactive -Url $UrlSite
>     $Items = Get-PnPListItem -List $ListName
>     $Items

我的问题来了:如果我执行 $Items[x].ContentType,我的 PowerShell 不会打印任何内容。不过,我希望在我的控制台中看到一些东西。

如果我执行 $Items[x].Id,它会起作用并打印出一个 Id。我注意到 Id 只是一个 Int 类型,而 ContentType 是一个 Microsoft.SharePoint.Client.ContentType 类型。我想我的问题源于他们,但我不能确定也找不到解决方法。

有人知道我错过了什么吗?预先感谢您的帮助。

【问题讨论】:

  • 嗨,如果您获得了其中一件物品的成员,它会返回什么? $items[0] | get-member ContentType 是否出现在属性列表中?
  • 您好,感谢您的关注。我知道 Get-Member 命令。我用它所有的时间。它确实在我的物品上返回了一些东西。这就是我发现“内容类型”属性的方式。我也可以做类似 items[x].ContentType | Get-Member,它还会打印出方法和属性的列表...
  • 你可以试试$Items[x].ContentType.Description$Items[x].ContentType.Name 吗?
  • @Theo 我做了,它不打印任何东西。

标签: powershell sharepoint


【解决方案1】:

在这里,我想获取一个项目列表,存储在我的文档库中,这样我就可以观察它们的内容类型。

尝试使用Get-PnPContentType 来实现此目的。如果您需要,Microsoft 有其他文档here,或者我可以尝试在 cmets 中为您提供帮助并更新此帖子。

【讨论】:

  • 您好,感谢您的帮助。我实际上不需要获取列表的内容类型。我需要把它们都搞定,然后根据它们自己的内容类型进行一些处理。
【解决方案2】:

我真的找到了自己的路。

总结一下我的需求:我想获得一个项目列表,以便对每个项目应用某种处理。这种处理取决于他们的内容类型。这意味着当我浏览我的项目时,我需要观察它们的内容类型。

通过键入$Items[x].FieldValues,我能够获取 Powershell 允许我使用的所有已加载属性。

我发现了类似"ContentTypeId" 的东西,它实际上不是一个 int,而是一个更复杂的对象,您可以访问它的属性。

然后我使用以下语法完成了我的程序:$Items[x]["ContentTypeId"].StringValue

感谢大家的帮助。

【讨论】:

    猜你喜欢
    • 2023-03-20
    • 2017-05-03
    • 2014-12-09
    • 2023-03-24
    • 2016-02-11
    • 1970-01-01
    • 2017-05-04
    相关资源
    最近更新 更多