当前位置:网站首页 > 更多 > 玩电脑 > 正文

[玩转系统] 从场的所有 SharePoint 用户创建 AD 安全组/通讯组列表

作者:精品下载站 日期:2024-12-14 14:03:30 浏览:12 分类:玩电脑

从场的所有 SharePoint 用户创建 AD 安全组/通讯组列表


您是否曾经需要向 SharePoint 场的所有 SharePoint 用户发送电子邮件?您是否曾经想过创建一个包含所有 SharePoint 用户的全局 AD 安全组?好吧,我确信,在某个时候你会的。例如,在计划维护期间,授予对全局站点的访问权限等。您的 SharePoint 场可能有多个 Web 应用程序,有很多用户访问它。我们无法使 AD 组或通讯组列表与所有 SharePoint 用户保持同步,不是吗?但我们可以按需创建 AD 安全组或通讯组列表,其中包括整个 SharePoint 场中的所有用户。这样,就会更加准确和更新。

其想法是:循环访问 SharePoint 场中的每个 Web 应用程序-站点-集合-站点,以检索成员并将其添加到 AD 中的安全组或通讯组列表。

用于将所有 SharePoint 用户添加到 AD 安全组的 PowerShell 脚本:


Add-PSSnapin Microsoft.SharePoint.PowerShell -ErrorAction SilentlyContinue
Import-Module ActiveDirectory

#Variables
$ADGroup="SP13 Authors" #Existing AD Security Group
$ReportPath="D:\SP13_Users.csv"

#Get all Webs from Entire FARM
$WebsCollection = Get-SPWebApplication | Get-SPSite -Limit All | Get-SPWeb -Limit All

#Array to hold user data
$UserDataCollection = @() 

foreach($Web in $WebsCollection)
{
    #Get all users from web programmatically 
    $UsersColl = $Web.AllUsers  
 
    #Get all users E-mails
    foreach ($User in $UsersColl) 
    {
        if( ($User.IsDomainGroup -eq $false) -and ($user.Email.ToString() -ne [string]::Empty))
            {
                $UserData = New-Object PSObject               
                $UserData | Add-Member -type NoteProperty -name "EmailID" -value $user.Email.ToString() 
                $UserDataCollection += $UserData
            }
    }
}
    #Remove duplicates
    $UserDataCollection = $UserDataCollection | sort-object -Property  {$_.EmailID } -Unique

    Write-host "Total Number of Unique Users found:"$UserDataCollection.Length
 
    #Export to CSV
    $UserDataCollection | Export-Csv -LiteralPath $ReportPath  -NoTypeInformation

 #Add each user to AD Group
 $UserDataCollection | ForEach-Object {
 #Get the user from Email id
 $UserEmail = $_.EmailID 
 $ADuser = Get-ADUser -filter { EmailAddress -eq $UserEmail }
 
 #Ignore Orphans
 if($ADuser -ne $null)
 {
                #Add User to AD Aroup 
  Add-ADGroupMember -Identity $ADGroup -Members $ADuser
 }
} 

运行此脚本一次。它将获取所有 SharePoint 用户并将其添加到给定的 AD 组。要使其成为分发列表,请前往 AD,查找并找到 AD 组,转到其属性,分配电子邮件并将组类型更改为“分发”(如果您需要 DL 而不是安全组)。

[玩转系统] 从场的所有 SharePoint 用户创建 AD 安全组/通讯组列表

您需要 登录账户 后才能发表评论

取消回复欢迎 发表评论:

关灯