使用 PnP PowerShell 获取 SharePoint Online 中的所有列表字段
最近,我的一位客户想要列出 SharePoint Online 列表中的所有列名称。我尝试 PnP PowerShell 来做到这一点。在本教程中,我将解释如何使用 PnP PowerShell 获取 SharePoint Online 中的所有列表字段。
我还将向您展示如何从 SharePoint Online 列表或文档库获取所有列表列,包括现成列和自定义列。
使用 PnP PowerShell 获取 SharePoint Online 中的所有列表字段
在这里,我有一个包含几列的 SharePoint 列表。您可以在下面的屏幕截图中看到输出:
要从 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 列表中获取自定义列
有时,您可能只想使用 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 列表中获取现成的列
现在,是时候向您展示如何使用 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)"
}您可以在下面的屏幕截图中看到输出:
这是上述所有示例的完整脚本。
$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 列表中检索所有列名称,包括自定义列和现成列。



