gpt4 book ai didi

sharepoint-online - 删除 O365 中的空文档库

转载 作者:行者123 更新时间:2023-12-04 02:28:58 25 4
gpt4 key购买 nike

我有一个现有系统,我们正在清理数千个文档库并将内容移到 Azure 中。我正在寻找一种编程方式来遍历列表以查找空列表并删除它们。有没有人有任何示例(最好使用 CSOM 或 powershell)来完成他们愿意分享的任务?

在这一点上,我想出了以下代码来完成任务,但是我收到错误“基础连接已关闭:接收时发生意外错误”尝试由于超时加载列表,因为我有很多 list 。到目前为止,这是我隐藏 uid、pws、站点的用户 secret 的解决方案。

var cred = new SharePointOnlineCredentials(uid, pws);
var context = new ClientContext(site);
context.Credentials = cred;
context.RequestTimeout = Timeout.Infinite;

var lists = context.Web.Lists;
context.Load(lists);
context.ExecuteQuery();
foreach(var list in lists)
{
list.DeleteObject();
list.Update();
}

最佳答案

试试下面的代码,在这里你要做的就是指定要忽略的列表,一些系统列表已经列出,确保你没有从 SharePoint 中删除重要的内容。

下面的脚本使用 SharePoint Online Management Shell 和 PnP PowerShell,在运行脚本之前下载并安装它们:

https://www.microsoft.com/en-us/download/details.aspx?id=35588
https://github.com/SharePoint/PnP-PowerShell

cls

$url = "https://YOUR-URL-GOES-HERE.sharepoint.com"

if ($cred -eq $null)
{
$cred = Get-Credential
Connect-PnPOnline $url -Credentials $cred
}

$CSOM_context = New-Object Microsoft.SharePoint.Client.ClientContext($url)
$CSOM_credentials = New-Object Microsoft.SharePoint.Client.SharePointOnlineCredentials($cred.UserName, $cred.Password)
$CSOM_context.Credentials = $CSOM_credentials

$lists = $CSOM_context.Web.Lists
$CSOM_context.Load($lists)
$CSOM_context.ExecuteQuery()

$ignoreList = "Form Templates", "Site Assets", "Style Library", "_catalogs/hubsite", "Translation Packages"

$lists | ? { $_.ItemCount -eq 0 -and $_.BaseTemplate -eq 101 -and $_.Title -inotin $ignoreList} | % {

Write-Host "- " $_.Title -NoNewline

try {
Remove-PnPList -Identity $_.Title -Force

Write-Host -ForegroundColor Green " [deleted] " `n
}
catch [Execption] {
Write-Host -ForegroundColor Red " [FAILURE] - " $_.Exception.Message `n
}
}

关于sharepoint-online - 删除 O365 中的空文档库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49612223/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com