首页 > 系统相关 >Microsoft 365 开发:如何通过PnP Powershell批量删除文件夹或文件等

Microsoft 365 开发:如何通过PnP Powershell批量删除文件夹或文件等

时间:2023-12-31 16:32:22浏览次数:39  
标签:Name SubFolder PnP 文件夹 File Folder 365 Powershell Row

51CTO Blog地址:https://blog.51cto.com/u_13969817

通常删除文件夹可以在UI界面操作比较方面,但是如果想快速的删除文件夹以及其child folder,该如何操作呢?

解决方案:本文将介绍如何使用PnP PowerShell脚本删除SharePoint文档库中的文件夹:第一步是通过运行cmdlet: Connect PnPOnline来完成连接到您的SharePoint Online网站;连接后,可以通过运行命令删除文件夹:Remove PnPFolder。

首先,将要删除的文件夹和子文件夹保存到csv文件中,如下所示:

Microsoft 365 开发:如何通过PnP Powershell批量删除文件夹或文件等_删除文件夹

执行PnP Powershell,删除上述文件夹和子文件夹,脚本如下所示:

$SiteURL = "https://byrondemo.sharepoint.com/sites/Project"
$CSVFilePath = "C:\Users\Byron\Desktop\BulkDeleteFolders.csv"
Connect-PnPOnline -Url $SiteURL -Interactive
$CSVFile = Import-CSV $CSVFilePath | Sort-Object ParentFolderSiteRelativeURL -Descending
ForEach($Row in $CSVFile)
{
    Try {
        $Folder  = Get-PnPFolderItem -FolderSiteRelativeUrl $Row.ParentFolderSiteRelativeURL -ItemName $Row.FolderName 
        If($Folder -ne $Null)
        {
            Write-Host -f Yellow "Deleting Folder '$($Row.FolderName)' from $($Row.ParentFolderSiteRelativeURL)..."
            Empty-PnPFolder $Folder
            Remove-PnPFolder -Name $Row.FolderName -Folder $Row.ParentFolderSiteRelativeURL -Recycle -Force
            Write-host -f Green "`tFolder '$($Row.FolderName)' Deleted Successfully!"
        }
        Else
        {
            Write-Host "Folder '$($Row.FolderName)' doesn't exists at $($Row.ParentFolderSiteRelativeURL)" -ForegroundColor Yellow
        }
    }
    Catch {
        write-host -f Red "`tError:" $_.Exception.Message
    }
}

如果预将文件和文件夹全部删除,那么命令为:

$SiteURL = "https://byrondemo.sharepoint.com/sites/Project"
$CSVFilePath = "C:\Users\Byron\Desktop\BulkDeleteFolders.csv"
Function Empty-PnPFolder($Folder)
{
    If($Folder.Context.Web.ServerRelativeUrl -eq "/")
    {
        $FolderSiteRelativeURL = $Folder.ServerRelativeUrl
    }
    Else
    {       
        $FolderSiteRelativeURL = $Folder.ServerRelativeUrl.Replace($Folder.Context.Web.ServerRelativeURL,[string]::Empty)
    }
    $Files = Get-PnPFolderItem -FolderSiteRelativeUrl $FolderSiteRelativeURL -ItemType File
    ForEach ($File in $Files)
    {
        Remove-PnPFile -ServerRelativeUrl $File.ServerRelativeURL -Force -Recycle
        Write-Host -f Green ("`tDeleted File: '{0}' at '{1}'" -f $File.Name, $File.ServerRelativeURL)       
    }
    $SubFolders = Get-PnPFolderItem -FolderSiteRelativeUrl $FolderSiteRelativeURL -ItemType Folder
    Foreach($SubFolder in $SubFolders)
    {
        If(($SubFolder.Name -ne "Forms") -and (-Not($SubFolder.Name.StartsWith("_"))))
        {
            Empty-PnPFolder -Folder $SubFolder
            Remove-PnPFolder -Name $SubFolder.Name -Folder $FolderSiteRelativeURL -Force -Recycle
            Write-Host -f Green ("`tDeleted Folder: '{0}' at '{1}'" -f $SubFolder.Name, $SubFolder.ServerRelativeURL)
        }
    }
}

谢谢大家的阅读。

标签:Name,SubFolder,PnP,文件夹,File,Folder,365,Powershell,Row
From: https://blog.51cto.com/u_13969817/9049107

相关文章

  • Microsoft 365开发:如何通过Graph Powershell推动密码过期邮件提醒
    51CTOBlog地址:https://blog.51cto.com/u_13969817密码过期提醒是一种安全措施,用于确保用户定期更改其密码,以减少密码被盗用的风险。当用户密码过期时,系统发送提醒通知,告知需要更改密码。这种提醒通常可以以电子邮件、系统通知的方式发送给用户,提醒中通常包含有关如何更改密码的提......
  • Microsoft 365开发:如何使用Powershell将单个或者多个用户邮箱转换为共享邮箱
    51CTOBlog地址:https://blog.51cto.com/u_13969817Office365是一个基于云的平台,提供了一套生产力工具,包括电子邮件、日历和文件共享。随着员工数量的增加和团队合作的需要,企业管理员经常会将个人邮箱转换为共享邮箱,其好处是:·      共享邮箱可以方便团队成员之间的邮件交......
  • Microsoft 365 新功能速递:如何用Powershell为SPO文件夹设置不同颜色
    51CTOBlog地址:https://blog.51cto.com/u_13969817微软最近推出了一项新功能,允许用户在SharePointOnline和OneDrive中使用预设的16种颜色为文件夹上色。此功能适用于新文件夹和现有文件夹。现在,用户可以使用不同的颜色自定义文件夹,以便更好地管理文件,比如:·      提供工作......
  • Microsoft 365 开发:如何管理会议录制视频的访问期限
    Blog链接:https://blog.51cto.com/13969817一般我们组织会议讨论相关议题时,与会者都习惯录制会议视频,便于日后查看,但管理员通常因以下3个因素限制会议视频的保留期限,与会者只能在特定的时间范围内访问视频,一旦超过这个期限,视频就会过期,无法访问:·      为了节省存储空间,默认......
  • Microsoft 365开发:如何通过Powershell调整外部用户访问的有效期
    Blog链接:https://blog.51cto.com/13969817用户在分享文档时,应该根据实际情况设置合理的访客访问有效期,从而保护文档的安全性和完整性,具体原因如下:·      保护文档内容:限制访问有效期可以防止文档被无限制地访问和使用,从而保护文档的内容不被泄露或滥用·      保证......
  • Microsoft 365 存档服务的计费标准
    博客链接:https://blog.51cto.com/u_13637423MicrosoftIgnite上推出的Syntex新功能,对企业来说可以说是一个福音,不仅仅包含了Microsoft365存档功能也包含了备份功能,可以确保企业长期非活动的数据就地存档,而企业对活动数据,比如 SharePoint、ExchangeOnline和OneDriveforBusin......
  • 【PowerShell】PowerShell 脚本批量检测公司服务器是否存在 WannaCry 漏洞
    本文前提被检测的计算机启用的powershell远程管理的功能;这是另外的课题,我之前的文章有专门介绍过,如果对这部分不太清楚的话可以翻翻我之前的博客文章。关于本文要使用PowerShell脚本检查计算机是否存在WannaCry漏洞,可以执行以下步骤:检查操作系统补丁:WannaCry漏洞主要影响未安......
  • pnpm安装与配置
    目录安装配置使用在powershell中使用报错pnpm避免了幽灵依赖的问题,且减少了磁盘占用,pnpm使用了共享的存储策略,来存储所有项目的所有包版本以及每个项目所需的符号链接。这意味着,如果多个项目依赖于同一个包的同一个版本,pnpm只会在磁盘上存储一次。幽灵依赖指的是在项目中虽......
  • ORA-28365: wallet is not open
    RAC数据库启动遇到ORA-28365Oracle使用了TDE功能,加密了,没有正确打开wallet时会出现下面错误,打开钱包即可,以使用altersystemsetencryptionwalletopen;命令完成。如果打开钱包时遇到任何问题,那么可以尝试使用altersystemsetencryptionwalletopenidentifiedby"yourpa......
  • Windows Server 2019-Powershell之客户端加域
    将本地计算机添加到域或工作组,可通过Add-Computer命令操作,具体信息如下:语法:Add-Computer[-DomainName][-ComputerName<String[]>][-Confirm]-Credential[-Force][-LocalCredential][-NewName][-OUPath][-Options{AccountCreate|Win9XUpgrade|UnsecuredJoi......