当前位置:网站首页 > 更多 > 玩电脑 > 正文

[玩转系统] 使用 PnP PowerShell 获取 SharePoint Online 中的所有列表字段

作者:精品下载站 日期:2024-12-14 05:19:01 浏览:15 分类:玩电脑

使用 PnP PowerShell 获取 SharePoint Online 中的所有列表字段


最近,我的一位客户想要列出 SharePoint Online 列表中的所有列名称。我尝试 PnP PowerShell 来做到这一点。在本教程中,我将解释如何使用 PnP PowerShell 获取 SharePoint Online 中的所有列表字段

我还将向您展示如何从 SharePoint Online 列表或文档库获取所有列表列,包括现成列和自定义列。

使用 PnP PowerShell 获取 SharePoint Online 中的所有列表字段

在这里,我有一个包含几列的 SharePoint 列表。您可以在下面的屏幕截图中看到输出:

[玩转系统] 使用 PnP PowerShell 获取 SharePoint Online 中的所有列表字段

要从 SharePoint Online 网站的特定列表中获取所有列名称,请使用 Get-PnPField cmdlet。

$siteUrl = "https://szg52.sharepoint.com/sites/PowerShellFAQs"
Connect-PnPOnline -Url $siteUrl -Interactive

$listName = "Employee Onboarding"
$fields = Get-PnPField -List $listName
foreach ($field in $fields) {
    Write-Host "Field Title: $($field.Title) - Internal Name: $($field.InternalName) - Type: $($field.TypeAsString)"
}

执行上述 PowerShell 脚本后,您可以看到 SharePoint Online 列表中的列列表。它还包括所有隐藏列、自定义列和现成列。检查下面的屏幕截图以供参考。

[玩转系统] 使用 PnP PowerShell 获取 SharePoint Online 中的所有列表字段

使用 PnP PowerShell 从 SharePoint 列表中获取自定义列

有时,您可能只想使用 PnP PowerShell 从 SharePoint Online 列表中获取自定义列。

这是完整的 PowerShell 脚本。

$siteUrl = "https://szg52.sharepoint.com/sites/PowerShellFAQs"
Connect-PnPOnline -Url $siteUrl -Interactive

$listName = "Employee Onboarding"
$fields = Get-PnPField -List $listName
$customFields = $fields | Where-Object { $_.CanBeDeleted -eq $true }
foreach ($field in $customFields) {
    Write-Host "Custom Field Title: $($field.Title) - Internal Name: $($field.InternalName) - Type: $($field.TypeAsString)"
}

我执行了上面的脚本;您可以在下面的屏幕截图中看到输出。它显示 SharePoint Online 列表中的所有自定义列。

[玩转系统] 使用 PnP PowerShell 获取 SharePoint Online 中的所有列表字段

使用 PnP PowerShell 从 SharePoint 列表中获取现成的列

现在,是时候向您展示如何使用 PnP PowerShell 从 SharePoint Online 列表中取出现成的列了。

这是完整的 PnP PowerShell。

$siteUrl = "https://szg52.sharepoint.com/sites/PowerShellFAQs"
Connect-PnPOnline -Url $siteUrl -Interactive

$listName = "Employee Onboarding"
$fields = Get-PnPField -List $listName
$ootbFields = $fields | Where-Object { $_.CanBeDeleted -eq $false }
foreach ($field in $ootbFields) {
    Write-Host "OOTB Field Title: $($field.Title) - Internal Name: $($field.InternalName) - Type: $($field.TypeAsString)"
}

您可以在下面的屏幕截图中看到输出:

[玩转系统] 使用 PnP PowerShell 获取 SharePoint Online 中的所有列表字段

这是上述所有示例的完整脚本。

$siteUrl = "https://szg52.sharepoint.com/sites/PowerShellFAQs"Connect-PnPOnline -Url $siteUrl -Interactive$listName = "Employee Onboarding"

# Retrieve all fields
$fields = Get-PnPField -List $listName

# Display all fields
Write-Host "All Fields:"
foreach ($field in $fields) {
    Write-Host "Field Title: $($field.Title) - Internal Name: $($field.InternalName) - Type: $($field.TypeAsString)"
}

# Retrieve custom fields
$customFields = $fields | Where-Object { $_.CanBeDeleted -eq $true }
Write-Host "`nCustom Fields:"
foreach ($field in $customFields) {
    Write-Host "Custom Field Title: $($field.Title) - Internal Name: $($field.InternalName) - Type: $($field.TypeAsString)"
}

# Retrieve out-of-the-box fields
$ootbFields = $fields | Where-Object { $_.CanBeDeleted -eq $false }
Write-Host "`nOOTB Fields:"
foreach ($field in $ootbFields) {
    Write-Host "OOTB Field Title: $($field.Title) - Internal Name: $($field.InternalName) - Type: $($field.TypeAsString)"
}

结论

在本教程中,我解释了如何使用PnP PowerShell 从 SharePoint Online 列表中检索所有列名称,包括自定义列和现成列。

您需要 登录账户 后才能发表评论

取消回复欢迎 发表评论:

关灯