如何使用 SharePoint Online Management Shell cmdlet 获取 ShrePoint 网站中的所有列表

问题描述 投票:0回答:1

当我使用 PowerShell 使用 SharePoint Online 时,我需要获取 SharePoint 网站中存在的所有列表集合。

我使用 PnP PowerShell 命令获取了所有列表。但我没有使用 SharePoint Online Management shell 获取列表集合。 建议我使用 SharePoint Online Management Shell 命令来获取所有列表。

list powershell sharepoint powershell-2.0 sharepoint-online
1个回答
0
投票

SharePoint Online PowerShell(SharePoint Online Management Shell)没有像 PnP PowerShell 那样的任何直接命令来从 SharePoint 站点获取所有列表。

您必须使用 CSOM 方法来满足此要求,例如:

#Load SharePoint CSOM Assemblies
Add-Type -Path "C:\Program Files\Common Files\Microsoft Shared\Web Server Extensions\16\ISAPI\Microsoft.SharePoint.Client.dll"
Add-Type -Path "C:\Program Files\Common Files\Microsoft Shared\Web Server Extensions\16\ISAPI\Microsoft.SharePoint.Client.Runtime.dll"
 
#Function to Get all/specific list from site
Function Get-SPOList()
{
    Param
    (
        [Parameter(Mandatory=$true)] [Microsoft.SharePoint.Client.Web] $Web,
        [Parameter(Mandatory=$false)] [string] $ListName
    )
    #Get the Context
    $Ctx = $Web.Context
     
    #Get a single list or All Lists
    If($ListName)
    {
        #sharepoint online get list powershell
        $List = $Web.Lists.GetByTitle($ListName)
        $Ctx.Load($List)
        $Ctx.ExecuteQuery()
        Return $List
    }
    Else
    {
        #sharepoint online get all lists powershell
        $Lists = $Web.Lists
        $Ctx.Load($Lists)
        $Ctx.ExecuteQuery()
        Return $Lists
    }
}
 
#Parameters
$SiteURL="https://<tenant>.sharepoint.com/sites/MySite"
 
#Setup Credentials to connect
$Cred= Get-Credential
$Credentials = New-Object Microsoft.SharePoint.Client.SharePointOnlineCredentials($Cred.Username, $Cred.Password)
 
#Setup the context
$Ctx = New-Object Microsoft.SharePoint.Client.ClientContext($SiteURL)
$Ctx.Credentials = $Credentials
 
#sharepoint online powershell get all lists
$Lists = Get-SPOList -Web $Ctx.Web
 
#Extract List data
$ListCollection = @()
ForEach($List in $Lists)
{
    $ListData = New-Object -TypeName PSObject
    $ListData | Add-Member -MemberType NoteProperty -Name "Title" -Value $List.Title
    $ListData | Add-Member -MemberType NoteProperty -Name "Itemcount" -Value $List.Itemcount
    $ListData | Add-Member -MemberType NoteProperty -Name "BaseTemplate" -Value $List.BaseTemplate
    $ListData | Add-Member -MemberType NoteProperty -Name "Created" -Value $List.Created
    $ListData | Add-Member -MemberType NoteProperty -Name "LastItemModifiedDate" -Value $List.LastItemModifiedDate
    $ListCollection += $ListData
}
#Export List Inventory to CSV
$ListCollection | Export-csv -Path "C:\Temp\list-inventory.csv" -NoTypeInformation

$SiteURL
变量值替换为您的 SharePoint 网站 URL。

© www.soinside.com 2019 - 2024. All rights reserved.