SharePoint Online: ค้นหากลุ่มความปลอดภัยของ Active Directory ทั้งหมดในไซต์คอลเลกชัน
ข้อกำหนด: รับกลุ่มความปลอดภัยของ AD ทั้งหมดในไซต์ SharePoint Online
PowerShell เพื่อค้นหากลุ่มโฆษณาทั้งหมดใน SharePoint Online:
ในหลายองค์กร กลุ่ม Active Directory ใช้เพื่อจัดการการเข้าถึงและสิทธิ์สำหรับไซต์และเนื้อหา SharePoint Online บ่อยครั้งที่มีการสร้างกลุ่มใหม่ตามความจำเป็น และกลุ่มเก่าอาจไม่ได้ใช้หรือถูกลืมไปเลย ดังนั้น คุณอาจต้องการค้นหากลุ่มโฆษณาทั้งหมดในการเช่า SharePoint Online ของคุณ และพิจารณาความเป็นสมาชิกของกลุ่มเหล่านั้นเพื่อวัตถุประสงค์ในการแก้ไขปัญหาหรือการตรวจสอบ โชคดีที่งานนี้สามารถทำสำเร็จได้อย่างง่ายดายโดยใช้ PowerShell โพสต์ในบล็อกนี้จะแสดงวิธีใช้ PowerShell เพื่อค้นหากลุ่ม AD ทั้งหมดในผู้เช่า SharePoint Online ของคุณ
นี่คือ PowerShell เพื่อรับกลุ่มโดเมนไดเรกทอรีที่ใช้งานอยู่ทั้งหมดจากคอลเลกชันไซต์ SharePoint Online:
#Load SharePoint CSOM Assemblies
Add-Type -Path "C:\Program Files\Common Files\Microsoft Shared\Web Server Extensions\16\ISAPI\Microsoft.SharePoint.Client.dll"
Add-Type -Path "C:\Program Files\Common Files\Microsoft Shared\Web Server Extensions\16\ISAPI\Microsoft.SharePoint.Client.Runtime.dll"
#Set Variables for Site URL
$SiteURL= "https://crescent.sharepoint.com/sites/marketing/"
$ADGroupCollection= @()
#Setup Credentials to connect
$Cred = Get-Credential
Try {
#Setup the context
$Ctx = New-Object Microsoft.SharePoint.Client.ClientContext($SiteURL)
$Ctx.Credentials = New-Object Microsoft.SharePoint.Client.SharePointOnlineCredentials($Cred.UserName,$Cred.Password)
#Get all Users
$Users=$Ctx.Web.SiteUsers
$Ctx.Load($Users)
$Ctx.ExecuteQuery()
#Filter AD Groups from Users collection
$ADGroups = $Users | Where {$_.PrincipalType -eq "SecurityGroup"}
#Get Each AD Group details
Foreach($Group in $ADGroups)
{
#Get SharePoint Groups of the AD Group
$Ctx.Load($Group.Groups)
$Ctx.ExecuteQuery()
$GroupNames = $Group.Groups | Select -ExpandProperty Title
#Getting the members
$ADGroup = new-object psobject
$ADGroup | add-member noteproperty -name "AD Group Name" -value $Group.Title
$ADGroup | add-member noteproperty -name "SP Group Membership" -value ($GroupNames -join "; ")
#Add to Array
$ADGroupCollection+=$ADGroup
}
#Get the results
$ADGroupCollection
}
Catch {
write-host -f Red "Error getting AD Groups:" $_.Exception.Message
}
รับกลุ่มโฆษณาในไซต์คอลเลกชันโดยใช้ SharePoint Online Management Shell:
คราวนี้ เรามาเรียกข้อมูลกลุ่มความปลอดภัย AD ด้วยความช่วยเหลือของเชลล์การจัดการ SharePoint Online
#Set Config Variables
$AdminCenterURL = "https://crescent-admin.sharepoint.com"
$SiteURL = "https://crescent.sharepoint.com/sites/marketing"
$ADGroupCollection= @()
#Connect to SharePoint Online
Connect-SPOService -URL $AdminCenterURL
#Get All AD Security Groups from the site collection
$ADGroups = Get-SPOUser -Site $SiteUrl -Limit All | Where { $_.IsGroup -and $_.DisplayName -ne "Everyone" -and $_.DisplayName -ne "Everyone except external users" }
#Iterate through each AD Group
Foreach($Group in $ADGroups)
{
#Send Data to an object array
$ADGroup = new-object psobject
$ADGroup | add-member noteproperty -name "Group Name" -value $Group.DisplayName
$ADGroup | add-member noteproperty -name "SharePoint Groups" -value ($Group.Groups -join ",")
#Add to Array
$ADGroupCollection+=$ADGroup
}
#Get the Data
$ADGroupCollection
ตรวจสอบให้แน่ใจว่าคุณได้ติดตั้ง SharePoint Online Management Shell ในเครื่องไคลเอนต์ของคุณก่อนที่จะรันสคริปต์
ส่งออกกลุ่ม Active Directory ของไซต์คอลเลกชันทั้งหมดโดยใช้ PowerShell:
ตอนนี้ มาปรับเปลี่ยนสคริปต์ด้านบนเล็กน้อยเพื่อแยกกลุ่ม AD จากคอลเลกชันไซต์ทั้งหมดในผู้เช่าและส่งออกไปยังรายงาน CSV
#Set Config Variables
$AdminCenterURL = "https://crescent-admin.sharepoint.com"
$ADGroupCollection= @()
$ReportPath ="C:\Temp\ADGroups.csv"
#Connect to SharePoint Online
Connect-SPOService -URL $AdminCenterURL
#Get All Site Collections from the tenant
$Sites = Get-SPOSite -Limit ALL
#Iterate through each site collection
ForEach($Site in $Sites)
{
Write-host "Processing Site Collection:"$Site.URL -f Yellow
#Get All AD Groups / Office 365 Groups from the site collection
$ADGroups = Get-SPOUser -Site $Site.Url -Limit All | Where { $_.IsGroup -and $_.DisplayName -Notin ("Everyone","Everyone except external users", "Company Administrator", "SharePoint Service Administrator","All Users `(windows`)") }
#Iterate through each AD Group
Foreach($Group in $ADGroups)
{
#Send Data to an object array
$ADGroup = new-object psobject
$ADGroup | add-member noteproperty -name "Site Name" -value $Site.Title
$ADGroup | add-member noteproperty -name "URL" -value $Site.URL
$ADGroup | add-member noteproperty -name "Group Name" -value $Group.DisplayName
$ADGroup | add-member noteproperty -name "SharePoint Groups" -value ($Group.Groups -join ",")
#Add to Array
$ADGroupCollection+=$ADGroup
}
}
#Export Data to CSV
$ADGroupCollection
$ADGroupCollection | export-csv $ReportPath -notypeinformation
Write-host "SharePoint Online Domain Groups data exported to a CSV file at:"$ReportPath -ForegroundColor Cyan
ตรวจสอบให้แน่ใจว่าคุณมีสิทธิ์ในไซต์คอลเลกชันทั้งหมด มิฉะนั้น คุณอาจได้รับ: “การเข้าถึงถูกปฏิเสธ คุณไม่ได้รับอนุญาตให้ดำเนินการนี้หรือเข้าถึงทรัพยากรนี้” ข้อผิดพลาด!
ฉันสามารถค้นหากลุ่มโฆษณาเฉพาะเจาะจงในทุกไซต์ได้หรือไม่ แน่นอน เพียงเปลี่ยนบรรทัด #18 เป็น:
$ADGroups = Get-SPOUser -Site $Site.Url -Limit All | Where { $_.IsGroup -and $_.DisplayName -ne "Everyone" -and $_.DisplayName -ne "Everyone except external users" -and $_.DisplayName -like '*ADSecurityGroupName*' }
PnP PowerShell เพื่อค้นหากลุ่ม Active Directory และกลุ่ม Office 365 ทั้งหมดใน SharePoint Online
นี่คือเวอร์ชันสคริปต์ PnP PowerShell เพื่อแยกกลุ่มโฆษณาทั้งหมด รวมถึงกลุ่ม Office 365 ในไซต์ SharePoint Online
#Parameters
$AdminCenterUrl = "https://Crescent-admin.sharepoint.com"
$CSVPath = 'c:\Temp\ADGroupsInSPO.csv'
#Connect to SharePoint admin center
Connect-PnPOnline -Url $AdminCenterUrl -Interactive
#Get all SharePoint sites
$Sites = Get-PnPTenantSite
$Report = @()
#Loop through each site
ForEach ($Site in $Sites)
{
Try {
Write-host "Processing Site:"$Site.URL -f Yellow
Connect-PnPOnline -Url $Site.Url -Interactive
$ADGroups = Get-PnPUser | Where { $_.PrincipalType -eq "SecurityGroup" -and $_.Title -Notin ("Everyone","Everyone except external users", "Company Administrator", "SharePoint Service Administrator","All Users `(windows`)") }
ForEach ($Group in $ADGroups)
{
$Report += New-Object Pscustomobject -Property @{
SiteURL = $Site.URL
GroupName = $Group.Title
LoginName = $Group.LoginName
GroupEmail = $Group.Email
}
}
}
Catch {
continue;
}
}
$Report
#Generate a CSV file from the data
$Report | Export-Csv $CSVPath -NoTypeInformation
โดยสรุป โดยใช้สคริปต์ PowerShell ผู้ดูแลระบบสามารถค้นหากลุ่มความปลอดภัย Active Directory ทั้งหมดที่เกี่ยวข้องกับคอลเลกชันไซต์ SharePoint Online ข้อมูลนี้สามารถใช้เพื่อวัตถุประสงค์ในการตรวจสอบ เพื่อเพิกถอนการเข้าถึงสำหรับกลุ่มผู้ใช้ หรือสำหรับงานด้านการดูแลระบบอื่นๆ การค้นหากลุ่มความปลอดภัย Active Directory ทั้งหมดในไซต์คอลเลกชัน SharePoint Online เป็นเครื่องมือที่จำเป็นสำหรับผู้ดูแลระบบที่ต้องการรักษาความปลอดภัยและความสมบูรณ์ของสภาพแวดล้อม SharePoint
