当我使用 PowerShell 使用 SharePoint Online 时,我需要获取 SharePoint 网站中存在的所有列表集合。
我使用 PnP PowerShell 命令获取了所有列表。但我没有使用 SharePoint Online Management shell 获取列表集合。 建议我使用 SharePoint Online Management Shell 命令来获取所有列表。
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。