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

[玩转系统] 如何使用 PnP PowerShell 从 SharePoint Online 站点获取所有列表和库?

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

如何使用 PnP PowerShell 从 SharePoint Online 站点获取所有列表和库?


最近,我正在从事一个 SharePoint Online 迁移项目,其中我们需要从 SharePoint Online 网站获取所有列表和库。我为此使用了 PnP PowerShell。在本教程中,我将向您展示如何使用 PnP PowerShell 从 SharePoint Online 网站获取所有列表和库

使用 PnP PowerShell 从 SharePoint Online 站点获取所有列表和库

若要使用 PnP PowerShell 获取 SharePoint Online 网站的所有列表和库,可以使用 Get-PnPList cmdlet。此命令将从 SharePoint 站点返回所有列表和库。

下面是完整的脚本。它将返回标题、URL 和创建日期。

$siteUrl = "https://szg52.sharepoint.com/sites/PowerShellFAQs"
Connect-PnPOnline -Url $siteUrl -Interactive
$lists = Get-PnPList
foreach ($list in $lists) {
    Write-Host "Name: $($list.Title)"
    Write-Host "URL: $($list.RootFolder.ServerRelativeUrl)"
    Write-Host "Created: $($list.Created)"
    Write-Host "-----------------------------"
}

我执行了上面的脚本,您可以看到它返回了 SharePoint Online 站点中的所有列表和库。

[玩转系统] 如何使用 PnP PowerShell 从 SharePoint Online 站点获取所有列表和库?

上面的例子并没有告诉我们它是一个列表还是一个库。如果你想输入,无论是列表还是库,你都可以像下面这样修改PowerShell脚本。

注意:列表的模板 ID 为 100,对于库,是 101。

$siteUrl = "https://szg52.sharepoint.com/sites/PowerShellFAQs"
Connect-PnPOnline -Url $siteUrl -Interactive
# Retrieve all lists and libraries
$lists = Get-PnPList

# Function to determine type
function Get-ListType {
    param (
        [int]$baseTemplate
    )
    switch ($baseTemplate) {
        101 { return "Library" }
        100 { return "List" }
        default { return "Other" }
    }
}

# Display list details with type
foreach ($list in $lists) {
    $listType = Get-ListType -baseTemplate $list.BaseTemplate
    Write-Host "Name: $($list.Title)"
    Write-Host "URL: $($list.RootFolder.ServerRelativeUrl)"
    Write-Host "Type: $listType"
    Write-Host "Created: $($list.Created)"
    Write-Host "-----------------------------"
}

您还可以在下面的屏幕截图中看到输出;它显示类型。

[玩转系统] 如何使用 PnP PowerShell 从 SharePoint Online 站点获取所有列表和库?

查看使用 PnP PowerShell 将 SharePoint Online 中的项目从一个列表复制到另一个列表

使用 PnP PowerShell 获取 SharePoint 站点中的所有列表

有时,您可能需要从 SharePoint 网站获取所有列表,而不需要库。因此,下面是使用 PnP PowerShell 从 SharePoint 站点获取所有列表的 PowerShell 脚本。

$siteUrl = "https://szg52.sharepoint.com/sites/PowerShellFAQs"
Connect-PnPOnline -Url $siteUrl -Interactive
# Retrieve all lists and libraries
$lists = Get-PnPList

$allLists = @()

foreach ($list in $lists) {
    if ($list.BaseTemplate -eq 100) {
        $allLists += $list
    } 
}

# Display all lists
Write-Host "Lists:"
foreach ($list in $allLists) {
    Write-Host "Name: $($list.Title)"
    Write-Host "URL: $($list.RootFolder.ServerRelativeUrl)"
    Write-Host "Created: $($list.Created)"
    Write-Host "-----------------------------"
}

我执行了上面的 PnP PowerShell 脚本,您可以看到它显示了我的 SharePoint 站点中的所有列表。您还将获得准确的输出。

[玩转系统] 如何使用 PnP PowerShell 从 SharePoint Online 站点获取所有列表和库?

查看使用 PowerShell 和 PnP PowerShell 恢复 SharePoint Online 网站

使用 PnP PowerShell 从 SharePoint Online 站点获取所有库

以同样的方式,让我向您展示如何使用 PnP PowerShell 从 SharePoint Online 网站获取所有库。这也是 PowerShell SharePoint 开发人员中非常常见的要求。

以下是使用 PnP PowerShell 获取所有 SharePoint 文档库的完整脚本。

$siteUrl = "https://szg52.sharepoint.com/sites/PowerShellFAQs"
Connect-PnPOnline -Url $siteUrl -Interactive
# Retrieve all lists and libraries
$lists = Get-PnPList

$allLibraries = @()

foreach ($list in $lists) {
    if ($list.BaseTemplate -eq 101) {
        $allLibraries += $list
    } 
}

# Display all libraries
Write-Host "Libraries:"
foreach ($library in $allLibraries) {
    Write-Host "Name: $($library.Title)"
    Write-Host "URL: $($library.RootFolder.ServerRelativeUrl)"
    Write-Host "Created: $($library.Created)"
    Write-Host "-----------------------------"
}

我执行了上面的 PowerShell 脚本,您可以在下面的屏幕截图中看到输出。

[玩转系统] 如何使用 PnP PowerShell 从 SharePoint Online 站点获取所有列表和库?

结论

在本教程中,我解释了如何使用 PnP PowerShell 获取 SharePoint Online 中的所有列表和库。另外,我创建了两个不同的脚本:

  • 使用 PnP PowerShell 从 SharePoint Online 网站获取所有列表
  • 使用 PnP PowerShell 从 SharePoint Online 网站获取所有库。

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

取消回复欢迎 发表评论:

关灯