SharePoint Online: รับผู้ใช้ทั้งหมดในไซต์คอลเลกชันโดยใช้ PowerShell
ข้อกำหนด: SharePoint Online PowerShell เพื่อรับผู้ใช้ทั้งหมดในไซต์คอลเลกชัน
SharePoint Online: PowerShell รับผู้ใช้ทั้งหมดจากไซต์คอลเลกชัน
ในฐานะผู้ดูแลระบบของไซต์ SharePoint Online ของคุณ คุณอาจจำเป็นต้องได้รับรายชื่อผู้ใช้ทั้งหมดที่สามารถเข้าถึงไซต์ได้ ในโพสต์บนบล็อกนี้ เราจะดูวิธีรับผู้ใช้ทั้งหมดในไซต์คอลเลกชัน SharePoint Online โดยใช้ PowerShell วิธีนี้จะมีประโยชน์หากคุณต้องการรับรายชื่อผู้ใช้ทั้งหมดเพื่อวัตถุประสงค์ในการทำงานอัตโนมัติ สมมติว่าคุณจำเป็นต้องสร้างรายงานเพื่อตรวจสอบสิทธิ์ของผู้ใช้หรือดูภาพรวมของผู้ที่กำลังใช้ไซต์คอลเลกชันอยู่ มาเริ่มกันเลย!
วิธีรับผู้ใช้ทั้งหมดจากไซต์ SharePoint Online
วิธีที่ง่ายที่สุดในการรับรายชื่อผู้ใช้ทั้งหมดในไซต์คอลเลกชัน SharePoint Online คือผ่านการตั้งค่าไซต์ด้วยเคล็ดลับนี้:
- นำทางไปยังไซต์คอลเลกชัน SharePoint ระดับบนสุด (เช่น https://YourDomain.SharePoint.com/sites/Retail)
- เพิ่ม “/_layouts/15/people.aspx?MembershipGroupId=0” ต่อท้าย URL เพื่อรับหน้า “ทุกคน” เช่น https://crescent.sharepoint.com/sites/Retail/_layouts/15/people.aspx?MembershipGroupId=0
SharePoint จะส่งคืนผู้ใช้ทั้งหมดที่ได้รับสิทธิ์การเข้าถึงไซต์อย่างชัดเจนและผู้ใช้ใดๆ ที่สืบทอดสิทธิ์การเข้าถึงจากกลุ่ม
ในขณะที่โพสต์อื่นๆ ของฉันกล่าวถึงวิธีรับผู้ใช้และกลุ่มทั้งหมดใน SharePoint Online โพสต์นี้มีจุดมุ่งหมายเพื่อรับผู้ใช้ทั้งหมดของไซต์คอลเลกชัน SharePoint นี่คือ SharePoint Online CSOM เพื่อรับผู้ใช้ทั้งหมด:
#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"
#Site collection URL
$SiteURL="https://crescent.sharepoint.com"
#Setup Credentials to connect
$Cred = Get-Credential
$Cred = New-Object Microsoft.SharePoint.Client.SharePointOnlineCredentials($Cred.UserName,$Cred.Password)
#Initialize the context
$Ctx = New-Object Microsoft.SharePoint.Client.ClientContext($SiteURL)
$Ctx.Credentials = $Credentials
#Get all users of the site collection
$Users = $ctx.Web.SiteUsers
$ctx.Load($Users)
$ctx.ExecuteQuery()
#Get User name and Email
$Users | ForEach-Object { Write-Host "$($_.Title) - $($_.Email)"}
PowerShell เพื่อรับผู้ใช้ทั้งหมดจากคอลเลกชันไซต์ทั้งหมดใน SharePoint Online
เมื่อต้องการรับผู้ใช้ทั้งหมดจากไซต์คอลเลกชันโดยใช้ PowerShell คุณจะต้องเชื่อมต่อกับไซต์ SharePoint Online ของคุณจาก PowerShell ก่อน เมื่อคุณเชื่อมต่อแล้ว คุณสามารถเรียกใช้ Get-SPOUser cmdlet เพื่อส่งคืนผู้ใช้ทั้งหมดที่สามารถเข้าถึงไซต์ได้ นี่คือวิธีของ SharePoint Online Management Shell ในการรับผู้ใช้ทั้งหมดจากคอลเลกชันไซต์ทั้งหมดในผู้เช่าโดยใช้ Get-SPOUser cmdlet:
Import-Module Microsoft.Online.Sharepoint.PowerShell -DisableNameChecking
$AdminSiteURL="https://crescent-admin.sharepoint.com"
#Connect to SharePoint Online Admin
Write-host "Connecting to Admin Center..." -f Yellow
Connect-SPOService -url $AdminSiteURL -Credential (Get-Credential)
Write-host "Getting All Site collections..." -f Yellow
#Get each site collection and users
$Sites = Get-SPOSite -Limit ALL
Foreach($Site in $Sites)
{
Write-host "Getting Users from Site collection:"$Site.Url -f Yellow
Get-SPOUser -Limit ALL -Site $Site.Url | Select DisplayName, LoginName
}
สคริปต์ PowerShell นี้รับผู้ใช้ทั้งหมดใน SharePoint Online
PnP PowerShell เพื่อรับผู้ใช้ทั้งหมดในคอลเลกชันไซต์ SharePoint Online
สคริปต์นี้จะรวบรวมผู้ใช้ทั้งหมดบนไซต์ที่ระบุและส่งคืนในรูปแบบที่อ่านง่าย
#Config Variables
$SiteURL = "https://crescent.sharepoint.com/sites/marketing"
#Connect to PnP Online
Connect-PnPOnline -Url $SiteURL -Interactive
#Get All users of the site collection
Get-PnPUser
สคริปต์นี้ทำให้คุณได้รับผู้ใช้ทั้งหมดจากไซต์คอลเลกชันปัจจุบัน ไม่ว่าพวกเขาจะมีสิทธิ์การเข้าถึงไซต์ปัจจุบันหรือไม่ก็ตาม คุณสามารถเพิ่มสวิตช์ -WithRightsAssigned เพื่อเรียกผู้ใช้ทั้งหมดที่สามารถเข้าถึงไซต์ได้
#Set Variables
$SiteURL = "https://crescent.sharepoint.com/sites/marketing/2017"
#Connect to PnP Online
Connect-PnPOnline -Url $SiteURL -Interactive
$Web = Get-PnPWeb
#Get All users who have permission to the subsite
Get-PnPUser -WithRightsAssigned -Web $Web
$Users=รับ-PnPUser | โดยที่ { $_.IsHiddenInUI -eq $false -and $_.PrincipalType -eq “User” -and (-not[string]::IsNullOrEmpty($_.Email))}
SharePoint Online: ส่งออกผู้ใช้ทั้งหมดในไซต์คอลเลกชันเป็น CSV โดยใช้ PnP PowerShell
ลองใช้ Get-PnPUser cmdlet เพื่อรวบรวมผู้ใช้ทั้งหมดในไซต์คอลเลกชัน แล้วส่งออกเป็น CSV เพื่อการวิเคราะห์เพิ่มเติม
#Config Variables
$SiteURL = "https://crescent.sharepoint.com/"
$CSVFile = "C:\Temp\UserData.csv"
#Connect to PnP Online
Connect-PnPOnline -Url $SiteURL -Credentials (Get-credential) #-Interactive
#Get All users of the site collection
$Users = Get-PnPUser
$UserData=@()
#Loop through Users and get properties
ForEach ($User in $Users)
{
$UserData += New-Object PSObject -Property @{
"User Name" = $User.Title
"Login ID" = $User.LoginName
"E-mail" = $User.Email
"User Type" = $User.PrincipalType
}
}
$UserData
#Export Users data to CSV file
$UserData | Export-Csv -NoTypeInformation $CSVFile
สคริปต์นี้เชื่อมต่อกับคอลเลกชันไซต์ SharePoint Online ของคุณด้วย PowerShell รับรายชื่อผู้ใช้จากไซต์คอลเลกชัน จากนั้นส่งออกรายชื่อผู้ใช้เป็น CSV! และเอาต์พุตสคริปต์:
