我目前正在编写一个脚本,该脚本连接到我们的 SharePoint 管理中心并返回包含所有所有者(姓名和电子邮件)的所有网站的列表
我尝试了 PnP 和 SP 的多种解决方案,但似乎没有任何效果。
看来我必须遍历所有站点,获取具有属性的 Web 对象,获取权限级别,将它们过滤为“完全控制”,然后查找具有这些权限的每个成员。但它有点不像那样工作?
有没有其他人遇到过这个话题?
我目前正在编写一个脚本,该脚本连接到我们的 SharePoint 管理中心并返回包含所有所有者(姓名和电子邮件)的所有网站的列表
我尝试了 PnP 和 SP 的多种解决方案,但似乎没有任何效果。
看来我必须遍历所有站点,获取具有属性的 Web 对象,获取权限级别,将它们过滤为“完全控制”,然后查找具有这些权限的每个成员。但它有点不像那样工作?
有没有其他人遇到过这个话题?
这是一种解决方法,它可能会以某种方式帮助您。这是一个脚本,它导出一个 .csv 文件,其中包含在每个网站集中具有完全控制角色的所有组。您可以使用列表获取所有组成员,并且他们绝对拥有完全控制权限。对于拥有完全控制权限的网站集管理员,只需使用Get-PnPSiteCollectionAdmin
$admin = "jerry@tenant.onmicrosoft.com";
$Credentials=Get-Credential
Connect-SPOService -Url https://tenant-admin.sharepoint.com -credential $Credentials
$Sites=Get-SPOSite
$OwnerList=@()
Foreach($Site in $Sites)
{
Write-Host $site.URL -ForegroundColor Cyan
#Get all Groups from the site permissions
$sitegroups = Get-SPOSiteGroup -Site $site.URL
#Get Group info and members that have site owners permissions
foreach ($sitegroup in $sitegroups)
{
foreach($role in $sitegroup.Roles)
{
try{
if ( $role.Contains(“Full Control”) )
{
$Row=""|Select SiteURL, FullControlGroupName;
$Row.SiteURL=$site.URL
$Row.FullControlGroupName=$sitegroup.title
$OwnerList+=$Row
}
}
catch{
write-host "$($_.Exception.Message)" -foregroundcolor red
}
}
}
}
$OwnerList | Export-Csv "C:\\OwnerList.csv" -NoTypeInformation