【发布时间】:2014-03-24 08:13:58
【问题描述】:
我正在尝试编写一个 powershell 脚本来从我们的 SharePoint Online 租赁中检索所有网站集、它们的组和子网站。到目前为止,我已经能够获取所有站点、它们的组以及每个组中的用户。我只是在获取子网站和识别具有唯一权限的任何列表时遇到了麻烦(并希望检索这些权限!)
到目前为止,我有这个来获取列表:
Add-Type –Path "C:\Program Files\Common Files\microsoft shared\Web Server Extensions\15\ISAPI\Microsoft.SharePoint.Client.dll"
Add-Type –Path "C:\Program Files\Common Files\microsoft shared\Web Server Extensions\15\ISAPI\Microsoft.SharePoint.Client.Runtime.dll"
$password = Read-Host -Prompt "Enter password" -AsSecureString
$credentials = New-Object Microsoft.SharePoint.Client.SharePointOnlineCredentials("username", $password)
$siteURL = "https://site/sites/test"
$ctx = New-Object Microsoft.SharePoint.Client.ClientContext($siteUrl)
$ctx.Credentials = $credentials
$web = $ctx.Web
$lists = $web.Lists
$ctx.Load($lists)
$ctx.ExecuteQuery()
foreach($list in $lists)
{
Write-Host $list.Title
}
这是获取站点组和用户:
Connect-SPOService –url https://site-admin.sharepoint.com
$sites = Get-SPOSite -Detailed
foreach ($site in $sites)
{
Write-Host $site.Title
$siteGroups = Get-SPOSiteGroup -Site $site.Url
foreach ($group in $siteGroups)
{
$users = Get-SPOUser -Site $site.Url -Group $group.Title -Limit All |ft -wrap
$url = $site.Url
$groupName = $group.Title
Write-Host $groupName + ' ' + $group.Users
}
}
所以对于列表,我尝试使用 $list.HasUniqueRoleAssignments 来确定返回的列表是否具有唯一权限,但即使有唯一权限,它似乎总是返回 false。 对于子站点,我可以获得子站点的计数,但是如何获取 URL?
提前致谢!
编辑:所以我已经能够使用我用来获取列表的客户端上下文代码获取子站点的 URL:
$subs = $web.Webs
$ctx.Load($subs)
$ctx.ExecuteQuery()
foreach($sub in $subs)
{
Write-Host $sub.Url
}
仍然坚持获取权限...
【问题讨论】:
标签: sharepoint powershell