PowerShell 使用安全组导出 SharePoint 站点和补贴

问题描述 投票:0回答:2

我正在尝试编写一个 powershell 脚本,该脚本允许我将站点和子站点列表以及其中的权限组导出到 CSV 文件中。

我熟悉使用 cmdlt,但不熟悉构建整个脚本。 我可以使用:

Get-SPOSiteGroup  | Export-CSV C:\...

要将站点组导出到 CSV,但它不包括它们所在站点的名称。

我还在网上找到了一个脚本,可以打印出我网站集中的网站和子网站: https://sharepoint.stackexchange.com/questions/101176/powershell-to-list-all-sites-and-subsites-in-sharepoint-online

我不确定如何结合这些信息。我正在尝试将网站和子网站列表以及其中的安全组导出到 CSV 文件中。

我试着跑:

get-sposite | Get-SPOSiteGroup **webdite**

并收到此错误消息:

"Get-SPOSiteGroup : 输入对象不能绑定任何参数 对于命令要么是因为命令不采用管道 输入或输入及其属性不匹配任何 采用管道输入的参数”

我不确定如何让所有这些一起工作。

powershell sharepoint export-to-csv sharepoint-online sites
2个回答
1
投票

Get-SPOSiteGroup
cmdlet 接受
Site
参数,因此可以像这样检索租户中每个 site collection 的站点组:

Connect-SPOService -Url $adminUrl 
$sitesInfo = Get-SPOSite 

#Retrieve and print all sites
foreach ($site in $sitesInfo) {
    Write-Host 'Site collection:' $site.Url     
    Get-SPOSiteGroup -Site $site.Url
    Write-Host '-----------------------------' 
}    

要检索每个 web 站点 的附加组,可以使用以下脚本:

$adminUrl = "https://<tenant>-admin.sharepoint.com"
$UserName = "<username>@<tenant>.onmicrosoft.com" 
$Password = "--password goes here--"

$SecurePassword = $Password | ConvertTo-SecureString -AsPlainText -Force
$creds = New-Object Microsoft.SharePoint.Client.SharePointOnlineCredentials($UserName, $SecurePassword)
$pscreds = New-Object -TypeName System.Management.Automation.PSCredential -argumentlist $userName, $SecurePassword

Connect-SPOService -Url $adminUrl -Credential $pscreds
$sitesInfo = Get-SPOSite 

foreach ($site in $sitesInfo) {
    Write-Host 'Site collection:' $site.Url     
    #1. Retrieve and print site info 
    #Get-SPOSiteGroup -Site $site.Url
    $AllWebs = Get-SPOWebs -Url $site.Url -Credential $creds

    #2.Retrieve and print webs info (groups Title property in this case)
    foreach ($web in $AllWebs) {
        $web.Context.Load($web.RoleAssignments.Groups)
        $web.Context.ExecuteQuery()
        $web.RoleAssignments.Groups.GetEnumerator() | % { Write-Host $_.Title }   
    }
    Write-Host '-----------------------------' 
}

要点

  1. 在网站集中检索网页
    Get-SPOWebs.ps1
    被利用 这里
  2. 获取群组每个网站使用
    Web.RoleAssignments.Groups

0
投票

您可以使用 PowerShell cmdlet 将站点和子站点及其权限组列表导出到 CSV 或 TXT 文件中。您还可以使您的管理任务更高效、更省时。获取有关如何添加和删除用户、创建新组、导出站点详细信息 以及使用 SharePoint Online PowerShell 分配权限的分步说明。查看这篇内容丰富的文章,并使用 PowerShell 轻松管理您的 SharePoint 用户和组。

https://m365scripts.com/sharepoint-online/a-guide-to-manage-sharepoint-online-users-and-groups-with-powershell/

© www.soinside.com 2019 - 2024. All rights reserved.