我的公司在SharePoint Online中拥有200多个SharePoint网站。我们也有数千名SharePoint用户。作为公司规则,每当用户离开公司时,必须从SharePoint网站中删除用户帐户。一个用户可以在不同的SharePoint网站中拥有不同的权限。让我说一个用户:sebey@abc.com在SharePoint站点Site 1、Site 2、Site 3、Site 4、Site 5、Site 6、Site 7中具有不同的权限。当前要检查用户权限:我们应该去每个网站,并检查用户的权限,但现在我们想要一个简单的解决方案,只要我们把用户,然后用户的权限将在我们所有的SharePoint网站检查,并列出输出的所有网站的用户已访问。
在我们的情况下,访问每个SharePoint站点并检查每个站点中用户的权限不是最佳解决方案。
那么你知道这种情况的任何解决方案吗?它可以使用PowerShell脚本或任何可信的第三方工具以及?
干杯!
目前,我们使用检查每个站点的用户权限,但当您有数百个站点和数千个用户时,这不是一个好的解决方案。
1条答案
按热度按时间nbnkbykc1#
这看起来很容易,但实际上并不😅容易。我会做的是使用PowerShell和CLI for Microsoft 365创建一个脚本。我会像这样处理这个问题:
1.从我的租户获取所有站点:
$allSites = m365 spo site list | ConvertFrom-Json | Select-Object Url
1.对于每个站点,列出“在”此站点
$allUsersOnSite = m365 spo user list --webUrl "https://tenanttocheck.sharepoint.com/sites/someSite" | ConvertFrom-Json | Select-Object Email
中的所有用户(请记住,并非每个帐户都有email
,例如某些内部服务SP帐户没有emial设置,因此您也可以获得LoginName
属性而不是Email
1.检查我正在寻找的用户是否在给定网站的用户集合中,例如:
$allUsersOnSite | Where-Object LoginName -match "<ThisIsTheLoginNameYouAreLookingFor>"
。如果返回的集合大于1,则意味着我的用户对该站点有“一些”权限,我应该删除他1.然后,我将使用
m365 spo user remove --webUrl "https://tenanttocheck.sharepoint.com/sites/someSite" --loginName "LoginNameOfTheUserIWantToDelete" --confirm
从该站点中删除用户帐户(添加了--confirm
,因此不需要在脚本中确认每次删除😉完成.😉我希望我的想法会给予你一个很好的起点开始👍.让我知道结果是什么,如果它是有帮助的(通常在SharePoint它不是'那么'容易😉)
顺便说一句,如果你有任何成功(无论是使用Microsoft 365的CLI还是PnP PowerShell或其他),你可以考虑将你的脚本贡献给PnP script sampe repo,以帮助社区中可能有类似情况的其他人👍