在 Microsoft Teams 频道或聊天中查找文档并与他人共享
您好 Nancy,
欢迎您的回帖。
对于您的第一个问题,我猜测您是想要查看文件库中所有共享了的文件夹以及其他相关信息。若是的话,有几种方法可以达成类似的需求。
方法一
可以让团队(站点)的所有者运行内置功能来得到共享文件和文件夹的报告(虽然是在“与外部用户共享”部分中点击运行报表,但该报表包含了所有文件以及文件夹的权限和共享链接详细)。详细步骤您可以查看一下文档。由此生成的csv文件中,会显示所有文件以及文件夹的权限情况(包含已有权限以及共享链接)。所以,您可以将生成的csv文件数据设置为表格,再筛选数据,例如,“项目类型”列勾选“文件夹”,“用户名”列,取消勾选已有的站点Owner,Members,Visitors,再查看报告。
方法二
让SharePoint管理员或组织管理员运行以下PowerShell脚本。需要修改SiteURL等值再运行脚本
Parameters
$SiteUrl = "https://Crescent.sharepoint.com/sites/Marketing"
$ReportOutput = "C:\Temp\SharingLinkPermissions.csv"
$ListName = "Documents"
#Connect to PnP Online
Connect-PnPOnline -Url $SiteURL -Interactive
$Ctx = Get-PnPContext
$Results = @()
$global:counter = 0
#Get all list items in batches
$ListItems = Get-PnPListItem -List $ListName -PageSize 2000
$ItemCount = $ListItems.Count
#Iterate through each list item
ForEach($Item in $ListItems)
{
Write-Progress -PercentComplete ($global:Counter / ($ItemCount) * 100) -Activity "Getting Shared Links from '$($Item.FieldValues["FileRef"])'" -Status "Processing Items $global:Counter to $($ItemCount)";
#Check if the Item has unique permissions
$HasUniquePermissions = Get-PnPProperty -ClientObject $Item -Property "HasUniqueRoleAssignments"
If($HasUniquePermissions)
{
#Get Users and Assigned permissions
$RoleAssignments = Get-PnPProperty -ClientObject $Item -Property RoleAssignments
ForEach($RoleAssignment in $RoleAssignments)
{
$Members = Get-PnPProperty -ClientObject $RoleAssignment -Property RoleDefinitionBindings, Member
#Get list of users
$Users = Get-PnPProperty -ClientObject ($RoleAssignment.Member) -Property Users -ErrorAction SilentlyContinue
#Get Access type
$AccessType = $RoleAssignment.RoleDefinitionBindings.Name
If ($RoleAssignment.Member.Title -like "SharingLinks*")
{
If ($Users -ne $null)
{
ForEach ($User in $Users)
{
#Collect the data
$Results += New-Object PSObject -property $([ordered]@{
Name = $Item.FieldValues["FileLeafRef"]
RelativeURL = $Item.FieldValues["FileRef"]
FileType = $Item.FieldValues["File_x0020_Type"]
UserName = $user.Title
UserAccount = $User.LoginName
Email = $User.Email
Access = $AccessType
})
}
}
}
}
}
$global:counter++
}
$Results | Export-CSV $ReportOutput -NoTypeInformation
Write-host -f Green "Sharing Links Report Generated Successfully!"
对于您的第二个问题,站点中没有内置功能可以直接查看,需要让组织管理员使用Microsoft Purview门户中的审核日志功能,根据“Shared file, folder, or site”活动来搜索日志。
对于您的第三个问题,对于单个的文件,站点拥有者可以选择该文件,点击更多(三个点),管理访问(Manage Access),之后手动删除对于此文件的共享链接。
若是针对文件库下的所有文件和文件夹,则需要组织管理员或Share Point管理员运行PowerShell脚本。
#Define Parameters
$SiteURL= "https://crescent.sharepoint.com/sites/IT"
$ListName = "Documents"
#Connect to PnP Online
Connect-PnPOnline -Url $SiteURL -UseWebLogin
#Get All items from List
$Items = Get-PnPListItem -List $ListName -PageSize 2000
#Iterate though each item in the list
ForEach($Item in $Items) {
#Get Shared links of the item
$HasUniquePermissions = Get-PnPProperty -ClientObject $Item -Property "HasUniqueRoleAssignments"
If($HasUniquePermissions) {
$RoleAssignments = Get-PnPProperty -ClientObject $Item -Property RoleAssignments
ForEach($RoleAssignment in $RoleAssignments) {
Get-PnPProperty -ClientObject $RoleAssignment -Property RoleDefinitionBindings, Member
If($RoleAssignment.Member.Title -like "SharingLinks*") {
Remove-PnPGroup -Identity $RoleAssignment.Member.Title -Force
Write-host "Removed $($RoleAssignment.Member.Title) from $($Item.FieldValues.FileRef)"
}
}
}
}
诚挚的祝愿,
George | Microsoft Community Moderator