我正在尝试找到一种方法来删除在不同 SPO 站点上为某项任务创建的多个列表。
我已将列表名称和站点保存在 csv 文件中。有没有办法使用 PowerShell 逐一导入 csv 文件、对站点及其列表进行操作?
这些是空列表,因此不存在删除项目的要求。
您可以使用 PowerShell 来执行此操作。 您需要使用以下任一模块:
SharePointPnPPowerShellOnline(旧版、WindowsPowerShell、https://www.powershellgallery.com/packages/SharePointPnPPowerShellOnline)
PnP.PowerShell(推荐,Powershell 7,https://www.powershellgallery.com/packages/pnp.powershell)
关于后者的文档是最新的: https://pnp.github.io/powershell/articles/installation.html
对于代码,我假设您有一个具有以下格式的 CSV 文件:
SiteUrl,ListName
https://yourtenant.sharepoint.com/sites/site1,Documents
https://yourtenant.sharepoint.com/sites/site2,TestList
要加载 CSV 文件、循环行、连接到目标站点并删除目标列表,您可以使用以下脚本(假设您使用 PnP.PowerShell 模块)。
#Import the PnP.PowerShell module
Import-Module PnP.PowerShell
#Define the path to the CSV file
$CSVFilePath = "C:\PathToYoutFile\CSVFile.csv"
$csv = Import-Csv -Path $CSVFilePath
#Loop through the CSV rows
foreach ($entry in $csv) {
$SiteUrl = $entry.SiteUrl
$ListName = $entry.ListName
Write-Output "Working on Site '$SiteUrl', List '$ListName'"
try {
#Connect to the target SiteCollection / Subweb
$null = Connect-PnPOnline -Url $SiteUrl -Interactive
Write-Output "Deleting List '$ListName'"
#Delete the List
$null = Remove-PnPList -Identity $ListName -Force -ErrorAction Stop
}
catch {
Write-Warning "Failed to Connect and/or delete List. Error:"
Write-Output $_
}
}
如果您使用 SharePointPnPPowerShellOnline,请将导入模块行替换为
Import-Module SharePointPnPPowerShellOnline
以及 Connect-PnPOnline 线
$null = Connect-PnPOnline -Url $SiteUrl -UseWebLogin